老仓库现代化重构工作流
📌 适用场景:遗留项目重构 / 技术债偿还
Claude 读懂老代码 → Cursor 提交重构 → CodeLlama 本地跑批量替换 → Claude Code 做最终 review,把 5 万行屎山逐步现代化。
🛠️ 涉及工具清单
📋 完整步骤
- 1
仓库地图绘制
把整个仓库交给 Claude(100 万 token 上下文),让它产出一份"模块依赖图 + 高复杂度文件 Top 20 + 重构优先级"。
使用工具: Claude用 git ls-files + cat 把代码塞进同一条提示,比逐文件提问要有效得多。 - 2
制定模块拆分计划
让 Claude 把高优先级模块拆成 8-12 个可独立 PR 合并的"原子重构",每条原子重构带验收标准。
使用工具: Claude每个原子重构应该独立通过测试 —— 让 Claude 同时给出该模块的最小测试集。 - 3
单 PR 重构执行
在 Cursor 的 Composer 里加载该模块的所有文件,按上一步的验收标准让它一次性给出 diff。
使用工具: CursorComposer 的"diff-only"模式比直接覆盖文件更安全 —— 你能逐 hunk 接受。 - 4
批量机械化变更
一些重复变更(比如 import 路径迁移、API 命名规范统一)适合本地跑 CodeLlama,免费且快,避免拿付费 API 跑无脑替换。
使用工具: CodeLlamaollama run codellama:34b + ripgrep 组合是经典本地批改三件套。 - 5
最终审查与合入
每个 PR 合入前用 Claude Code 跑一遍,重点检查"重构是否引入行为变更"以及"测试是否真的覆盖了改动点"。
使用工具: Claude Code让它输出"风险清单 + 建议手动复查的代码段",作为 code reviewer 的 checklist。
老仓库现代化重构工作流
老仓库重构是 AI 真正放大价值的场景:代码体量大、规则单调、人脑容易疲劳。 这条工作流的核心思想是 —— AI 出方案 + AI 出 diff + 人决定是否合入,把人从机械工作里解放出来, 把脑力放在判断和验收上。
三个阶段
阶段 1:理解(占 20% 时间)
这一步只用 Claude,因为它是当前唯一一个能稳定吃下整个中型仓库(10-20 万行)的模型。 不要急着改代码 —— 先确认你和 AI 对仓库的理解一致。
阶段 2:执行(占 60% 时间)
按”原子 PR”节奏推进。每个 PR 应该:
- ≤ 500 行 diff(超过时拆分)
- 独立通过测试
- 有明确验收标准
阶段 3:验收(占 20% 时间)
Claude Code 跑最终 review,人工合入。这一步必须保留人为闸门—— 重构最大的风险不是代码丑,而是行为变更被偷偷引入。
工具选型理由
| 工具 | 不可替代性 |
|---|---|
| Claude | 长上下文 SOTA,能读完整仓库 |
| Cursor | Composer 一次性多文件 diff |
| CodeLlama | 本地免费,适合机械批改 |
| Claude Code | SWE-Bench 80%+,行为变更检测最强 |
注意事项
- 保留可回滚点:每个原子 PR 单独 merge,方便出问题时只回滚一个。
- 测试先行:如果模块没有测试,先让 Cursor 补测试,再开始重构。
- 不要相信”AI 说没问题”:合入前一定跑一次完整测试 + 人工 smoke test。