「代码整洁之道」读书笔记

  1. 函数要尽可能短小,最好不要超过20行。而且函数应该做一件事,做好这件事,只做这一件事。
  2. 函数参数尽可能的少,建议一般不要超过三个。如果函数看来需要两个、三个或三个以上参数,就说明其中一些参数应该封装为类了。
  3. 对于一元函数,函数和参数应当形成一种非常良好的动词/名词对形式。如,write(name)
  4. 函数要么做什么事,要么回答什么事,但二者不可得兼。函数应该修改某对象的状态,或是返回该对象的有关信息。两样都干常会导致混乱。
  5. 函数是语言的动词,类是名词。
  6. 如果可能尽量不写注释,而是让变量和函数本身见名知意。
  7. 暂时未完成的部分使用TODO注释,让开发工具将未完成的部分放到工作列表。
  8. 没必要在代码里添加归属与署名,因为源代码控制系统已经帮我们做了这些事,完全没必要让这样的注释搞脏代码。
  9. 不要保留注释掉的代码,代码被注释掉说明是无用的。源代码控制系统会记录这些删掉的代码,不用担心找不回来。
  10. 自上向下展示函数调用依赖顺序,被调用的函数应该放在执行调用的函数下面。
  11. 每行代码不要超过120个字符,而最佳长度为80到100个字符。
  12. 对象暴露行为,隐藏数据。便于添加新对象类型而无需修改既有行为,同时也难以在既有对象中添加新行为。数据结构暴露数据,没有明显的行为。便于向既有数据结构添加新行为,同时也难以向既有函数添加新数据结构。
  13. 定义一个函数最好别返回null值。返回null值基本上是再给自己增加工作量,也是在给调用者添乱。如果你打算在方法中返回null值,不如抛出异常,或是返回特例对象。如果你在调用某个第三方API中可能返回null值的方法,可以考虑用新方法打包这个方法,在新方法中抛出异常或是返回特例对象。

以上是「代码简洁之道」前十章的读书笔记。只记录了笔者认为在实际工作用比较实用的部分,没有长篇大论的摘抄。主要用于阅读备忘,方便以后复习。