AI 写代码会偷偷改坏别处吗,我吃过一次
改一个页面文案,结果订单列表的筛选条件没了。这不是我手抖,是 AI 顺手「优化」了它认为重复的两段逻辑。所以 AI 写代码会偷偷改坏别的地方吗——会,而且它不会告诉你。
AI 写代码会偷偷改坏别的地方吗,先说我吃的那次亏
我让它调整后台某个列表页的显示字段。
它读完文件后判断,另一个文件里有一份「功能相同」的实现,就一起改了。
问题在于,两份实现看着像,用的却是不同的查询条件。一个按状态过滤,一个按时间过滤。
我去看 diff 的时候只扫了第一个文件,第二个文件在折叠区域里,我划过去了。出事的地方,从来不在你盯着的那一屏。
坑一:它把「看着像」当成「是一样」
AI 判断重复靠的是结构相似,不是业务语义。
两段代码长得像,但服务于不同场景,这在真实项目里非常常见。
它删掉其中一个,编译不报错,测试也未必覆盖得到。
怎么避:改动前先问它「你动了哪几个文件,每个文件为什么动」。它答不上来的文件,就是要重点看的地方。
坑二:diff 太长,人会自动跳过
一次改动涉及七八个文件、几百行 diff 的时候,人的注意力会失效。
这不是能力问题,是生理问题。看到第三屏你就会开始点头。
怎么避:把一次 AI 改动拆小。一次只让它改一个文件、一件事,diff 控制在你能逐行读完的范围内。
坑三:没有回归测试,改坏了也没人拦
我那个项目当时没有自动化测试,全靠手点。
手点的覆盖范围,等于你记得住的功能范围。
怎么避:至少给「收钱相关」和「数据写入相关」的路径补上最小测试集。不用多,能拦住主要故障就行。
止损清单
已经改坏了,按这个顺序处理:
1. 先看版本控制的 diff 全貌,别只看 AI 给你的摘要。
2. 找到所有被改动但你没要求的文件。
3. 逐个确认:这是有意为之,还是顺手改的。
4. 恢复不该动的部分,只保留你要的改动。
5. 把这次「越界」的文件路径记下来,下次改动前先看这几处。
止损的第一原则是缩小范围,不是马上修。
怎么让它不敢乱改
三个动作,成本很低:
- 明确告诉它「只允许修改 X 文件,其他文件只读」。
- 让它先输出改动计划,你确认后再动手。
- 每次改动后要求它列出完整文件清单,而不是文字总结。
我现在基本都这么干。麻烦一点,但比事后找回一个被删掉的筛选条件便宜。
一个人加五个 AI 员工的配置下,AI 的产能是真的,AI 的手也真的会长——约束不是不信任,是省自己的时间。
常见问题
Q:AI 写代码会偷偷改坏别的地方吗?
A:会。它经常把结构相似但业务语义不同的代码当成重复项一起改,编译不一定报错,所以不容易当场发现。
Q:怎么防止 AI 改到不该改的文件?
A:改动前明确限定可写文件范围,要求它先给改动计划再动手,改完必须列出完整文件清单让你逐个核对。
Q:AI 改坏了代码怎么快速回滚?
A:靠版本控制。看完整 diff 找出所有被动过的文件,把非必要的改动恢复,只保留你真正要的那部分。
相关阅读
- AI 写业务逻辑为什么总漏,我找到 3 个原因
- AI 写代码的边界在哪,3 个信号说明它在猜
- AI 写的代码能直接上线吗,我过 5 道关
- AI 写的代码没人看得懂,接手前先做 3 件事
- AI 编程适合新手还是老手,看这两个场景
本文作者西米,37 岁程序员,一个人加五个 AI 员工在跑一家公司。踩过的坑和真实账本都写在公众号「西米分享」。
完整代码、踩坑清单与最新进展,都在公众号。
📱 关注公众号「西米分享」