展开知识库目录

重构前怎样固定现有行为,避免顺手改变业务逻辑

系统可能包含没有文档但业务依赖的行为。

先把问题看准

重构前先把现有行为固定下来

系统可能包含没有文档但业务依赖的行为。先用特征测试、快照或真实请求记录输入输出,再改变结构;不要顺手修业务逻辑而不说明。

第 1 步

界定重构目标

写要改善的结构、可维护性或性能问题,以及明确不改变的外部行为。

把涉及的文件、目录、版本、命令和实际输出写进记录;代码变化同时保留 diff 与测试结果。

第 2 步

捕获当前行为

为关键输入、边界、错误和副作用添加特征测试,哪怕当前结果不理想也先记录。

确认“捕获当前行为”已经有可回查结果,再进入“建立安全小步”;依据仍然来自猜测时,把缺口单列并停在当前步骤。

第 3 步

建立安全小步

一次只移动、重命名或抽取一种结构,保持每步可编译、可测试和可审查。

确认“建立安全小步”已经有可回查结果,再进入“分开业务修复”;依据仍然来自猜测时,把缺口单列并停在当前步骤。

第 4 步

分开业务修复

发现真实 Bug 时单独记录和提交,先确认期望行为与负责人,不藏在重构中。

确认“分开业务修复”已经有可回查结果,再进入“比较前后证据”;依据仍然来自猜测时,把缺口单列并停在当前步骤。

第 5 步

比较前后证据

运行相同测试、接口样例和性能基线,审查 diff 是否只涉及目标范围。

需要修改时先限定文件和行为范围,无法说明回滚方式或影响面的动作先不执行。 完成后把证据归入“特征测试与前后差异报告”。

完成后应能在“特征测试与前后差异报告”中找到与这一步对应的记录;仍需靠猜测补全,就停在这里。

做到这里就可以停

重构报告应证明行为未变

列原行为、保护测试、结构改动、测试和任何有意变化。无法用测试保护的路径写为残余风险,而不是默认安全。

进一步核对

参考资料与核对入口