這段時間看了一下代碼整潔之道這本書。總結了一下前面幾章較爲基礎的內容。
有意義的命名
我們經常寫的變量、函數、參數、類、包,都需要起一個名。好的名稱有助於我們理解代碼,增加代碼的優美性。
重命名快捷鍵: Alt+Shift+R
命名規則:
名稱應該能表達它所代表的意義, 不用在通過註釋來解釋
避免誤導
- 名稱不要誤導代碼本意。如,accountList來指一組賬號,但如果類型不爲List呢
- 提防使用不同之處較小的名稱。 兩個變量名之間僅有幾個字母不同,讓人不容易區分出來。
- 用相同的方式拼寫同樣的概念
儘量避免使用小寫字母l(像1)和大寫字母O(像0)
做有意義的區分
- 不要爲了滿足編輯器或解釋器的需要而寫代碼,同一作用範圍內兩樣不同的東西不能重名,不要添加數據區分,也不要添加沒有意義的廢話區分。即Product類 ProductInfo或ProductData
- 廢話都是冗餘,例如 nameString 和name, CustomerObject和Customer
- 區分名稱,就以讀者能鑑別不同之處的方式來區分。
使用讀得出來的名稱
- 不要使用自造詞,只有自己能懂得名稱
使用可搜索的名稱
- 單字母名稱和數字常量有個問題,很難在大篇幅文字中找到。
- 名稱長短應與其作用域大小相對應。
- 數字多次出現 可以以表示其意義的常量表示
避免使用編碼
- 匈牙利語標記法s 成員前綴m_ 接口與實現
避免思維映射
- 命名要明確。編寫其他人能理解的代碼
類名要用名詞 但也要避免廢話
方法名
- 應當是動詞或動詞短語 get、set、is前綴等
- 重載構造器是,使用描述了參數的靜態工廠方法名
額外注意
別自作聰明,命名要言到意到,意到言到
每個概念對應一個詞 controller manager driver
別用雙關語 避免同一個單詞用於不同目的
使用解決方案領域的名稱
使用源自所涉問題領域的名稱
添加有意義的語境
例如firstName和addrFirstName
不要添加沒用的語境
總結:
取好名稱最難的地方在於需要良好的描述技巧和共有文化背景