简单设计的四条原则:运行所有测试;消除重复;保证表达力;尽可能减少类和方法的数量;
重构:提高内聚性,降低耦合度,切分关注面,模块化系统性关注面,缩小函数和类的尺寸,选用更好的名称等;
消除重复:小规模复用:共性抽取,再将新方法分解到另外的类中;
模块方法模式:移除高层级重复;
表达力:代码清晰表达其作者的意图;好名称,保持函数和类的尺寸短小,标准命名法,编写良好的单元测试;
使用依赖注入、接口和抽象等工具尽可能减少耦合;
测试的主要目的之一就是通过实例起到文档的作用;