凌晨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
留下你的看法