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 找出所有被动过的文件,把非必要的改动恢复,只保留你真正要的那部分。

相关阅读


本文作者西米,37 岁程序员,一个人加五个 AI 员工在跑一家公司。踩过的坑和真实账本都写在公众号「西米分享」。

完整代码、踩坑清单与最新进展,都在公众号。

📱 关注公众号「西米分享」