方法

Vibe Coding(凭感觉编程)

通过给 AI 工具下提示词来构建软件(Lovable、Cursor、Claude Code、Replit、Bolt、v0),并不加阅读地接受它生成的东西。做出演示很快,上生产很危险,因为模型优化的是能跑起来的代码,不是能扛住真实用户的代码。

最近审阅: 审阅人Christof Jori wiki ↗

Vibe coding,就是向 AI 编程工具描述你想要什么,然后把它给回来的东西直接上线,而不逐行阅读代码。这个词在 2025 年初走红,但这套工作流比这个名字更早出现:下提示词、跑一下、看到能用、再下提示词。Lovable、Cursor、Claude Code、Replit、Bolt 和 v0 这类工具,让一个非工程师能在一个下午里从想法走到可点击的 App。这一部分是真实的,对于原型、内部工具,以及验证一个想法是否值得做,它确实有用。

麻烦从一个 vibe-coded 的 App 撞上真实用户、真实金钱或真实数据的那一刻开始。LLM 优化的是满足提示词、能在演示里跑起来的代码。它不会优化提示词里没人提到的那些东西:授权检查、输入校验、密钥管理、限流、错误处理、回归测试套件。而这恰恰是把演示和可上生产的软件区分开来的东西,也恰恰是模型会漏掉的东西,除非你知道要去要求它,而一个非工程师按定义就不知道。

举个例子。一位创始人用一个周末 vibe-code 出一个 SaaS 仪表盘。它有登录、有数据库、有干净的 UI,演示起来非常漂亮。它没有的,是一个服务端检查,确保用户 A 读不到用户 B 的记录。登录能用,所以感觉很安全。但任何已登录的用户都能改一下 URL 里的 ID,读到任意其他客户的数据。从没人要求模型强制按租户授权,所以它没做,演示里也没有任何东西暴露这个缺口。这是 vibe-coded 软件里最常见的严重缺陷,而且在有人,或者某个监管机构,发现它之前,它始终是隐形的。

诚实的取舍:vibe coding 确实更快做出能跑的演示,假装不是这样就是不诚实。代价是,这份速度来自跳过了工程里那些在失败之前没有可见回报的部分。对一个用完即弃的原型来说这是好买卖,对任何存有客户数据的东西来说则是糟糕的买卖。错误不在于用这些工具。错误在于把演示当成产品,然后把它上线。AI 生成的代码本身并不比手写代码差,但它会悄无声息地累积技术债,并且每次都跳过同样的安全工作。

Wavect 的立场很简单:原型可以 vibe-code,然后在真实用户到来之前,做一遍结构化的生产就绪检查。这一遍不是凭感觉。它就是我们对任何代码都施加的同一套纪律:在重要的逻辑上做 TDD、每个端点都做授权、把密钥从客户端拿掉,以及一条在每次改动时都跑这些检查的 CI/CD 流水线。我们在 Software Quality Assurance 下做这件事。工具是好的。它们只是不知道自己漏掉了什么,而在有人读它之前,你也不知道。

// FAQ

常见问题

放对地方就不是。它是通往可用原型或内部工具最快的路,用来验证一个想法是否值得做也非常出色。它只有在演示被升级成生产、却没人读过安全关键路径时才成为问题。用它快速学习,然后在真实用户到来之前把它加固。
能,但不能原样上。生成的代码几乎总是跳过授权、输入校验、密钥管理和错误处理,因为提示词里没人要求这些。先做一遍生产就绪检查:读授权路径、校验每一个输入、把密钥从客户端拿掉、补上回归测试套件。然后它就能上线。
2026 年常见的是 Lovable、Cursor、Claude Code、Replit、Bolt 和 v0。它们在打磨程度上有差异,但共享同一个盲点:它们生成的是能跑的代码,不是能抵御恶意或粗心用户的代码。这个缺口正是一遍 QA 要堵上的。