翰廷文化 Ai开启未来

AI写的代码,正在变成没人敢碰的祖传遗产

效率涨了3倍,事故也涨了3倍。你以为省下的是工时,其实是把债推给了明年。

返回列表

AI写的代码,正在变成没人敢碰的祖传遗产

凌晨1点47分,告警群又炸了。

支付回调接口超时率飙到17%,从晚上11点开始零星报错,到这会儿已经拖垮了两个下游服务。运维把链路图甩进群里,红色的节点最后停在了一个叫 handleCallbackAsync 的函数上。

这函数是谁写的?没人说话。

翻了提交记录,三个月前,作者是「cursor-agent」。提交信息写着:refactor callback logic for better performance。142行,一次提交,当时review通过只花了6分钟。

现在这142行里,藏着一个递归调用和一个没设超时的Promise.all。平时跑得好好的,流量一上来就雪崩。

修了四个小时。天亮的时候,那个团队的技术负责人在群里发了一句:“以后AI生成的代码,谁提交谁负责,review少于30分钟的我直接打回。”

没人接话。因为大家都清楚,这话说了等于没说。

效率这杯酒,后劲在后半夜

去年8月,我认识的一个杭州电商团队,7个后端,集体上了Cursor企业版。一个人一个月40刀,老板掏钱的时候挺爽快,换算下来一个人才两百多块,比招个实习生便宜多了。

第一个月数据确实漂亮。PR数量从平均每周31个涨到74个,涨幅差不多2.4倍。CTO在周会上放了张折线图,说这就是AI红利。

但有个数字没人放上去。

代码回滚率。

上AI之前,他们生产环境的紧急回滚大概是一个季度4到6次。上AI之后,第一个季度回滚了11次,第二个季度14次。到今年3月,光是支付和订单两个模块就回滚了9次。

你算算这个账:一个P0级线上事故,从发现到修复到复盘,平均消耗团队18到24个工时。按他们那个级别的人力成本,一次事故大概烧掉6000到8000块。一个季度多出来的8次回滚,差不多就是五六万。

一年40刀的订阅费省下来的那点钱,一次事故就全吐回去了,还得倒贴。

更麻烦的是,你根本不知道债在哪儿。AI生成的代码有个特点——它看起来特别合理。命名规范,注释齐全,错误处理也有,甚至还会给你加个try-catch。问题是它不理解你的业务边界。它不知道这个回调接口在双十一期间QPS会涨40倍,不知道那个第三方支付网关在凌晨2点到4点会做批量对账、响应时间会从80毫秒跳到3秒。

它写的代码在测试环境永远是绿的。

最惨的是那群刚入行的

上个月跟一个做SaaS的朋友吃饭,他说他们今年校招只招了3个后端,去年是11个。

“不是不想招,是招进来没活儿干。”他原话是这么说的,“简单的CRUD,AI三分钟写完,还比你写得规范。复杂的东西,新人又接不住。”

结果就是,团队里那5个干了五年以上的老家伙,现在的工作变成了给AI擦屁股。白天review AI生成的代码,晚上修AI埋的坑。写代码的时间反而少了,读代码的时间翻了一倍不止。

有个老哥跟我吐槽,说他现在看AI写的代码,就像看一个特别勤奋但完全不懂业务的实习生交上来的东西。你说他写得不对吧,语法没毛病。你说他对吧,他把你上周刚改过的限流逻辑又给重构没了。

“以前带新人,三个月能上手。现在带AI,三个月能学会怎么给它写prompt,但永远学不会它什么时候会捅娄子。”

没人敢动的那部分代码

最魔幻的不是事故本身。

是事故之后。

那个支付回调函数修好之后,团队里没人敢做大的重构了。因为那142行里,有60多行没人能完整解释清楚为什么要那么写——包括当时那个用AI生成它的程序员。他只记得自己输入了一句“优化回调性能”,剩下的都是AI自己发挥的。

于是这段代码就被供起来了。加个字段可以,改个判断条件可以,但谁要动那个递归结构,所有人都会说“再等等吧,先别动”。

这不就是祖传代码吗?只不过以前祖传代码是十年前离职的老员工留下的,现在祖传代码是三个月前你自己用AI生成的。

你甚至找不到人去问。

省下来的时间,去哪儿了

老板们算的账永远很简单:以前写一个功能要3天,现在AI辅助1天写完,效率提升200%。

但真实的情况是,那省下来的2天,变成了后面无数个半夜爬起来修bug的2小时。变成了技术负责人review时越来越长的沉默。变成了新人看着满屏AI生成的代码、完全找不到学习路径的迷茫。

有个数据我觉得挺有意思。GitClear去年发过一份报告,说2023年之后,代码库里的“复制粘贴式重复代码”比例上升了48%,而“重构型代码变更”比例下降到了历史最低点。

翻译一下就是:大家都在用AI快速堆功能,没人有精力去整理地基了。

这玩意儿跟信用卡一样。刷的时候爽,账单来的时候你就知道利息有多高了。

那天凌晨修完bug之后,那个技术负责人做了一件事。他把团队里所有AI生成的、超过100行的函数全列了出来,一共37个。

然后他挑了两个,自己从头重写了一遍。

剩下的35个,还挂在那儿。

注释栏里写着同一句话:TODO。

评论 0

留下你的看法