重构与单元测试
上一篇文章提到过度设计,在避免过度设计的同时或多或少损失了系统的扩展性。这样几年之后需要对系统进行整体重构或模块重构。
重构的风险不言而喻,单元测试覆盖率是大胆重构的基础。
重构是解决“过度设计”的过渡方案,有助于度过从初级程序员到资深程序员之间青黄不接的阶段,当积累了足够经验,才有可能一次性作出准确的设计判断。
而保证你敢去重构的基础是单元测试覆盖率(否则你在重构时手指抽筋引入了一个bug会被骂死)。
此外,高单元测试覆盖率特别是高分支覆盖率(Branch Coverage)又能反过来鼓励你进行更好的设计(尽量细分功能单元便于编写测试,消除重复代码避免重复测试,等等),
能形成一个良性循环。
适当设计:保证系统的简洁高效
系统重构:弥补避免过度设计时带来的弊端
单元测试:保证品质,为重构的决策做根据