代碼的可讀性好壞,會(huì)影響到程序員編寫和維護(hù)代碼的過程。如果把人的大腦看作計(jì)算機(jī) CPU 加上內(nèi)存的結(jié)合。那么,需要人去猜測的變量名、沒有良好組織結(jié)構(gòu)的代碼、混亂的布局,對(duì)于閱讀代碼的人來說,總會(huì)消耗過多的大腦資源。而這些資源和精力應(yīng)該放在程序員正在關(guān)心的業(yè)務(wù)上。
下面,我們先來看看程序的一些命名規(guī)則。
1、變量名應(yīng)該完全、準(zhǔn)確的描述該變量所代表的事物
a、不是通用或者約定俗成的縮寫,不要用簡寫替代變量名。如將 userinfo 寫成 u 或者 ui 或者 uInfo。閱讀代碼時(shí),類似的名字需要讀者思考的時(shí)候繞兩個(gè)彎子,甚至需要 Debug 或者聯(lián)系上下文才能明白變量名的意思。
b、大多數(shù)情況下,不要使用 user1、user2 來表示同一程序中不同的變量。這樣閱讀代碼的人就無法區(qū)分兩個(gè)變量的不一樣的地方。
c、不要使用中文甚至中文縮寫命名變量名。
d、通常情況下,不要使用動(dòng)詞作為變量名。
2、好的變量名反映的都是問題,而不是解決方案。表達(dá)的是 what,而不是 how。
一條員工數(shù)據(jù)記錄可以稱為 inputRecord 或者 employeeData。inputRecord 是一個(gè)反映輸入、記錄這些計(jì)算機(jī)概念的術(shù)語。employeeData 則能讓人直接聯(lián)想到相關(guān)業(yè)務(wù)場景,與計(jì)算無關(guān)。
3、變量名的長度
相關(guān)研究發(fā)現(xiàn),當(dāng)程序里的變量名的平均長度在10到16個(gè)字符之間的時(shí)候,調(diào)試程序所需花費(fèi)的力氣是最小的。
如下圖,感受下不同的變量名給人的感覺。
這里是一些縮短變量名的指導(dǎo)原則。
1、使用標(biāo)準(zhǔn)的縮寫(如 rpt)。
2、去掉虛詞 and,or,the。
3、使用名字中的每一個(gè)重要單詞,最多不超過3個(gè)。
4、去掉無用的后綴(如 ing、ed 等)。
5、確保不要改變變量的含義。
6、不要從每個(gè)單詞中刪除一個(gè)字符的方式來縮寫。
7、縮寫要一致:如果將 function 縮寫成 func。那么將整個(gè)項(xiàng)目里,最好都統(tǒng)一使用這種縮寫。
4、為特定的變量命名
a、為狀態(tài)變量取一個(gè)比 flag 更好的名字。如用 reportType 而不是 flag 作為變量名。
b、臨時(shí)變量不要使用 temp。
c、為布爾變量命名。done、error、found、success 在具體的場景下,都是很有用的變量名。而 sourceFile 是很糟糕的變量名,因?yàn)樗麤]有明確的 true 或者 false。if(found) 的可讀性要高于 if(isFound)。
參考資料:《代碼大全》