【译】🤖 AI 编程陷阱:Vibe 代码就是遗留代码

116 阅读6分钟

🕐发表时间:周三 // 2025年7月30日
👤原作者:Steve Krouse
🔃原文链接Vibe code is legacy code

尽管存在广泛的误解,但 Andrej Karpathy 创造的"vibe coding"(氛围编程)是一种 AI 辅助编程方式,简单说就是让 AI 帮你写代码,而你完全不用管代码是怎么写的

遗留代码

我们早就有一个词来形容那些谁都看不懂的代码:遗留代码

遗留代码被大家讨厌,这是有原因的。但等等,你不是有代码吗?难道不能从代码里理解吗?

大错特错!没人理解的代码就是技术债务。理解陌生代码要花很多时间,更别提在不搞出 bug 的情况下加新功能了。

编程本质上是在构建解决问题的思路,而不是生产一堆代码行。我们都知道这个道理。这就是为什么我们总是嘲笑那些想用代码行数来衡量开发者工作效率的商业人士。

当你搞 vibe coding 时,你正在以 LLM 吐代码的速度疯狂累积技术债务。这就是为什么 vibe coding 对原型和一次性项目来说超级完美:只有当你需要维护它时,它才会变成遗留代码!

画外音:这就像用信用卡买奶茶,喝的时候爽到飞起,但月底账单来了就傻眼了 😅 技术债务就像信用卡账单,迟早要还的!

原型和一次性代码

我很乐意用 vibe coding 来构建这些应用:

我不需要继续开发这些应用,所以我不理解它们的代码完全没问题。这些应用都很小,这意味着如果哪天我需要跳进去看代码,我也没有累积太多债务。我能够比手动写代码更快地 vibe code 这些应用,而且玩得很开心。

Vibe coding 是一个连续体

Vibe coding 其实是一个理解程度的范围。你理解得越多,你就越少在"迷迷糊糊"的状态中。

image.png

简单来说,当你作为工程师,知道要构建一个带数据库的 Web 应用时,你就已经比那些连 Web 应用和手机 App 都分不清、也不知道数据怎么保存的非程序员要"清醒"得多了。

给小孩信用卡

最糟糕的情况是让非程序员 vibe code 一个他们打算维护的大型项目。这相当于在解释债务概念之前就给小孩信用卡。

正如你可以想象的,第一阶段是狂喜的。我可以在商店里挥舞这张小塑料片,想要什么就拿什么!

这很像 AI 现在可以构建任何东西!没人需要学习如何编码!看看它刚刚为我做了什么!

但如果你等一个月,你就会收到信用卡账单。我真的需要买所有这些东西吗?我怎样才能从这个坑里爬出来?

对于 vibe coder 来说也是如此。我的代码坏了。所有这些文件和文件夹到底是做什么的?我怎样才能修复它?我能为 vibe coding 花费的 400 美元获得退款吗?

如果你不理解代码,你唯一的办法就是让 AI 修复它,这就像用另一张信用卡还信用卡债务。

画外音:这就像用花呗还借呗,用白条还花呗,最后发现自己陷入了一个无限循环的债务漩涡 💸 技术债务的雪球效应,越滚越大!

2025年的严肃编程与 AI

如果你正在构建一些严肃的东西,并且打算在 2025 年维护它,Andrej 说得对:

保持对这个新来的、过度热心的"天才实习生"的严格控制。他虽然懂得很多软件知识,但经常胡说八道,自信心爆棚,对什么是好代码完全没有感觉。要记住:慢慢来、多留个心眼、小心谨慎、甚至有点偏执,并且要抓住每个能学习的机会,而不是把问题都甩给别人。

— Andrej Karpathy, twitter

我们如何为 AI 构建

在 Val Town,我们用各种方式把 AI 融入到产品中。Townie 就是我们的 AI 小助手,它超级能干:自动读代码、写代码、运行程序、看日志,然后不断改进直到把事情搞定。

Townie 绝对是 vibe coding 的神器!我强烈推荐给那些知道怎么用 AI 的人。有时候我会让它帮我 vibe code,玩得很嗨;有时候我会严格控制它,让它对我关心的项目做精确的修改。两种方式都很有意思,也很有用。

AI 编程发展得太快了,我们根本不知道明天会发生什么,但我相信理解问题本质的能力永远都是构建复杂软件的核心。我们的技术功底依然重要!而且我对 AI 会继续用各种意想不到的方式让编程变得更好充满信心。

画外音:就像当年智能手机刚出来时,有人说"手机就是用来打电话发短信的",现在看看我们用它做什么 🤳 技术发展总是超出我们的想象!

但如果你知道任何非程序员今天花费数千美元 vibe coding 他们的十亿美元应用想法,请把这篇帖子发给他们。Vibe coding 不会让他们到达他们想去的地方。他们将不得不学会用人类的双眼阅读代码 😱,并学会有时从头开始构建一个写得好的代码库比修复一个没人理解的遗留代码更容易。

画外音:记住,AI 是工具,不是魔法棒 🪄 真正的魔法在于理解代码背后的逻辑和原理!


这篇文章是我上个月演讲《人脑在编程中的作用》的提炼。感谢我的未婚妻 Emily 几个月来听我抱怨这些话题,并拍摄了我的演讲。感谢 Malte 和 Rippling 主办这次演讲。

感谢 Geoffrey Litt、Jimmy Koppel、Max McDonnell、Tom MacWright、Charmaine Lee、Brent Jackson 和 Dan Shipper 对这篇文章的反馈。感谢 Simon Willison 和 Andrej Karpathy 在 AI 炒作和反对声中保持理性。


💡 总结一下:Vibe coding 适合原型和一次性项目,但对于需要长期维护的严肃项目,还是得靠真才实学。AI 是助手,不是替身,编程的核心仍然是理解与思考!