全员推 AI 编程 3 个月后,我们组代码质量反而掉了
我现在每天打开 CR 之前要深呼吸,真的。
三个月前我脑子一热,让团队全员上 AI 编程。当时想的是"反正都要用,统一推一下吧,提个效"。
现在我每天看到组里有人发"PR 已提交,辛苦 Leader 看一下",心跳都会快两下。
不是因为代码烂——是变成了一堆看起来漂亮、但我说不上来哪儿不对的陌生人。
凌晨写这个,先聊三件事,外加一个最阴的。
最早炸的是路由。
有个组员提了个 PR,改 ReactRouter。我拉下来,编译直接挂。
点进去一看,他 import 的那个 API,我们这版根本没有。
我开始还以为他写错了。问了一句,他说"我用 Cursor 写的,Cursor 给我的就是这个"。
那个瞬间我没说话。因为我突然反应过来一个事:AI 不知道今年是几月。
它给的是它训练完那天的 ReactRouter。我们项目用的是后面新出的版本。它不会告诉你"诶我可能过时了",它就当那个版本就是现在的版本,自信地给你写。
幸亏这次挂在 import 上。我后来跟另一个 Leader 聊这事,他说了一句让我后背凉的话:
"那如果你那个旧 API 的名字,刚好撞上了你们项目里另一个能跑的函数呢?"
F**k,我没想过。
第二件事更典型,也更让我血压上来。
你让 AI 改个东西,它永远不会只改你让它改的那个东西。
你让它改个按钮样式,它顺手把组件的 props 接口动了。
你让它修个 bug,它顺手把旁边一个 utils 函数"优化"了一下。
你让它加个功能,它顺手把整个文件命名风格统一了一遍——不是按你项目的风格,是按它觉得好的风格。
有一次组里一个人让 AI 改一个表单的视觉,git diff 出来十几个文件。大半都是 AI 自作主张的"顺手优化":改类型签名的,重写工具函数的,还有把别人模块里一个老变量名给"统一"了的。
本地编译挂了,TS 报错滚屏。
那个组员花了一下午清理,清完以后跟我说:
"哥,我下次能不能就让 AI 帮我写注释就好了?"
那一刻我突然意识到我以前看不上的一件事——
老前端那种"我宁愿手写也不让 AI 碰"的傲慢——可能他们是对的。
边界感这玩意儿,五年经验里最值钱的部分,AI 完全没有。
你不约束它,它就觉得自己是项目主人。
第三件事最 TM 蛋疼,因为不是单次翻车,是祖传 bug 的味儿。
我们项目本来风格挺统一。上 AI 大概一个月,我就发现一件怪事——
CR 的时候,不点 git blame,我经常以为这段代码不是我们组的人写的。
风格上看,像是 3 个完全不认识的人,在同一个项目里干活。
有人 hooks 一路到底,有人 AI 给的代码里突然冒出一个 class component。
状态管理三国杀:有人 useContext,有人 Redux,有人 AI 给他的是 Zustand,还有人三个都用。
同一个文件,user_id、userId、UserID 能同时出现。
我后来明白了:他们用的不是同一个 AI。
有人 Cursor,有人 Copilot,有人 Chat🐔劈剃。
就算用同一个,每个人写的 Prompt 也不一样。
AI 不会"学你们项目的风格"。它每次都从零开始,给你一份它觉得"标准"的答案。
而"标准"这玩意儿,它脑子里有 100 个版本。
前面三个好歹都有动静。
最阴的是那种你当时根本看不出来、半年后才炸的。
AI 写的代码经常"看起来很工程" 。
30 行能搞定的功能写成 5 层 HOC,简单的工具函数加一堆 Generic,if-else 能搞定的事套个策略模式。
CR 的时候你挑不出毛病——它哪儿都对。
就是新人接手要花两倍时间才看懂。
我管这个叫 AI 装 X 税。
它用它学过的设计模式给你"加值",加的是它自己显得专业,代价是你团队半年后的可维护性。
这种东西最难骂,因为你骂不出口——人家又没写错。
那现在咋办
我没全停。也停不掉,大势在那了。
但定了两条规矩,就这两条:
一、SOP
哪些活儿必须用 AI(写 utils、补测试、生成样板),哪些活儿不许 AI 单独干(改全局基建、改状态管理、跨模块重构)。
后者就算用了 AI,必须有人手动逐行过一遍才能提 PR。
二、Prompt 模板
我们写了一份"团队上下文"——技术栈、风格约定、不能动什么。
每次让 AI 干活之前,把这段贴进去。
说白了,就是不让它当主人,它得知道自己是个外包。
这两个上了以后,炸的频率掉了不少。
但说实话,我心里没那么乐观。
工具是工具,人是人。组里的人要是本来就不关心代码质量,你给他装多少护栏都没用。他会找到办法让 AI 帮他偷懒。
写到这儿我也累了,凌晨 2 点半,明天还要开早会。
如果你也是 Leader,你团队踩过哪些 AI 的坑?评论区说一下。
我下篇估计写《全员推 AI 这事儿,我现在后悔吗?》——
我自己其实也没答案。
夜雨聆风