SuperAPI AI 工具集

refactoring-safely

编程与开发

查看项目

更新于 10-15 23:45

技能介绍

用途:在保持行为不变的前提下,小步改进代码结构与设计,降低重构风险。适用于用户要求“重构”“清理代码”“不改变行为地改进”,以及提取函数、重命名、重组代码、偿还技术债、为新增功能做准备(如先提取接口)等场景。

主要能力与原则:行为保持——输出、API、副作用等可观察行为不得改变,依赖测试,必要时做快速人工检查;小步推进——每步只做一类改动(重命名、提取函数、移动文件等),每步后提交或设检查点便于回滚;测试先行——重构前确保测试存在且通过,每步后运行完整测试套件,失败则修复或回滚;不混入功能——重构不得与新功能或缺陷修复放在同一次改动中。

工作流程:确认范围(重构对象与必须保持不变的行为,不明确时询问或记录假设);确保测试通过,无测试则先补最小冒烟或关键路径测试,或仅做小步低风险重构并说明风险;选择单一重构类型;做最小编辑并更新所有引用(调用点、导入、测试),运行测试;提交或设检查点后重复;最后验证完整测试通过,可选对受影响流程做冒烟测试。

常见重构:重命名符号、文件、模块;提取函数或模块;调整参数顺序;以多态替换条件分支(逐步迁移调用点或分支);移动代码到其他文件或包。

安全规则与限制:每步后运行测试,失败即修复或回滚,不积累“稍后修复”;每步只做一种重构;不新增行为,发现缺陷另开提交;大型重构使用专用分支、小 PR 或增量提交;无测试时先补最小测试或警告用户并优先做最小低风险重构。反模式包括重构与功能同 PR、一次提交改动 50 个文件、依赖不稳定测试、顺手改变行为、无测试大重构。危险信号:测试失败后改测试以匹配新行为,这属于行为变更而非重构,应回滚或拆分为重构加有意的行为变更;也不要把格式化或 lint 修复与结构重构混在一起。