生活随笔
收集整理的這篇文章主要介紹了
1.有意义的命名(代码的整洁之道)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.有意義的命名(代碼的整潔之道)
目錄
名副其實(shí)避免誤導(dǎo)做有意義的區(qū)分使用讀的出來的名稱使用可搜索的名稱避免使用編碼避免思維映射類名方法名每個(gè)概念對(duì)應(yīng)一個(gè)詞別用雙關(guān)語使用解決方案領(lǐng)域名稱使用源自所涉問題領(lǐng)域的名稱添加有意義的語境不要添加沒有的語境
注:代碼的整潔之道PDF: https://pan.baidu.com/s/16PLDWPiusGjcUfW_jgOm5w 密碼: s708
1. 名副其實(shí)
變量、函數(shù)或類的名稱應(yīng)該已經(jīng)答復(fù)了所有的大問題。它應(yīng)該告訴你,它為什么存在,做什么事,應(yīng)該怎么用。
int d
;
名稱d什么也沒說明,應(yīng)該選擇指明了計(jì)量對(duì)象和計(jì)量單位的名稱
int elapsedTimeInDays
;
int daysSinceCreation
;
int daysSinceModification
;
int fileAgeInDays
;
2. 避免誤導(dǎo)
提防使用不同之處較小的名稱。比如XYZControllerForEfficientHandlingOfStrings和另一處的XYZControllerForEfficientStorageOfStrings.以同樣的方法拼寫出同樣的概念才是信息,拼寫前后不一致就是誤導(dǎo)。別用accountList來指一組賬號(hào),除非它真的是List類型。List一詞對(duì)程序員有特殊意義。如果包納賬號(hào)的容器并非是個(gè)List,就會(huì)引起錯(cuò)誤的判斷。所以,用accountGroup或bunchOfAccounts,甚至直接用accounts都會(huì)好一些。
3. 做有意義的區(qū)分
廢話是沒有意義的區(qū)分,假設(shè)你有一個(gè)Product類,還有一個(gè)ProductInfo或ProductData類,那么它們的名稱雖然不同,意思卻無區(qū)別。廢話都是冗余的,Variable一詞永遠(yuǎn)不應(yīng)該出現(xiàn)在變量名中。Table永遠(yuǎn)不應(yīng)該出現(xiàn)在表名中。要區(qū)分名稱,就要可以鑒別不同之處的方式來區(qū)分。
4. 使用讀的出來的名稱
5. 使用可搜索的名稱
單字母和數(shù)字常量有個(gè)問題,很難在一大篇文字中找出來。找MAX_CLASSES_PER_STUDENT很容易,但想找數(shù)字7就麻煩了。單字母名稱僅用于短方法中的本地變量,名稱的長度應(yīng)與其作用域大小相對(duì)應(yīng)。
6. 避免使用編碼
7. 避免思維映射
不應(yīng)該讓看的人在腦中把你的名稱翻譯為他們熟知的名稱。單字母變量名就是個(gè)問題,在作用域較小、也沒有沖突時(shí),循環(huán)計(jì)數(shù)器自然有可能被命名為i或j或k,這是因?yàn)閭鹘y(tǒng)上慣用單字母做循環(huán)計(jì)數(shù)器。
8. 類名
類名和對(duì)象名應(yīng)該是名詞或名詞短語,如Customer、WikiPage、Account和AddressParser。避免使用Manager、Processor、Data和Info這樣的類名。類名不應(yīng)當(dāng)是動(dòng)詞。
9. 方法名
方法名應(yīng)當(dāng)是動(dòng)詞或動(dòng)詞短語,如postPayment、deletePage和save。
10. 每個(gè)概念對(duì)應(yīng)一個(gè)詞
給每個(gè)抽象概念選一個(gè)詞,并且一以貫之。例如,使用fetch、retrieve和get來給在多個(gè)類中的同種方法命名,你怎么記得住哪個(gè)類中的那個(gè)方法呢?函數(shù)名稱應(yīng)當(dāng)獨(dú)一無二,而且要保持一致。
11. 別用雙關(guān)語
12. 使用解決方案領(lǐng)域名稱
記住,只有程序員才會(huì)讀你的代碼,所以,盡管用計(jì)算機(jī)科學(xué)術(shù)語、算法名、模式名、數(shù)學(xué)術(shù)語。依據(jù)問題所涉領(lǐng)域來名稱是不可取的,因?yàn)椴辉撟寘f(xié)作者老是問客戶每個(gè)名稱的含義。對(duì)于熟悉房問題模式的程序員來說,名稱AccountVisitor富有意義。給這些事取個(gè)技術(shù)性的名稱,通常是最靠譜的做法。
13. 使用源自所涉問題領(lǐng)域的名稱
14. 添加有意義的語境
你需要用良好的命名的累、函數(shù)或名稱空間來放置名稱,給讀者提供語境,如果沒這么做,給名稱添加前綴就是最后一招了。設(shè)想有名為firstName、lastName、street、houseNumber、city、state和zipcode的變量,當(dāng)它們擱一塊的時(shí)候,明確構(gòu)成了一個(gè)地址。不過假如只在某個(gè)方法看見孤零零一個(gè)state變量,就很難腿短那是地址的一部分可以添加前綴來提供語境,更好的方案是創(chuàng)建名為Address的類。
15. 不要添加沒有的語境
只要短名稱足夠清楚,就要比長名稱好。別給名稱添加不必要的語境。對(duì)應(yīng)Address類的實(shí)體來說,accountAddress和customerAdderss都是不錯(cuò)的名稱,不過用在類名上就不太好了。Address是個(gè)好類名。如果需要與MAC地址、端口地址和Web地址相區(qū)別,會(huì)考慮使用PostalAddress、MAC和URI,這樣的名稱更為準(zhǔn)確,而精準(zhǔn)正是命名的要點(diǎn)。
總結(jié)
以上是生活随笔為你收集整理的1.有意义的命名(代码的整洁之道)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。