用途:在改变代码结构而不改变预期行为时使用,例如重命名抽象、抽取服务或模块、减少重复、调整内部实现。核心原则是小步、可逆,并把设计改进与行为变更分开。
主要能力与流程:先定义必须保持稳定的行为;为其添加或收紧特征测试;选择最小的安全切片;逐步重命名、移动或抽取,保持代码可运行;在新路径被验证后再移除兼容层。
硬性要求:没有特征测试不得重构;行为变更与结构重构分开;每一步后都要运行测试,不能只在最后验证。未运行测试套件就不能声称重构有效。
验证协议:每步后运行完整测试套件,读取输出并检查退出码与失败数;失败则停止、撤销该步并排查;通过则继续;只有最后一次测试运行的证据才能支持完成声明。禁止“应该能工作”“看起来正确”“我有信心”等无证据说法。
常见错误:无测试就快速重构、混合行为与结构变更、最后才验证、一次提交重命名大量调用点、为满足模式而加抽象、新路径未验证就删旧代码。
输出风格:说明必须稳定的行为,提出最小安全序列,指出保护每步的测试,标注临时兼容代码及移除时机,每步运行验证并报告证据。
集成:可配合 rspec-best-practices 编写特征测试、rails-architecture-review 发现结构问题、rails-code-review 审查重构代码、ruby-service-objects 抽取服务对象。
限制:资料未提供具体安装命令、平台支持、收费或价格信息。