AI时代,读代码比写代码更重要

今年有三家初创公司发布了生产环境的应用。

没有一位创始人能够完全解释登录系统的工作原理。不是因为他们是不称职的开发者。

因为他们使用 vibe coding:描述他们想要什么,接受 AI 给出的代码,然后继续前进。

其中两个应用已经发生了用户数据泄露。

第三个应用也存在问题,一次像样的安全审查不到二十分钟就能发现。

三位创始人,三家不同的公司,同一个根本原因。

1、到底什么是 vibe coding?

如果你从未听说过这个术语,以下是它的由来。

2025年2月,Andrej Karpathy 描述了一种构建软件的新方式。你用简单的英语描述你想要的东西。AI 编写代码。你不需要逐行阅读。如果出了问题,你只需再次描述问题,让 AI 来修复。

他称之为"完全臣服于感觉(vibes)"。这个名称就这样流传开了。

想象一下,通过短信订购一栋定制房屋。你描述你想要的房间。施工队一夜之间就建好了。你走进去,看起来很棒,你就搬进去了。

没有人检查过电线。也没有人检查过地基是否能承受重量。它看起来是完成了,但"完成"和"安全"不是同一个词。

2、为什么每个人都开始这样做

一旦你尝试过,吸引力是显而易见的。

  • 过去需要一天的功能现在只需要一小时
  • 你不需要记住语法;你只需要描述目标
  • 过去需要一周的原型现在只需要一个下午

到2026年初,这已经成为大多数开发者的默认工作方式。绝大多数专业开发者现在每周都使用 AI 编码工具,而且大多数使用过程都遵循同样的循环:提示、生成、扫一眼、提交。

对于副项目、原型或者周末测试的小东西来说,这确实没问题。

当风险不高时,凭感觉走是一种合理的捷径。

问题始于"没什么大不了"变成了"我们的客户正在付费使用的应用"。

3、三种出问题的方式

3.1 无人可见的安全债务

当你不读代码时,你就不会发现问题所在。而 AI 生成的代码有其特有的错误模式,与人类的错误不同,因此常规工具也会遗漏它们。

安全研究人员扫描了超过一千个已经上线的 vibe-coding 应用,发现其中大多数都存在真正的安全问题。大多数应用至少有一个严重到足以被视为危急的问题,包括暴露的凭据和以明文形式暴露的个人数据。

甚至为此催生了一个新的攻击模式术语:

Slopsquatting。

AI 工具自信地建议一个实际上并不存在的包名。恶意行为者抢先注册了这个确切的名称。然后他们等待下一个 AI 助手向开发者推荐它,而开发者会毫不犹豫地安装它。

代码能运行。测试能通过。漏洞静静地潜伏在那里,直到有人发现它——而发现它的人永远不会是当初发布它的人。

3.2 理解债务

这是很少被讨论的一点,也是最危险的一点。

理解债务是指,当你的代码库持续运行,但团队中没有人能真正解释它为什么能工作时的情况。

想象一下继承了一辆汽车,每个部件都能运转,但操作手册不见了,一半的零件没有标签,而安装它们的人已经离职了。车开起来没问题。直到某天它出问题了,而到那时你必须从零开始。

当 vibe-coded 代码中出现 bug 时,本能反应是让 AI 来修复。AI 修补了症状。它也不一定理解整个架构,因为它从未在脑海中持有完整的图景;它只是按需一段一段地生成代码。

每一次修补都增加了一层无人能完全讲清楚的复杂性。代码库继续"运行"。理解它的成本却越来越高。

3.3 以复利而非加法累积的技术债务

普通的技术债务是你有意为之的捷径。你知道它在哪里。你可以指出它。

Vibe coding 的债务默认就是隐藏的。

一个文件最终使用了与应用中其他部分略有不同的认证模式。

一个辅助函数被从头重写而不是复用,因为 AI 不知道它已经存在。一个数据库查询能正常工作,但悄悄绕过了团队多年来一直遵循的约定。

这些单独来看都不会破坏任何东西。但它们会累积,并且相互作用。

**这种模式在团队中反复出现,在六到十二个月后显现:**早期的速度优势消失了,每个新功能都需要更长时间,因为代码库不再值得信任,而重构成了做任何新事情的前提条件。

等到这个问题变得可见时,清理它的成本往往已经超过了当初快速推进所节省的成本。

4、那么,真正已死的是什么?

AI 辅助编码本身没有问题。它不会消失,也不应该消失。

正在消亡的习惯比这更具体:接受你无法解释的代码。

我认为技能转变很简单,即使没有人明说。写得快曾经是让你有价值的能力。现在,读得快才是——特别是阅读 AI 生成的代码,并确切知道它喜欢在哪里隐藏错误。

这是可以学会的。不是要减少对 AI 的信任,而是要把它的输出当作一个聪明但资历尚浅的开发者的第一个 pull request 来对待。可能没问题。但仍值得看一眼。一旦涉及真实用户,"值得看一眼"就不再是可选项了。

5、实际上该怎么做

6、值得记住的一点

Vibe coding 被指责为工具问题。实际上,它是一个信任问题——而没有验证的信任,不过是穿着帽衫的希望而已。

文章开头的那三位创始人失败,并不是因为他们用 AI 写代码。他们失败是因为在某个环节,"它能工作"开始让人感觉等同于"它是安全的"。AI 并没有制造这种混淆。它只是让不注意到这一点变得更快了。

感觉从来都不是问题所在。完全凭感觉发布,而从来没有人检查过线路,这才是问题所在。


原文链接: Vibe Coding Is Dead. Most Developers Just Haven't Realized It Yet.

汇智网翻译整理,转载请标明出处