《代码整洁之道》第十二章

24 Feb 2022

Reading time ~5 minutes

12.1 通过迭进设计达到整洁目的

只要遵循以下规则,设计就能变得“简单”:

  • 运行所有测试
  • 不可重复
  • 表达了程序员的意图
  • 尽可能减少类和方法的数量

以上规则按其重要程度排列。

12.2 简单设计规则1:运行所有测试

设计必须制造出如预期一般工作的系统,这是首要因素。

全面测试并持续通过所有测试的系统,就是可测试的系统。

只要系统可测试,就会保持类短小且目的单一的设计方案。

紧耦合的代码难以编写测试。

遵循有关编写测试并持续运行测试的简单、明确的规则,系统就会更贴近面向对象低耦合度、高内聚度的目标。编写测试将会引致更好的设计。

12.3 简单设计规则2~4:重构

有了测试,就能保持代码和类的整洁,方法就是递增式地重构代码。测试消除了对清理代码就会破坏代码的恐惧。

在重构过程中,可以应用有关优秀软件设计的一切知识,提升内聚性,降低耦合度,切分关注面,模块化系统性关注面,缩小函数和类的尺寸,选用更好的名称。

12.4 不可重复

重复是拥有良好设计的系统的大敌。它代表着额外的工作、额外的风险和额外且不必要的复杂度。

要想创建整洁的系统,需要有消除重复的意愿,即便对于短短几行也是如此。

模板方法模式是一种移除高层级重复的通用技巧。

12.5 表达力

软件项目的主要成本在于长期的维护。代码应当清晰地表达其作者的意图。作者把代码写得越清晰,其他人花在理解代码上的时间也就越少,从而减少缺陷,缩减维护成本。

可以通过选用好名称来表达。

也可以通过保持函数和类尺寸短小来表达。

还可以通过采用标准命名法来表达。

编写良好的单元测试也具有表达力。

不过,做到有表达力的最重要方式却是尝试。

12.6 尽可能少的类和方法

我们的目标是在保持函数和类短小的同时,保持整个系统短小精悍。

尽管使类和函数的数量尽量少是很重要的,但更重要的却是测试、消除重复和表达力。



Reading NotesClean Code Share Tweet +1