代码改变世界

clean code 第二章 有意义的命名

2020-03-29 18:25  tonyniu8  阅读(144)  评论(0编辑  收藏  举报

2.1 介绍

我们给jar文件命名,war 文件,和ear文件。既然有这么多命名要做,不妨做好它。

2.2 名副其实

不用魔术数。

2.3 避免误导

最好别在名称中写出容器类型名。
别用accountList来指一组账号,用accounts 或者bunchOfAccounts要好些。
提防使用相似度较高的名称。XYZControllerForEfficentHandlingOfStrings和XYZControllerForEfficentStorageOfStrings.相似度太高

2.4 做有意义的区分

要区分名称就要以读者能鉴别不同之处的方式来区分。
废话是没有意义的区分: Product类和 ProductInfo,意义没区别,Info和Data就像,a和the 一样是意义含混的废话。

2.5 使用读得出的名称

例如 private Date generationTimestamp 而不是 genymdhms

2.6 使用可搜索的名称

不用魔术数字或者单字母名称

2.7 避免使用编码

  • 匈牙利编码 bBusy 直接 boolean isBusy
  • 接口和实现,ShapeFactoryImp 比 对接口名称编码好(IShapeFactory)

其他细节

  • 类名应该是名词
  • 方法名应该是动词,或动词短语。重载构造器使用描述了参数的静态工厂方法要好于构造器
    Complex.FromRealNumber(23.0) 好于 new Complex(23.0)
  • 每个概念对应一个词。