人人都会AI编程

4.4.4 代码重构:批量优化的实用技巧

更新时间:2026-06-29

代码重构是最容易"改崩"的场景,AI 虽然能快速生成替换代码,但缺乏对整个项目运行时上下文的深度理解。掌握以下技巧,可以在提升效率的同时保持代码安全。

1. 重构前建立 Git 检查点
无论改动多小,先在当前分支执行 git commitgit stash 建立一个干净的回退点。Cursor 的 AI 编辑虽然支持撤销,但一旦涉及跨文件批量替换,手动逐文件 Ctrl+Z 非常麻烦。有 Git 兜底,你可以大胆尝试 AI 的重构方案,不满意随时 git checkout . 回滚。

2. 从局部验证到全局推广
不要一开始就命令 AI 对整个项目进行重构。推荐三步走:

  • 第一步:选中一个最具代表性的函数,使用 Ctrl/Cmd + K 行内编辑,输入具体重构目标(如"将回调函数改为 async/await"),观察生成质量是否符合预期;
  • 第二步:确认单文件效果满意后,在该文件内继续使用侧边栏对话,要求 AI 按相同模式处理剩余同类代码;
  • 第三步:若涉及跨文件,再开启 Agent 模式(参考 3.5),让 AI 自动扫描并批量修改,同时要求它执行测试验证。

3. 用规则约束代替模糊指令
模糊地说"优化这段代码"往往得到过度设计的结果。给出明确约束,AI 的执行会更精准:

  • 指定范围:"只替换错误处理逻辑,不要改动业务判断";
  • 指定风格:"遵循项目已有的 ESLint 规则,优先使用可选链操作符";
  • 指定边界:"保持现有函数签名不变,兼容旧调用方"。

4. 跨文件重构:先搜索再 @ 引用
对于"统一修改所有 API 请求封装"这类需求,不要直接让 AI 猜文件在哪。先用 Cursor 的全局搜索(Ctrl/Cmd + Shift + F)确认涉及的文件列表,然后在对话中通过 @文件 逐个引用关键文件,或直接使用 @代码库 让 AI 基于项目上下文生成修改方案。Agent 模式下,可以要求 AI 先列出待修改的文件清单和执行计划,你确认后再实际执行写入。

5. 重构后强制验证
AI 重构后的代码语法正确不代表逻辑正确。养成两个习惯:

  • 立即运行静态检查:在终端执行 npm run linttsc --noEmit 等,利用项目已有的类型系统和规范工具拦截低级错误;
  • 针对性运行测试:如果项目有单元测试,让 AI 同步生成或更新对应的测试用例(参考 3.7.1),运行通过后心里更有底。

6. 高频重构场景指令模板
直接复用以下模板,减少每次描述成本:

  • 变量/函数重命名:"将 userList 及其所有引用重命名为 userItems,包括注释和字符串中的中文描述";
  • 提取公共逻辑:"把这三个文件里重复的表单验证逻辑提取到 utils/validation.ts,保持错误提示文案不变";
  • 技术栈迁移:"将当前文件从 Vue Options API 改写为 Composition API,<script setup> 写法,保留所有生命周期逻辑"。

避坑提醒

  • AI 偶尔会"幻觉"出项目中不存在的工具函数,重构后务必全局搜索确认新增依赖是否真实存在;
  • 遇到超过 10 个文件的大范围重构,建议拆成多次提交,每批修改后手动验证,避免最后面对几十个冲突文件无从下手。