这段时间看了一下代码整洁之道这本书。总结了一下前面几章较为基础的内容。
有意义的命名
我们经常写的变量、函数、参数、类、包,都需要起一个名。好的名称有助于我们理解代码,增加代码的优美性。
重命名快捷键: 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
不要添加没用的语境
总结:
取好名称最难的地方在于需要良好的描述技巧和共有文化背景