一、单元测试
测试代码和生产代码一样重要,它需要被思考、设计,同时也要保持整洁。如果测试不能保持整洁,你就会失去它们。而没有测试,你就会失去保证代码生产的可扩展性的一切要素。因为单元测试可以让你的代码可扩展、维护、复用。有了测试后,你不再担心代码的修改。没有测试,每次修改都有可能带来缺陷,无论架构多有扩展性、设计划分的多好,你都很难做改动,因为你怕改动会引入不可预知的缺陷。
1、如何保证测试代码的整洁?
可读性。在单元测试中,可读性甚至比生产代码还重要。
2、如何才能做到可读性?
明确、简洁、并有足够表达力。整洁的测试代码要保持测试代码的整洁,中和生产代码一样重要。
3、如何做到整洁的测试?
快速、独立、可复用、自足验证、及时。
编写生产代码前先编写单元测试,既测试驱动开发。测试能保证和增强生产代码的可扩展性、维护性、复用性。
二、类
类的设计规则和函数一样,要短小,更短小。
1、如何衡量类的大小?
计算其权责
2、单一权责
单一权责是面向对象设计中的重要概念之一。我们大多数人都认为,程序能正常工作,就万事大吉了。却没有把思维转向有关代码组织和整洁部分,直接就转向下一个问题,而没有把臃肿的类划分为单一权责的去耦式单元。
我们都知道,达到一定规模的系统,都会包括大量的逻辑性和复杂性。管理这些复杂性的首要目标就是加以组织,便于开发者寻找。
记住,系统应该由许多个短小的类而不是少数大量巨大的类组成,每个小类封装一个权责,只有一个修改的原因,并与其他少数类一起协同达成期望的系统。