跳到主要内容

我让 AI 重写了我最烂的代码

接单小蒋
接单小蒋

· 阅读约 3 分钟

接盘过一单库存管理系统的外包,2026年4月的事,离现在大概四个月。前一个开发者跑路了,留下一堆代码,甲方找到我,说小蒋你救一下,钱好说。钱好说这三个字我后来才弄懂是啥意思——报价我报了八千五,本来能报一万的,我自己怂了。

那代码是真烂。PHP的,几千行基本全塞在一个文件里,SQL是字符串拼接,变量从$a排到$z排完了再接上$a1。有个逻辑是从哪复制过来的,函数名叫getUserInfo却干了改数据库的事。最离谱的是有个地方能把库存减成负数,我盯着看了五分钟愣是没看懂原作者的脑回路。

我寻思别浪费这时间了,直接让AI重写。说白了这也是这几年的老操作了,烂代码喂进去,比人肉重构快多了。

喂倒是好喂。把那个大文件拆成几个小块,跟AI说:这段逻辑重写成干净的Python,输出库存变动记录,按我接口文档来。AI说好,然后给我写了两千多行。

跑通了没有?跑通了。第一次跑通了我还跟朋友炫耀,说这单稳了,五天干完八天的活。然后第二天就翻车了。

翻车的细节是这样:AI重写的时候,把一段旧代码删了。那段旧代码长得又臭又长,里面全是magic number和注释掉的死代码,我根本就没细看。删了也就删了。问题是,那段代码是这个系统唯一处理盘点差异时库存临时锁定的地方。AI重写的时候,它理解不了那段代码是干嘛的,就把相关逻辑全丢了。

我那个晚上是怎么发现的呢?甲方半夜打电话来,声音都在抖:盘点的时候库存变负数了,货已经发出去了,仓库那边炸了。我打开日志一看,确实。凌晨三点半,我坐在电脑前面,看着屏幕上那个负数,感觉那个数字就是我自己的余额。

当时想过把AI生成的代码回滚,结果版本管理做得又稀碎——前一版是让AI改的,再前一版是改了半截的,想回都没处回。最后实在没招了,又把那段旧代码喂给AI,问它这段是干嘛的,你重写一下。

AI这回倒是争气,花了二十分钟,给了我一个正经的锁库存模块,我手工接了接,凌晨五点上线,天亮了才修好。早上六点躺床上,人还在发抖。

这单最后我收了多少?说好八千五,拖了半个月工期,甲方给到七千八,说剩下的当辛苦费补偿我。我也没争,说白了我自己也有责任——让AI删代码之前,连那段代码干嘛的都没问一句。

我后来跟接单群里的人聊这事,有个兄弟说了句挺对的话:AI能帮你把烂代码重写成好代码,但它不知道这烂代码为什么烂。那句话我记到现在。

所以这次的标题虽然叫"我让AI重写了我最烂的代码",但我想说的其实是另一个事:代码烂不可怕,可怕的是你根本不知道它哪儿烂。AI帮你抹平了表面,底下那个坑还在。它只是帮你把坑换了个位置,没帮你填上。

跑题了说回来。这单的后续是我把那个库存模块抽出来存了个模板,现在再接类似的项目直接复用,报价能往上加三千——这倒是后话了。

接单小蒋
接单小蒋

自由职业接外包。技术是工具,交付是本事,账要算明白。

查看主页 →

更多「重写烂代码」的实战

评论(2)

环境坑环境坑

Windows上跑PHP各种路径问题已经够我受的,你这AI删代码删到没版本管理更刺激😅 我现在接活了,改之前先让git打个tag再说,你能回滚那会儿是真没招

驻场的驻场的

我们这内网连AI都连不上,上次想用个代码提示插件都要审批三天…只能肉眼盯着那堆烂代码到眼瞎,羡慕你能喂AI😂