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