你有没有过这种体验:一个项目,前三天用 AI 写得飞快,什么都能跑。 到第二周,你开始怕改东西了。 到第三周,你打开代码,已经看不懂了。
功能都在。测试都过。但你知道这个东西已经烂了。你说不清从哪一步开始烂的。
我们工程师前两天在群里发了句话:"我的妈,现在的前端也太丑陋了,一个思维链有 4 个渲染入口 + 5 个状态容器来管理。补丁大王。"4 个渲染入口。一个思维链组件而已。
后来我去翻了一下这个组件的 git log,想看看它是怎么变成这样的。 第一版其实很干净。一个入口,一个状态。 然后第二天加了流式渲染的需求,AI 没有改原来的结构,加了一个新入口。 第三天要做折叠展开,又加了两个状态容器。 第四天出了一个渲染时序的 bug,AI 的修法是再加一个入口来兜底。 每一步都"对"。每一步的 diff 看起来都很合理。 但四天下来,一个简单的组件变成了考古现场。
如果是人写的,大概在第二天就会说"等一下,这个结构不对,我重新想一下"。人会因为嫌烦而停下来。AI 不会。对它来说,在现有的东西上加一层和推翻重来,成本是一样的,都是几百个 token。它永远选加一层。因为加一层能最快让当前这个 bug 消失。它在局部永远是对的,但全局在一天天腐烂。
我跟几个用 Claude Code 的朋友聊过,大家的描述惊人地一致:前期爽得飞起,中期开始怕动,后期要么重写要么忍。 说白了 AI 现在最大的问题不是写不好代码。是它完全没有"不想维护这坨东西"的感觉。
人类工程师最珍贵的直觉就是这个:代码写到某个点,你的身体会告诉你"不行了,再这样下去我会疯"。然后你停下来重构。 AI 没有这个阈值。它可以无限地在一坨屎上继续叠。叠到第一百层,它的热情跟第一层一样高。
Bryan Cantrill 最近写了篇东西叫 The Peril of Laziness Lost。他说编程最被低估的美德是懒。人的有限精力逼出了简洁。AI 生成没有成本,所以它永远不懒。它只会把系统变大,不会变好。 YC 的 Garry Tan 炫耀一天写了三万七千行代码。有人去扒了产出:重复的 test harness、Hello World Rails 应用、八个 logo 变体其中一个零字节。DTrace 整个项目六万行。
我们踩完这些坑之后更明确了一件事:不能让 AI 自己决定代码结构。不是写完了让人 review 更严格。那本质上还是在 AI 的补丁上打补丁。
是在它动手之前就把边界卡死。什么该存在、什么不该、结构长什么样,人先想好。 AI 只管在框架里填。问它"怎么实现"可以,问它"要不要做"不行。
最难的不是让 AI 写得更好。是在它兴高采烈递给你第四层补丁的时候,你能说"停,推翻,重来"。
评论
发表评论