《代码整洁之道》阅读笔记

第1章 整洁代码

What is clean code

Ron Jeffries 对 Clean Code 的排序:

  1. 能通过所有测试
  2. 没有重复代码
  3. 体现系统中的全部设计理念
  4. 包括尽量少的实体,比如类、方法、函数等

We are the author

Javadoc 中的 @author 字段告诉了我们是什么人,我们是作者,写代码时,应记得自己作为一个作者,要为评判你工作的的读者写代码。使代码易读,自然也会使之易写。

第2章 有意义的命名

  • 名副其实:变量、函数和类的名称应该表达了所有的大问题,如果名称还需要注释来补充,那就不算名副其实。
  • 避免误导:避免使用系统的专用名称,避免在名称中带入注入List关键字等待有特殊意义的词(即使容器是个List,最好也不要直接写出类型名),避免使用十分类似的名称(如XYZControllerForHandingOfStrings和XYZControllerForStorageOfStrings),避免使用误导性名称(如Ol和01)。
  • 做有意义的区分:像a1,a2,an的区分等同于废话,诸如getUser()、getUserInfo()、getUserData()的方法,如果没有明确的约定,也是很难一言看出区别的。要区别名称,必须要让以读者有鉴别不同之处的方式来区分。
  • 使用读得出来的名称:比如生成时间戳,不要用genymdhms这样的生造词,用genTimestamp会更像人话。
  • 使用可搜索的名称:单字母和数字常量是很难被一下搜出来的,单字母名称仅可用在短方法中的本地变量,名称的长短应与其作用域大小相对应
  • 避免使用编码:不必使用成员前缀,对于接口和实现,不推荐使用“I”开头修饰,不如在实现类中直接添加后缀“Imp”
  • 避免思维映射:专业的程序员和聪明的程序员之间的区别在于,专业的程序员知道,明确是王道,他们写的是其他人能理解的代码(过于”聪明“的程序员写的代码只有自己能看懂)。
  • 类名:类名和对象名应该是名词或名词短语,类名不应当是动词
  • 方法名:方法名应当是动词或动词短语,访问、修改和断言应该加上前缀”get”、”set”、”is”。
  • 每个概念对应一个词:给每个抽象概念(fetch、retrieve、get这些相近词就很糟糕)选一个词,并一以贯之。
  • 添加有意义的语境,但不要添加没用的语境,精确才是命名的要点。

第3章 函数

  • 短小
  • 只做一件事:函数应该做一件事。做好这件事。只做这一件事。
  • 每个函数一个抽象层级:让代码拥有自顶向下的阅读顺序、
  • 使用描述性名称
  • 本文作者: Marticles
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!