首页/开发/代码质量与评审速查/遗留代码:接缝与包装(Legacy Seams)
重构手法62 条

遗留代码:接缝与包装(Legacy Seams)

给无测试的遗留代码找接缝:在接缝处引入包装层(Wrapper、Adapter)与特征测试(characterization test),先锁定行为再逐步重构;不能全量重写时,测试是关键投资。

接缝可在不改动内部的情况下替换行为的位置
手段提取接口、注入依赖、包装外部调用
测试特征测试记录现状(含怪异行为)

特征测试要点

特征测试要点
1. 选定入口,记录真实输入输出对
2. 断言包含当前「看似奇怪」的行为
3. 重构期间一旦偏离即红灯
特征测试锁定的是现状而非期望:发现明显缺陷时单独记录,不要顺手「修正」,否则重构与修缺陷混在一起。

易错点

  • 特征测试直接断言期望值:现状与期望不符时测试永远红
  • 包装层无限叠加:接缝要控制数量,配套清理计划

数据来源与参考

  • 《重构》第 2 版 · 第 24 章(重构与既有代码)与 Michael Feathers《修改代码的艺术》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌