学习Kent Beck简单设计四条规则
- 运行所有测试
- 不可重复
- 表达程序员的意图
- 尽可能减少方法的数量
首先我们设计开发出来的系统应该是包含测试,只有通过了所有的测试,系统才可以被发布。这就要求我们的测试,是覆盖全面的。全面的测试,必然我们的测试数量是很多的,那么我们在设计程序时,就要做到程序是可测试的,所以说,测试可以引致更好的设计。
不可重复,我们的系统不应该包含大量的重复代码。重复意味着系统的复杂性高,可维护性差,可扩展性差。重复包含代码的重复,逻辑的重复,功能的重复。我们需要在程序开发是,不停的重构,去除重复。
表达程序员的意图,程序代码不是写完之后就会被永久搁置起来,它会在需求有变更,或者进行维护时再次被拎出来,又或者代码功能出现问题时,会被再次改动。我们需要保证在代码再次被阅读时,每个人都能很快的读懂代码。这样的设计,是高效的。
尽可能减少方法的数量,太多层次的调用不利于我们阅读代码。太多的方法,意味着抽象的设计做的不够好。我们应该保证我们的抽象是在我们的智力可以管控的范围内的。在最早期的开发,先辈们使用汇编语言进行开发,当系统的规模日渐增大时,汇编命令的抽象层次上,我们的智力水平去管理一个系统,就产生了挑战性。所以做好抽象,可以使我们更加高效。
这四条设计规则,重要性依次降低,当我们面临矛盾时我们需要去做权衡,目的是怎么高效怎么来。