AI 编程与智能体

如何正确进行 Vibe Coding:代码究竟该读到什么程度?

不阅读 AI 生成的代码,只按 Accept All 来开发,就是如今所说的“Vibe Coding”。它的启动速度惊人,很多人认为一旦尝试就很难回头;但最好提前了解,不读代码的代价会在哪里、以什么方式出现。

5 分钟阅读
如何正确进行 Vibe Coding:代码究竟该读到什么程度? 封面图

不阅读 AI 生成的代码,只按 Accept All 来开发,就是如今所说的“Vibe Coding”。它的启动速度惊人,很多人认为一旦尝试就很难回头;但最好提前了解,不读代码的代价会在哪里、以什么方式出现。

本文将依次整理 Vibe Coding 的准确定义和优点、不读代码实际会导致的三个问题,以及无需全部读完也能减少事故的三个解决方案。

先看结论。

Vibe Coding 能让启动速度提升 10 倍,但如果不读代码,最终就会以维护成本的形式吐回这份速度优势。

如果是原型或自己使用的工具,非常值得一试。但如果要向他人提供服务,或长期维护代码,情况就不同了。下面逐一说明原因。

Vibe Coding 究竟是什么?

先说说这个术语。“Vibe Coding”一词源自 Andrey Karpathy 于 2025 年 2 月发布在 Twitter 上的一条帖子。

核心很简单:用自然语言告诉 AI 你想要什么,由 AI 编写代码,而人不仔细阅读这些代码。

Karpathy 本人也说过:“我总是按 Accept All,不再阅读 diff。”发生错误时,他会原样复制错误消息,再发给 AI。

顺带一提,Collins Dictionary 还将这个词选为 2025 年的“年度词汇”。

Vibe Coding 的本质与其说是“AI 编程”,不如说是“不读代码”。即使使用 AI,只要阅读了全部 diff,那也只是 AI 辅助开发,而不是 Vibe Coding。


优点非常明确

Vibe Coding 之所以流行,是有原因的。

第一,启动速度。 过去需要几天的项目初始配置,现在可以缩短到几十分钟。直到屏幕上出现内容所需的时间会显著缩短。

第二,弥补薄弱领域。 例如后端开发者用语言描述 CSS 布局并让 AI 生成,进入不熟悉领域的门槛会大幅降低。

第三,心理障碍。 “先做出来再说”的想法变强,于是你会真正开始尝试一直拖延的点子。

问题在于,这种满足感通常只会维持到项目初期、代码规模还很小时。


不读代码,究竟会发生什么

当代码库增长到一定规模后,通常会出现三个问题。

1. 你会无法修复 bug。 出错后直接交给 AI 的做法,会在 AI 无法修复的那一刻一起卡住。因为从未读过代码,你甚至无法判断问题在哪里。

2. 同一功能会出现在多个地方。 AI 经常记不住之前写过的代码,于是不断创建相似函数。之后修复一个,其他的仍然原样保留。

3. 会出现隐蔽的安全漏洞。 典型例子是 API 密钥直接写进客户端代码。AI 只会照着指令执行,而人又不检查。

第三点最可怕。比如下面这样的代码。

// AIAI 编写的代码 — 密钥暴露在客户端
let apiKey = "sk-live-abc123"  // 直接包含在应用二进制文件中
let url = URL(string: "https://api.example.com?key=\(apiKey)")!
URLSession.shared.dataTask(with: url).resume()

这种代码一旦发布,任何人都能看到密钥。不读 diff,就会漏掉这类问题。


那该怎么办?三个解决方案

好在不必回到“全部都读”的做法,也有办法大幅减少事故。

解决方案 1:亲自阅读三个致命区域。 即使无法全部阅读,也要确定并检查那些一旦出事故就很难挽回的部分。

// 至少亲自确认这三项
// 1) 身份验证和密钥相关代码
// 2) 支付和资金相关逻辑
// 3) 删除或修改用户数据的部分

只关注这三项,就能显著降低发生重大事故的概率。

解决方案 2:阅读 AI 的摘要,而不是代码。 如果不想读代码,至少再要求一次:“只总结刚才写的代码中与安全、资金和数据删除相关的风险”,然后阅读这份摘要。不要在编写代码的会话中,而要在新会话中,最好交给另一个 AI 审查,这样也能减少为自己编写的代码辩护的偏见。

解决方案 3:如果人不读,就让机器读。 在 pre-commit hook 中加入 gitleaks 之类的机密扫描器,就能在提交阶段自动发现上述 API 密钥泄露。将 linter 和测试加入 CI 也是同样的原理。

三个解决方案的共同点是:降低阅读成本,但不要让验证归零。


所以,Vibe Coding 到底该不该用?

结论是:“视情况而定。”

情况 推荐程度 原因
原型/演示 强烈推荐 快速完成,需要时丢弃
自己使用的工具 推荐 出了问题也只有自己受影响
个人项目 有条件推荐 阅读核心逻辑
生产服务/团队协作 不推荐 维护成本会吞噬速度优势

关键区别在于:是完全不读代码,还是只读重要部分。

最后,我选择只阅读重要的代码
最后,我选择只阅读重要的代码

问:初学者也可以通过 Vibe Coding 学习开发吗? 答:它很适合体验创造的乐趣。但如果完全不读代码,能力不会有太大提升。完成后可以问 AI:“你为什么要这样写这段代码?”并养成阅读代码的习惯。

问:AI 写的代码,到底可以相信到什么程度? 答:能运行和安全是两回事。可以相信 AI 让代码运行起来,但是否安全且可维护,必须由人或独立的验证机制来确认。


总结来说,就是“速度交给 AI,判断留给自己”。不必全部读完,但如果完全不读,迟早要付出代价。只要把上面三个解决方案中的一个加入今天的项目,就能大幅降低这份代价。

再进一步,还有一种叫作规范驱动开发(SDD)的方法论:在让 AI 编写代码之前,先用文档确定需求。这是与 Vibe Coding 相反的做法,下一篇文章会详细介绍。

参考资料

延伸阅读