通过迭进设计达到整洁的目的,本章主要介绍了四条简单的规则,用以帮助你更轻易的实现代码的良好的设计已经更轻松的应用SRP和DIP等原则,这四条规则是
-
运行所有测试
-
不可重复
-
表达程序员的意图
-
尽可能减少类和方法的数量
以上规则按其重要程度排列
1.运行所有测试
如前面章节所介绍的,拥有良好的单元测试覆盖率,并且持续运行,会使你的代码更容易遵守一些规则,因为你会努力去编写易于测试的代码,进而更注重代码的设计,去编写低耦合高内聚的代码。
2.重构
有了测试,你就能保持代码和类的整洁,然后在此基础上,进行递增式的代码重构,因为有单元测试的保证,你不必承受重构带来的关于会破坏代码的恐惧,在重构的过程中,你就可以用后面三个规则去不断优化你的系统,反过来优化后的系统更容易编写良好的测试,形成一个良性循环。
3.不可重复
重复是拥有良好设计系统的大敌,它代表着额外的工作,额外的风险和额外且不必要的复杂度,想要创建简洁的系统,需要有消除重复的意愿,即使短短的几行重复也是如此。模板方法模式是一种移除高层级重复的通用技巧。
4.表达力
对于费解的代码,会严重影响代码维护的效率,也许在写代码时,你觉得代码易于理解,那是因为你正在深入其中,但是当对代码进行维护的时候,你就会觉得难以理解了,所以,为了代码的易于维护性,我们需要将代码写的简单而具有表达力,比如,通过准确的命名,简短的函数。在写出能工作的代码后,记得回过头来调整代码,因为大概率一段时间后下一个来读这段代码的人就是你自己
5.尽可能少的类和方法
即便是消除重复,代码的表达力和SRP等基础的概念也会被过度使用,为了保证类和函数的短小,我们可能会制造太多的小类和方法,所以这条规则主张函数和类的数量要少,当然这里幷不是就是说,我们在去对类和函数进行拆分和优化的时候要适可而止,需要以这条规则来抑制其他规则的执行,我们可以想办法去减少由毫无意义的教条主义导致的不必要的类或方法,而不是抑制必要的拆分。比较这条规则排在了最后面