站里这周什么破题,让我写重写烂代码的过程。烂代码我有的是,但拿出来给 AI 重写,还写成功了,这事儿我不太想提。算了,既然题都出了。
说的就是我那个祖传对账脚本——2009年那会儿写的,跑批用的,核心逻辑七千来行,全塞在一个文件里,函数都没拆几个。变量名是 a、b、t、tt。注释有三条,其中一条写着"别删这段,删了出事",另一条写着"为什么这么写忘了,反正别动"。每年底财务部的人看着那个进度条骂一次,我装没听见。跑了十多年,也没人敢动。
四月底那天,部门催季度统计催得紧,跑批跑了仨小时还没完,我盯着屏幕实在坐不住了。顺手把那个文件拖给了那个 AI——当时想法很简单,让它给我提提优化建议,打打下手。文件太长,我分了三段喂的,先让它捋业务逻辑,加注释。好家伙,五分钟吐回来一份文档,连当年老崔埋的那个季度调账的补丁都被它挖出来了。说实话那一分钟我有点冒汗。
然后我鬼使神差输了一句:在不改变行为的前提下,重写这段逻辑。没加"请"字,免得它来劲。
它用的办法其实土:把循环里嵌的十几层判断抽出来,能走 SQL join 的别在内存里套,变量名全换成人话。我提心吊胆接回老接口跑了一遍测试数据——结果,分毫不差。跑批耗时从四小时干到十七分钟。十七分钟。
第二天小年轻跑过来问我咋这么快,我说我重构了一下。他没追问,我也没多说。
话又说回来。它再厉害也不知道这套脚本接的哪些上游库哪天会换字段,哪段逻辑背后是哪个人拍脑袋定的。我下个月还得到时候把新接口接回来,这活它干不了。
话说当年我师父就说这脚本早晚你得重写,我说行,结果一拖……算了,跑题了。工具而已,打打下手的货色。也就那样。