在寫代碼時,你們對變數的命名都是按照什麼規則,如何使變數名變成別人一看就懂的?
01-06
果然@vczh後,問題會被很多人關注。說一下自己平時編程命名的方式:
1。 方法以動詞開頭,如果返回值為boolean類型,一般是系動詞,如,is,has等。2。 類名以名詞開頭,首字母大寫。3。介面名以動詞的形容詞形式開頭,如sort的形容詞sortable。3。變數命名都會遵循一定的規範,如boolean值得都以is或者has等開頭。4。遵循通用的編碼規範,如google的java編碼規範,python的PEP8.
但是還是會遇到一些很奇特的問題:1。類名有時會不得不夾雜動詞2。臨時變數的命名我感覺自己寫的一塌糊塗,什麼tmp,ret,循環中的i,j,k啊。3。有時感覺不是很分的清每個類的職責,不知道是應該在當前類還是上層類中。(感覺好像這個問題不在此問題討論範圍中,不過還是希望大家能解惑哈)所以,希望大家能為我解惑。謝謝。
類型和變數用名詞,方法和函數用動詞!
另外,特彆強調:
不要怕名字長!!
不要怕名字長!!不要怕名字長!!除了msg、usr、str、img、buf、avg等少數幾個耳熟能詳的縮寫外,其它命名絕對不用縮寫!
另外,「別人」 僅限於跟你一起開發、有相同業務知識背景的人,否則要想隨便讓一個認識英文的人就能看懂是不可能的,比如說我看netty3的源碼時候遇到了ChannelSink,單詞我都看得懂,但意思就是看不懂,只有看它用在什麼地方、怎麼用、具備什麼功能才能明白這是幹嘛的!
現在想起來,好像又忘記了ChannelSink詳細的用法了(囧,逃!),只是大概記得在接受連接的時候用,而且netty4裡面已經不用這個了,所以理解變數或者方法的含義,除了名稱外,還需要業務背景!
有的答主提到了注釋,說實話對於變數名我覺得是不需要注釋的,只有方法的關鍵複雜邏輯才需要注釋!這種極端的願望是不可能實現的,題主還要學習一個,軟體工程里的「辭彙表」文檔。
我自己的代碼,都無法完全保證按照同一個規則來。。。根本無法達成一眼就能看懂。所以,把代碼寫簡單點,2、30行一個函數,有沒有命名規則也能很容易看懂
long long ago;
我最喜歡的變數名反正我一般是用cnmb,nnnd,nmbd,ntmd之類的,被打過很多次哈哈哈哈哈
人有多大膽,注釋有多短!
一般按照規範寫就行
- 類型名使用大小寫分割單詞,如 ModelTrainer
- 函數名使用下劃線分割單詞,如process_message
- 類的成員變數名使用統一前綴,如m_cnt, m_val
- 全局變數使用g前綴,如g_cnt,g_val
- 函數名一般用動賓,變數名一般用名詞
這樣看到一個名字,就能知道它是類名/變數名/函數名
給一個谷歌編碼規範參考:6. 命名約定另外推薦一本書,裡面詳細講了如何命名,《編寫可讀代碼的藝術》最討厭在可以把信息放到名字里的情況下,非要把信息放到注釋里了,濫用注釋class TamuraYukari{
//statement(s)
}
於是我寫過的僅有的那麼點代碼出現了無數個田村大魔王……
我覺得我沒被我師父打死是我運氣好,謝師父不殺之恩主要靠注釋
變數名的長短需要和scope有關
隻影響本地幾行的變數,能省掉就省掉,不能省,隨便
影響很長遠的變數取名要嚴謹。
還有PEP8我去年買了個登山包,遵守這種規範哥做不到
匈牙利命名法
a,v,c,d,e,f,g∠( ? 」∠)_
拼音注釋法的就我一個人嗎(?Д?≡?Д?)?
我一般按功能來。如果有多個的話就:sprite_1 = ...sprite_2 = ...
這得看你用什麼軟體的代碼了,每個軟體一般都會有一個行業推薦模版。
http://mp.weixin.qq.com/s?__biz=MzIzMDA1MTM3Mg==mid=2653077078idx=1sn=d51d5903ee94f814b1537bf04d4cf022chksm=f36f4515c418cc033112e4556272292b0e855492b36b69426dfaa684df55b15dbed4207d965dscene=2srcid=0906weoMmevYsiFDC63M3wDwfrom=timelineisappinstalled=0#wechat_redirect譬如這個百度一下即可~~~主要靠注釋...
我至今沒見過能僅靠變數名字就能讓人完全明白的.
你要知道看你代碼的人千奇百怪,你又不知道他的水平和思維方式,怎麼可能只用變數名就讓他明白.你以為這是精神通訊啊?從頭到尾按照一種規則,然後把這種規則記下來。
記得留開發/測試文檔就好
resultresult1map pmap resultMapsqlid=questionareozj ozj是開發姓名縮寫
falg
flagclientno 客戶姓名datebirth 客戶號推薦閱讀:
※當開發同事辭職,接手到垃圾代碼怎麼辦?
※工程師應該如何保證代碼質量?
※你們的開發團隊有引入findbugs等代碼檢測工具嗎?老代碼改不改嗎?