最近在复现一个遗留系统的重构任务,团队里的小伙伴开始尝试用 Claude Code 来加速进度。起初大家很兴奋,觉得“搬砖”的力气活终于可以交给机器了。但不到一周,问题就来了:代码写得飞快,Bug 也藏得飞深,Review 的人差点被 PR 淹死。
这让我意识到,AI 编程工具(Vibe Coding)的到来,并没有改变软件工程的本质,反而对我们这些研发人员和架构师提出了更高的要求。工具越智能,流程越要严谨。
结合这段时间的踩坑经历,聊聊我对“AI 时代研发流程”的一些思考。
一、 把 AI 当“实习生”,而不是“大神”
很多同学刚开始用 AI 写代码,喜欢直接甩一句:“给我写个秒杀系统”。结果往往是灾难性的——它可能给你整一套 Redis 分布式锁,但完全没考虑库存超卖后的补偿逻辑,或者忽略了消息队列的堆积处理。
我的做法是:先给规则,再给任务。
开工前,我会先在项目根目录建一个 SKILL.md或者 AGENTS.md。这东西就像是给实习生的《新员工手册》,里面必须写清楚:
技术规范:比如“所有对外接口必须返回统一的 JSON 格式”、“禁止使用 SELECT *”。
项目坑点:比如“这里的老数据有脏读,查询必须加时间范围”、“千万别动那三个 legacy 文件,那是上古时期的定时任务”。
验收标准:比如“必须跑通单元测试,覆盖率不低于 80%”。
AI 是不懂“常识”的,它只会根据你给的上下文去拟合。 你给的范围越窄,它输出的质量越高。别指望它一开始就能理解你整个庞大的系统架构,那只会让它胡言乱语。
二、 上下文管理:别让 AI 背你的“黑历史”
Claude Code 虽然号称有巨大的 Context Window(上下文窗口),但容量大不代表理解力强。
在一个长达数小时的对话中,如果你先让它改登录逻辑,再让它优化支付回调,最后又问它“为什么昨天那个导出功能挂了”,它极大概率会把新旧逻辑搞混。它以为自己记住了所有历史,其实脑子里是一团浆糊。
架构师的核心能力之一,就是做“减法”和“抽象”。面对 AI,我们也要这么干:
按需投喂,不喂垃圾: 别把整个 Git 仓库一股脑塞给它。当前任务只给 Spec、相关文件和报错日志。其他的,让它自己去搜(@符号引用文件)。
定期“清空缓存”: 我现在的习惯是,完成一个大阶段(比如搞定登录模块),就用 /compact压缩一下上下文,或者直接开个新 Session。把已经消化的信息固化成文档(如 NOTES.md),而不是让它带着几万字的废话继续干活。
长任务必须“落盘”: 对于复杂的重构,一定要让 AI 维护一份任务清单。哪些文件改了、哪些测试跑了、还有哪些坑没填,必须白纸黑字写下来。万一连接断了,换个 Session 也能接着干,不用从头解释一遍。
三、 权限与安全:给 AI 戴上“紧箍咒”
这是最容易被忽视,也是最致命的一点。
Claude Code 不仅仅是个聊天机器人,它是一个能读文件、写代码、甚至执行 Shell 命令的 Agent。它能帮你 npm install,也能帮你 rm -rf。
千万不要对 AI 抱有“它会谨慎行事”的幻想。
在实际项目中,我强制要求团队做以下管控:
-
敏感信息隔离:.env、数据库密码、云服务密钥,绝对不能出现在 AI 的读取范围内。一旦它不小心把 Key 提交到 Git,那就是 P0 事故。
-
高危操作拦截:删除文件、强制推送 (git push -f)、修改生产配置,这些操作必须设置为 Ask(询问)模式。AI 想动刀子,必须先举手示意。
-
沙箱环境:尽量在 Docker 或者受限环境中运行 AI 生成的脚本。别让它在你的本地机器上随意跑 curl或者下载未知二进制文件。
信任必须建立在工程约束之上。 我们要做的,是构建一个安全的“人机协作”沙盒。
四、 实战流程:从“莽夫式”到“工程化”
回顾我们团队现在的 SOP,已经完全适配了 AI 辅助开发:
规划期(人主导):架构师写好轻量级 Spec,定义好接口和边界。
设计期(AI辅助):让顶级模型(Opus/Sonnet)出方案,我们只看架构图,不写具体代码。
编码期(AI主导,人兜底):切换到性价比高的模型(Haiku/Sonnet),按 Task 一步步实现。每写完一个功能,立刻跑测试。
验证期(人主导):提交 PR 前,人工 Review 是必须的。AI 写的代码往往“看起来很美”,但边界条件处理通常比较粗糙。
沉淀期(人机协作):把这次迭代中用到的好套路,反哺到 SKILL.md里,让下一次 AI 写得更好。
结语
AI 编程不是魔法,它是杠杆。
如果你把 AI 当成无所不能的神,它就会把你坑进地狱;如果你把它当成一个不知疲倦、但需要严密监督的初级工程师,它就能帮你省下 50% 的体力活。
代码写得越快,Review 和测试就越重要。 在这个新时代,我们研发人员的核心价值,不再是“写代码的熟练度”,而是“定义问题的能力”和“把控工程质量的底线”。
守住这些,AI 才是我们的好帮手。



