Clean Code 读书笔记

整洁代码

代码永存

勒布朗法则:稍后等于永不

整洁的代码只做一件事。

写出整洁代码的方法:减少重复代码、提高表达力、提早构建简单抽象。

有意义的命名

取一个好名字的几条简单规则:

  1. 名副其实 严肃对待变量、函数或类的名称,力争让人一眼就能看明白。
  2. 避免误导 避免留下掩藏代码本意的错误线索,避免使用与本意相悖的词。最突出的例子就是小写字母 I 和大写字母 O 作为变量名。
  3. 有意义的区分 不能添加无谓的数字系列或是废话。
  4. 使用读得出来的名称/使用可搜索的名称
  5. 类名和对象名应该是名词或者名词短语。
  6. 方法名应当是动词或者动词短语 重载构造器时,使用静态工厂方法

取好名字最难的地方在于需要良好的描述技巧和共有文化背景。

函数

写出一个好的函数方法需要遵循相关的规则:

  1. 短小还要更短小 理想状态下每一个函数都只有两行、三行或四行,每个函数都一目了然,每个函数都只说一件事,每个函数都依次把你带到下一个函数,这就是函数应该达到的短小程度。

  2. 只做一件事 判断一个函数是否只做了一件事,最直接的方法就是看它是否能够再拆一个函数。

  3. 一个函数就是一个抽象层级

    • 自顶向下读代码:向下规则

      每一个函数后面都跟着位于下一抽象层级的函数,在查看函数表时,就能遵循抽象层级向下阅读。

  4. 使用描述性的名称

    1. 如果每个例程都让你感到深合已意,那就是整洁代码
    2. 别害怕长名称。
    3. 选择描述性的名称能理清你关于模块的设计思路,并帮你改进
    4. 命名方式要一致,使用与模块名一脉相承的短语
  5. 函数参数

    1. 一元参数
      • 传入一元参数有两个理由:处理关于这个参数的名字,操作该参数。
      • 标识参数 针对传入布尔值的函数,我们可以将它们分开,分别调用各自的方法。
    2. 二元参数 、三元参数
    3. 参数对象 如果参数过多,我们可以考虑将参数封装程一个类,从参数创建对象,从而减少参数数量
  6. 使用异常代替返回错误码

    1. 抽离 Try/Catch 代码块
    2. 错误处理就是一件事
  7. 别重复自己 减少一切重复代码

最后,总结一下,相应的方法:分解函数、修改名称、消除重复。