代碼風(fēng)格:如何取好變量名

代碼的可讀性好壞,會影響到程序員編寫和維護代碼的過程捡硅。如果把人的大腦看作計算機 CPU 加上內(nèi)存的結(jié)合。那么盗棵,需要人去猜測的變量名壮韭、沒有良好組織結(jié)構(gòu)的代碼北发、混亂的布局,對于閱讀代碼的人來說泰涂,總會消耗過多的大腦資源鲫竞。而這些資源和精力應(yīng)該放在程序員正在關(guān)心的業(yè)務(wù)上。

下面逼蒙,我們先來看看程序的一些命名規(guī)則从绘。

1、變量名應(yīng)該完全是牢、準(zhǔn)確的描述該變量所代表的事物

a僵井、不是通用或者約定俗成的縮寫,不要用簡寫替代變量名驳棱。如將 userinfo 寫成 u 或者 ui 或者 uInfo批什。閱讀代碼時,類似的名字需要讀者思考的時候繞兩個彎子社搅,甚至需要 Debug 或者聯(lián)系上下文才能明白變量名的意思驻债。

b、大多數(shù)情況下形葬,不要使用 user1合呐、user2 來表示同一程序中不同的變量。這樣閱讀代碼的人就無法區(qū)分兩個變量的不一樣的地方笙以。

c淌实、不要使用中文甚至中文縮寫命名變量名。

d猖腕、通常情況下拆祈,不要使用動詞作為變量名。

2倘感、好的變量名反映的都是問題放坏,而不是解決方案。表達的是 what老玛,而不是 how轻姿。

一條員工數(shù)據(jù)記錄可以稱為 inputRecord 或者 employeeData。inputRecord 是一個反映輸入逻炊、記錄這些計算機概念的術(shù)語。employeeData 則能讓人直接聯(lián)想到相關(guān)業(yè)務(wù)場景犁享,與計算無關(guān)余素。

3、變量名的長度

相關(guān)研究發(fā)現(xiàn)炊昆,當(dāng)程序里的變量名的平均長度在10到16個字符之間的時候桨吊,調(diào)試程序所需花費的力氣是最小的威根。

如下圖,感受下不同的變量名給人的感覺视乐。

這里是一些縮短變量名的指導(dǎo)原則洛搀。

1、使用標(biāo)準(zhǔn)的縮寫(如 rpt)佑淀。

2留美、去掉虛詞 and,or,the。

3伸刃、使用名字中的每一個重要單詞谎砾,最多不超過3個。

4捧颅、去掉無用的后綴(如 ing景图、ed 等)。

5碉哑、確保不要改變變量的含義挚币。

6、不要從每個單詞中刪除一個字符的方式來縮寫扣典。

7妆毕、縮寫要一致:如果將 function 縮寫成 func。那么將整個項目里激捏,最好都統(tǒng)一使用這種縮寫设塔。

4、為特定的變量命名

a远舅、為狀態(tài)變量取一個比 flag 更好的名字闰蛔。如用 reportType 而不是 flag 作為變量名。

b图柏、臨時變量不要使用 temp序六。

c、為布爾變量命名蚤吹。done例诀、error、found裁着、success 在具體的場景下繁涂,都是很有用的變量名。而 sourceFile 是很糟糕的變量名二驰,因為他沒有明確的 true 或者 false扔罪。if(found) 的可讀性要高于 if(isFound)。

參考資料:《代碼大全》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末桶雀,一起剝皮案震驚了整個濱河市矿酵,隨后出現(xiàn)的幾起案子唬复,更是在濱河造成了極大的恐慌,老刑警劉巖全肮,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件敞咧,死亡現(xiàn)場離奇詭異,居然都是意外死亡辜腺,警方通過查閱死者的電腦和手機休建,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哪自,“玉大人丰包,你說我怎么就攤上這事∪老铮” “怎么了邑彪?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長胧华。 經(jīng)常有香客問我寄症,道長,這世上最難降的妖魔是什么矩动? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任有巧,我火速辦了婚禮,結(jié)果婚禮上悲没,老公的妹妹穿的比我還像新娘篮迎。我一直安慰自己,他們只是感情好示姿,可當(dāng)我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布甜橱。 她就那樣靜靜地躺著,像睡著了一般栈戳。 火紅的嫁衣襯著肌膚如雪岂傲。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天子檀,我揣著相機與錄音镊掖,去河邊找鬼。 笑死褂痰,一個胖子當(dāng)著我的面吹牛亩进,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播缩歪,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼镐侯,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起苟翻,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎骗污,沒想到半個月后崇猫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡需忿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年诅炉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屋厘。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡涕烧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出汗洒,到底是詐尸還是另有隱情议纯,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布溢谤,位于F島的核電站瞻凤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏世杀。R本人自食惡果不足惜阀参,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瞻坝。 院中可真熱鬧蛛壳,春花似錦、人聲如沸所刀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽勉痴。三九已至赫模,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蒸矛,已是汗流浹背瀑罗。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留雏掠,地道東北人斩祭。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像乡话,于是被迫代替她去往敵國和親摧玫。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 在日常編程中最煩惱的就是給變量取名,一段好代碼诬像,既要能完美地運行屋群,還要能較容易地維護。這就意味著需要讓日后維護代碼...
    hoohack閱讀 833評論 3 14
  • 第一部分 打好基礎(chǔ) Laying the Foundation 第一章 歡迎進入軟件構(gòu)建的世界 Welcome t...
    白樺葉閱讀 4,600評論 0 17
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理坏挠,服務(wù)發(fā)現(xiàn)芍躏,斷路器,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • 進入Python下載頁面降狠,選擇需要的版本对竣。 這里,我選擇的版本是 3.6.2 榜配。 # wget https://w...
    依舊丶森閱讀 2,524評論 0 0
  • 火車馬上就要開了否纬,我終于擠到了自己的座位旁,我把提包放到行李架上蛋褥,整理了一下身上的軍裝临燃,用手背擦了擦額頭上的汗,靠...
    女鋼鐵俠閱讀 1,024評論 14 21