通过跌进设计达到整洁目的
简单设计四条规则:
- 运行所有测试
- 不可重复
- 表达了程序员的意图
- 尽可能减少类的方法和数量
- 以上规则按其重要程度排列
1. 运行所有测试
设计必须制造出如预期一般工作的系统,这是首要因素。不论系统是否有一套绝佳设计,但如果不能如预期般工作,那无异于纸上谈兵。
全面测试并持续通过所有测试的系统,就是可测试的系统。看似浅显,但却重要。不可测试的系统同样不可验证。不可验证的系统绝不应该部署。
2. 简单设计规则2-4:重构
通过测试保证了代码的正确性后,就应该关注代码的设计了。在保证代码正确的情况下,添加代码就应该关注设计是否退步,如果是,就要清理掉它。
在重构过程中,可以应用有关优秀软件设计的一切知识。提升内聚性,降低耦合度,切分关注面,模块化系统性关注面,缩小函数和类的尺寸,选用更好的名称等等。这也是简单设计的后三条原则:消除重复、保证表达力,尽可能减少类和方法的数量。
3.不可重复
我在之前的读书笔记中也写到过这样一句话:我与重复不共戴天
只要一个东西重复了三次或者三次以上,我们就应该想办法把这一块的逻辑抽离出来复用了。
4. 表达力
我们自己理解自己写的代码很容易,因为在写这些代码时,我们正深入于要解决的问题中。代码的其它维护者不会那么深入,也就不易理解代码。因此好的代码应当清晰地表达其作者的意图。
书中之前也提到了好的代码应该是怎样的:好的命名、函数和类保持短小、良好的单元测试等等
不过,做到表达力的最重要方式确实尝试。有太多时候,我们写出能工作的代码,就转移到下一个问题上,没有下足功夫调整代码,让后来者易于阅读。