用途:为混乱、难以修改、重复或难以测试的代码制定安全、增量的重构计划,核心原则是不改变行为,只改善结构,避免一次性大改带来的风险。
主要能力:先建立安全网,再规划一系列保持行为不变的小步骤,每步都让代码保持通过测试且可独立提交;把重构与功能开发分离,避免在同一提交中混做两件事。
必要输入:需要重构的代码与痛点(难改、重复、慢、不可测);相关测试覆盖及框架,若没有测试则先补测试;目标结构或希望后续更容易实现的事情;约束条件,如不可改变的公共 API、行为、性能及时间预算。
输出格式:包含重构计划标题、原因与目标、安全网(优先执行,覆盖不足时先加特征测试固定当前行为,包括缺陷)、目标结构草图、按序排列的小步骤(每步保持行为不变且可独立提交,注明重构动作、如何保持通过、何时提交)、完成定义(行为一致、测试仍通过、达到目标结构、未夹带功能改动)。
质量检查:任何改动前先建立安全网;每步保持行为不变且可独立提交;步骤小且有序,全程保持代码通过;重构与行为或功能改动分离;目标结构明确并关联后续便利。
反模式:不要在同一提交中重构并加功能;不要在无测试时开始,覆盖不足先加特征测试;不要规划大爆炸式重写;不要把改变行为称为重构;不要跳过步骤间运行测试。
适用场景:代码需要重构、难以修改、变得纠缠,或希望为后续功能扩展做准备时。
限制:资料未提供具体安装命令、平台支持、收费或价格信息;该技能基于 Martin Fowler 的重构纪律,强调行为保持的转换、特征测试和小步推进。