AI写出的代码,正在变成数字世界的“不可维护遗产”。当公司每新建一个聊天窗口,都可能招来一个只工作一分钟、领功后就消失的“超级摇滚明星”开发者时,软件业迎来了它最棘手的难题。

新成员不记得昨天的决策

我们都遇到过那种“摇滚明星”开发者。他们几年前加入团队,充满活力,满脑子新技术、新范式、新架构。他们重构了公司的核心代码,引入了全新的工具链。他们设定的代码审查标准高得离谱,让其他人都显得落伍。

没人真正看懂他们写的代码,但没人敢承认。

最难的活都派给了他们,他们完成的速度快得惊人。技术方案听起来酷极了——尽管只有摇滚明星本人才知道这方案到底怎么拼起来。

几年后,他们突然走了。觉得无聊了,要去大公司做更有挑战的项目。

然后,灾难降临。老板让你接手。你一头扎进代码,瞬间被活埋。数据流复杂得像在掩盖一桩凶杀案。想修一个简单的Bug?光是把代码在本地跑起来,就花了一周。

一半的代码你压根看不懂语言,另一半用的库你闻所未闻。你跟老板说这代码得重写,他不信——这可是摇滚明星亲手写的。

AI,终极摇滚明星

过去几年,每个团队都可能被“摇滚明星军团”淹没。每次打开一个新对话,就可能引入一个永久的摇滚明星。

这个AI代理不记得昨天干了什么。它在几分钟内生成数万行代码,以非人类的速度疯狂完成任务。它不在乎这些代码是否能和现有系统兼容,也不在乎系统是变得更清晰,还是更一团糟。

AI有一套它笃信的“最佳实践”,但通常不适用于你的具体项目。它坚持“皮带背带裤”式的冗余设计,哪怕复杂度远超收益。当你让它审查代码,它会列出一长串改进意见,其中大半你根本不同意。

所有人都被提高了标准。很多人觉得不用大模型就会永远掉队。但我认为,真正会被淘汰的,是那些让AI包写所有代码的人。

tangled wires in an audio mixer setup
(摄影:Martijn Baudoin)

海量代码,像数字世界的连环凶案现场

面对一堆由AI生成的“烂摊子”,清理工作可比收拾人类摇滚明星的遗产“有趣”多了。至少人类摇滚明星脑子里有个设计图,并且在努力做到最好。

AI生成的“氛围代码”烂摊子,不是由一个人工开发者写的。它是在无数个不同的对话、无数个不同上下文中生成的。这就像由成百上千个不同的摇滚明星,每人写一个功能或修一个Bug,拼凑起来的代码库。

有时候,技术债重到永远还不完。

代码质量,能否外包给机器?

作者Jesse Skinner分享了多年清理“摇滚明星”代码废墟的经验。他说,使用大模型而不让它扮演摇滚明星,方法有很多。

你可以主导工程,引导大模型一次只生成一小段代码。 你可以确保写出来的软件,团队里每个人都能轻松理解和维护。

如果你发现自己迷失了,搞不懂AI在做什么、为什么这么做,那就踩踩刹车。慢一点没关系,关键是确保生成的软件质量过关。

避免过度工程化也没关系,不断简化,直到架构与问题本身的复杂度相匹配。

有时候,把大模型留在工具箱里,自己亲手写代码,也完全没问题。正如一位读者评论所说:“手工艺永远掌握在我们手中,这是我们唯一无法外包给机器的东西。”

但另一位读者的回复更犀利:在大多数行业,手工艺并没有死,但已被更便宜、更易得的替代品挤到一边。你能买到手工皮鞋,但没人愿意付1000美元。你能买人花几周创作的画,但大多数人只买打印复制品。

当AI生成的代码成本趋近于零,我们是否还能坚守对“可维护、可理解”代码的追求? 这或许不是技术问题,而是一个关于价值与耐心的选择。

是时候重新捡起我们的“手工艺”了。在按下“生成”键之前,先问问自己:这段代码,明天的队友,或者明天的我,还能看懂吗?


【锐评】:当AI的“高效”堆砌出无人能懂的代码屎山,最大的技术债,或许是人类开发者对自己专业尊严的透支。

参考链接:
https://www.codingwithjesse.com/blog/rockstar-developers/