摘要:在做公司老的运营平台的治理项目中,我们面临大量历史Class组件冗余、维护成本高的问题。
本文复盘了如何利用Cursor/Copilot等AI工具,在3周内完成20+核心模块从Class到Hooks的批量迁移。
文章不讲虚的,重点分享可复用的Prompt策略、人机协作校验流程,以及那些AI“一本正经胡说八道”时踩过的坑。
为什么必须重构?不只是为了“新语法”
在接手公司老运营平台时,我发现一个典型痛点:
核心业务模块大多是3-6年前的Class组件,嵌套层级深、状态逻辑分散在多个生命周期里,新人上手改一个字段可能要读半天代码。
更致命的是,这些组件无法复用逻辑,相似功能在不同页面被复制粘贴了N遍。
团队评估后决定做Hooks迁移,但现实很骨感:
20+个核心模块、数万行代码,纯人工重构至少需要2个月,且容易引入回归Bug。
恰逢AI Coding工具成熟,我们决定试一条新路:
让AI当“初级重构工程师”,人来做“架构师+QA”。
最终结果:3周完成全部迁移,单元测试覆盖率从35%提升到82%,线上零故障。
下面拆解这套工作流。
第一步:制定Prompt策略,别让AI“自由发挥”
直接对AI说“把这个Class组件改成Hooks”是灾难的开始。
AI会忽略业务上下文、乱删副作用、甚至编造不存在的Hook。
我们总结出一套 “三段式Prompt模板”:
【角色与目标】 |
关键细节:
喂完整上下文:不要只贴当前文件,把关联的类型定义、自定义Hook、工具函数一起贴上,否则AI会自己造轮子。
强制标记:// AI-MIGRATED 和 // TODO-AI-CHECK 让人工Review时有明确锚点,效率提升50%以上。
分步执行:超过300行的组件,先让AI生成迁移方案(伪代码/思路),确认无误后再让它写实际代码。一步到位的代码质量显著低于分步验证。
第二步:人机协作校验流程,信任但要验证
AI生成的代码不能直接用,我们建立了 “三层校验机制”:
静态检查层:ESLint + TypeScript编译必须零报错。AI常犯的错误包括:遗漏依赖项、错误解构props、类型断言滥用。这一层能过滤掉60%的低级问题。
单元测试层:这是最关键的一环。我们要求先跑通旧组件的单测,再让AI基于同一套测试用例适配新组件。如果测试失败,把错误信息连同测试代码一起喂给AI修复,而不是自己手动改。这个过程本身就是在训练AI理解业务边界。
视觉回归层:对于涉及UI的组件,用Storybook做并排对比。AI重构有时会意外改变渲染顺序或条件判断,肉眼Diff比代码Diff更可靠。
血泪教训:曾有一个表单组件,AI把componentDidUpdate里的防抖逻辑错误地放进了useEffect,导致每次渲染都重建定时器。
单测通过了(因为mock了timer),但实际操作时输入卡顿。
后来我们在Prompt里加了“副作用中的定时器/订阅必须用useRef持有引用”才根治。
第三步:避坑指南,AI重构的五个“不要”
不要让AI一次性重构整个文件夹:上下文窗口有限,它会丢失跨文件依赖关系。按模块粒度逐个处理,每个模块独立验证。
不要相信AI对业务逻辑的“优化建议”:它可能把必要的冗余判断当作“死代码”删掉。重构的目标是等价转换,不是智能优化。业务逻辑变更必须人来决策。
不要跳过Git原子提交:每完成一个组件的重构就单独commit,附带单测通过截图。出问题时可以精准回滚,而不是在一堆混合改动里大海捞针。
不要忽视AI的“幻觉API”:AI偶尔会使用不存在于当前React版本的Hook或第三方库方法。务必对照官方文档核实,尤其是较新的API。
不要在疲劳时Review AI代码:AI生成的代码看起来“太正确了”,容易产生认知惰性。建议每天Review不超过5个组件,保持注意力阈值。
效能数据与反思
| 指标 | 传统人工重构 | AI辅助重构 | 提升幅度 |
|---|---|---|---|
| 单模块平均耗时 | 4.5小时 | 1.2小时 | 73% |
| 首次Review通过率 | 65% | 88% | +23pp |
| 回归Bug数 | 7个 | 2个 | -71% |
| 单测覆盖率增量 | +15% | +47% | +32pp |
最大的收获不是速度,而是质量基线的提升。
AI倒逼我们把模糊的业务逻辑显式化为测试用例和Prompt约束,这本身就是对系统的深度理解。
重构结束后,这套Prompt模板和校验流程沉淀为团队规范,后续Vue3迁移项目也直接复用。
写在最后
AI不会替代工程师,但会重新定义“工程师该做什么”。
在这轮重构中,我的角色从“写代码的人”变成了“定义规则、验证结果、处理异常的人”。
AI负责体力活,人负责判断力——这可能是当下最务实的AI Coding落地姿势。
如果你也在面对遗留系统治理,不妨从小模块开始试一次。
记住:AI是你的实习生,聪明但需要你把关。
用好它,你能腾出时间去做真正有价值的事。
如果这篇对你有帮助,欢迎点赞收藏。
后续我会继续分享SSE流式引擎搭建、配置化卡片系统等实战内容,收藏网址不迷路。