第1章 技术债务

要开启设计坏味重构之旅,必须回答的第一个也是最基本的问题是:何为设计坏味以及为何必须重构设计以消除坏味?

在其著作《人月神话》[6] 中,Fred Brooks 描绘了软件的固有特征(即复杂性、一致性、可修改性和不可见性)导致软件设计是个“本质性”难题。为破解这个难题,必须遵循良好的设计实践。一种这样的实践是,软件设计人员必须找出并消除设计决策可能导致的设计坏味,这正是本书要探讨的主题。

那么,何为设计坏味呢?

设计坏味是特定的设计结构,它们违反了基本设计原则,给设计质量带来负面影响。

换句话说,设计坏味表明设计结构中存在潜在的问题。医疗领域为理解坏味提供了很好的类比:可将病人的症状比作“坏味”,将疾病比作“设计问题”。

还可将这种类比延伸到诊断过程。例如,医生分析症状,确定引发症状的疾病,再提出治疗方案。类似地,设计人员必须分析设计中发现的坏味,判断导致坏味的问题,再确定如何重构以解决问题。

介绍了设计坏味后,让我们再说说必须重构①设计以消除坏味的原因。

问题的答案在于技术债务—— 一个在最近几年被软件开发界广泛关注的术语。软件开发人员必须对技术债务有大致的认识,这样才能明白其日常设计决策的长远影响。鉴于此,本章余下的篇幅将专注于讨论技术债务。

① 本书中,我们使用重构(refactoring)这个词来表示“行为保留式程序转换”(behavior preserving programtransformations)[13]。

目录