方法

AI 生成的代码

由 LLM 编程工具写出、而非工程师敲出的代码。它本身并不更差,但它每次都跳过同样的东西,所以在真实金钱或用户接触它之前,需要一遍结构化的生产就绪检查。

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

AI 生成的代码,是由 LLM 编程工具(Copilot、Cursor、Claude Code、Lovable 等等)产出、而不是手敲出来的代码。需要先说清楚的是:它本身并不比人类代码差。在 happy path 上,它往往比一个赶工的工程师在周五傍晚六点写出来的东西更干净、更地道、注释更好。把所有 AI 生成的代码当垃圾,和把它们全当成可上生产,是同样错误的。

真正值得了解的特性是:AI 生成的代码每次以同样的方式失败。LLM 没有糟糕的一天,没有截止日期,也没有怨气。它有的是一个训练分布和一个提示词。所以缺口是系统性的,而非随机的:它会漏掉提示词没提到的授权检查,会信任提示词没标记为恶意的输入,会因为提示词描述的是成功路径而把错误处理写得很单薄。系统性的缺口是好消息,因为系统性的缺口可以用一份结构化的清单来堵上,而不必指望评审者碰巧注意到。

举个与人类 bug 的区别。一个疲惫的工程师可能会随机地在二十个端点里漏掉某一个的校验,而评审者也恰好略过了它。而你让 LLM 去构建二十个端点,它倾向于在这二十个上以同样方式处理校验,所以如果错,它就一致地错,懂这个模式的评审者一次就能抓住全部二十个。工作不是"找出那个随机错误"。工作是"确认模型做出的系统性决定,并在生产需要更多的地方推翻它"。这比追着人类那种一次性的疏忽要更快、更可靠。

诚实的取舍:AI 生成的代码把精力从写转移到了评审上,而这只有在评审真的发生时才省时间。跳过评审,你得到的就是带着更漂亮提交历史的 vibe-coded 软件。工具让写代码几乎免费,这诱使团队跳过那唯一一个从来不是瓶颈的步骤,即抓系统性缺口的那遍 TDD 与安全检查。只有当你把省下的一部分投回到那个你以为不再需要的评审上时,省下的时间才是真实的。

Wavect 把 AI 生成的代码当作初稿,在上线前需要一遍已知的、可重复的生产就绪检查,这件事在 Software Quality Assurance 下完成。因为缺口是可预测的,这一遍很快:每个端点都做授权、每个输入都做校验、把密钥从客户端拿掉、处理错误,然后补上一套回归测试套件,以及一道 CI/CD 闸门,好让下一个提示词不会悄悄重新捅开一个窟窿。这样做出来,AI 生成的代码就是真实的生产力收益,而不是一堆沉默的技术债

// FAQ

常见问题

在 happy path 上不差,它往往更干净。区别在于它系统性地失败而非随机地失败:它每次都跳过同样的东西(授权、校验、密钥、错误处理),因为提示词很少要求这些。系统性的缺口比随机的人类疏忽更容易堵上,但前提是你真的去做那遍评审。
需要,比以往更需要,只是换了一种方式。工作不是去抓随机的错别字,而是确认模型做出的系统性决定,并在生产需要更多的地方推翻它。完全跳过评审,你得到的就是 vibe-coded 软件:写得快,被攻破时代价高。
AI 生成的代码只是 LLM 写的代码,它可以被评审、被加固、完全安全。Vibe-coded 软件是其中没人读过安全关键路径的那个子集。工具是同一个。有没有人做过那遍生产就绪检查,就是全部的区别。