SuperAPI AI 工具集

refactor-codebase

编程与开发

查看项目

更新于 10-16 03:52

技能介绍

用途

Refactor Codebase 用于以增量方式重构代码库。它的核心理念是:永远不要试图一次性完成整个重构,而是先规划阶段,再逐个执行,并在每一步之间保持系统可运行。

两种模式

  • 仅规划模式:访谈 → 微小提交计划 → GitHub issue。到此停止。
  • 执行模式:规划(同上,或基于已有 issue)→ 逐阶段运行。

工作流程

1. 审计当前结构

阅读代码库,关注:文件夹布局与模块边界、耦合热点(被到处导入的文件、上帝模块)、职责混杂、测试覆盖率(重构风险)、构建/检查/测试工具。询问用户要解决什么痛点(导航、可扩展性、构建时间、团队扩展),以及明确不在范围内的内容。

2. 定义目标与范围

写一段简短的问题/目标陈述,包含目标文件夹/模块草图、约束(保持绿灯、不改变行为、仅增量)、非目标。就用户考虑过的替代方案进行访谈,敲定确切范围。如果覆盖率不足,商定一个 Phase 0 安全网(见 REFERENCE.md)。

3. 拆分为微小阶段

遵循 Fowler 的原则:每一步都足够小,使程序始终可运行。每个阶段必须:

  • 只涉及一个关注点(例如“移动 auth 模块”“提取共享工具”)
  • 可独立验证(阶段中指明测试/构建/检查命令)
  • 可安全停止——没有半迁移状态
  • 不超过约 20 个文件;更大的要拆分

每个阶段记录:移动/更改什么、迁移策略(先复制后删除、再导出垫片、codemod——见 REFERENCE.md)、验证命令。

仅规划模式:将计划作为 GitHub issue 提交,包含以下部分:问题陈述、解决方案、提交(微小,每个都让代码库保持可运行)、决策文档(模块、接口、架构——不含文件路径或代码片段,它们会过时)、测试决策、范围外。返回 issue URL 并停止。

4. 一次执行一个阶段

  • 阅读范围内每个文件。
  • 进行结构更改;更新所有导入(如有 codemod 则使用)。
  • 运行该阶段的验证命令。
  • 提交(refactor: phase N – <title>);优先使用 git mv 保留历史。
  • 在计划中标记该阶段完成,记录意外情况,在下一阶段前汇报。

护栏

  • 结构重构期间绝不改变行为——记录 bug,不要在同一提交中修复。
  • 先移动,在单独阶段重命名。
  • 未经用户确认,不要连续执行多个阶段。

参考

REFERENCE.md——架构模式、迁移策略、Phase 0 安全网、验证命令、危险信号。