Vibe Coding 降低了入门的门槛,但没有降低把产品做好的门槛。

6 阅读9分钟

什么是 Vibe Coding,先说清楚

这个词是 Andrej Karpathy 去年提出来的,原话大概是:你不是在写代码,你是在"感受"代码的形成。你用自然语言描述你想要的东西,AI 把它变成代码,你只负责看对不对,不对就继续跟它说。

听起来很玄乎,实际上就是把 AI 编程助手从"辅助角色"变成"主角"。你是导演,AI 是演员,你说台词要这样,AI 演出来,你觉得差点意思再改。

几个月前这个概念还停留在推特和 YouTube 的讨论层面,但现在已经有大量人在真正用这种方式构建东西了。GitHub 的数据说 AI 生成的代码占比已经超过了 40%,某些领域更高。

不信你去看看 X 上 #vibecoding 这个 tag,每天都有新鲜的展示和争议。


我的三个月实验

第一个项目:内部数据监控工具

三月初,我们团队需要一个简单的内部工具——定时拉几个 API 数据,做成图表,邮件推送。没什么复杂的业务逻辑,就是胶水代码。

以前这种需求我会花一周搞定,还需要反复对齐需求、写文档、review。

这次我换了个方式:Claude Code + 几段自然语言描述。大概是这样的:

"做一个 Python 服务,每天凌晨 2 点拉取三个 API 数据,数据结构是这个格式...,用 matplotlib 生成日环比和周趋势图,最后用 SMTP 发邮件给固定地址列表。"

三个小时后,主体功能跑通了。

说实话,第一次看到生成出来的代码,我有一秒钟的不适感——因为代码真的不是我写的,我甚至不知道某几个函数的具体实现,只知道它跑起来了。这种感觉很微妙,有点像让别人替你考了一道题,答对了但你自己不确定为什么。

但功能是好的。后来跑了三个星期,没出什么问题。


第二个项目:一个小型 API 服务

这是第二个项目,麻烦就在这里开始了。

需求比第一个复杂一些:一个接收 Webhook、做数据清洗、写入数据库、触发下游通知的 API 服务。有并发需求,还涉及第三方认证。

Vibe Coding 的方式开始跑得很顺。一天时间,骨架出来了,本地联调也通。

然后我就推了 staging。

第一个问题出现了:高并发下会出现数据库连接耗尽。代码里没有连接池配置,AI 生成的代码默认用了同步 IO,在几十个并发请求下直接趴了。

第二个问题:Webhook 验签逻辑是有的,但有一个边界条件没处理——如果第三方在 Header 里发了一个非标准格式的时间戳,验签代码会抛一个未捕获的异常,整个服务崩。

第三个问题:API Key 在代码里没有经过任何加密,直接明文存在环境变量读取逻辑的注释旁边……虽然没有硬编码进去,但注释里写着"这里替换成你的 key",审计扫了一眼就标红了。

三个问题,不算特别致命,但每一个放在生产环境里都是实实在在的风险。

我花了两天时间把这些问题修掉。


问题出在哪里,我想清楚了

这三个月下来,我觉得 Vibe Coding 本身没什么问题,问题在于一个概念偷换:

它把"能跑起来"和"可以上线"划了等号。

这两件事根本不是一回事。

开发阶段的"能跑起来",是在一个干净的本地环境里,只有你一个用户,数据是你准备好的,网络是稳定的,没有恶意请求,没有并发压力,没有磁盘满了的情况,没有 Token 过期的边界。

生产环境是另一个宇宙。

我整理了一下这三个月遇到的问题,以及 X 上其他人分享的案例,发现有几个坑几乎是 Vibe Coding 项目的标配:

mindmap
  root((Vibe Coding 常见坑))
    安全问题
      硬编码密钥
      未加固的认证逻辑
      缺少输入校验
    稳定性问题
      无连接池
      缺少重试机制
      未捕获异常
    可维护性问题
      无测试覆盖
      意图不可追溯
      修一处破三处
    性能问题
      缺少数据库索引
      同步 IO 用在高并发场景
      无缓存设计

这些问题有一个共同特点:AI 生成代码的时候是在为"演示"优化,不是为"生产"优化。

就像一个厨师给你做了一道菜,摆盘漂亮、颜色好看,你拍了照片发朋友圈。但你没发现盐放少了,因为你当时嘴里有别的味道盖住了。上了餐厅菜单,每天五十桌客人,这点问题就会被放大。


但我不想全盘否定它

说了这么多问题,但我没有变成 Vibe Coding 的反对者。

原因很简单:这东西真的能解放生产力,前提是你知道它能干什么、不能干什么。

用一张图说清楚:

quadrantChart
    title Vibe Coding 适用区间
    x-axis 需求清晰度低 --> 需求清晰度高
    y-axis 系统复杂度低 --> 系统复杂度高
    quadrant-1 慎用(需要深度工程化)
    quadrant-2 不推荐(复杂且模糊)
    quadrant-3 非常适合(脚本/原型/工具)
    quadrant-4 适合(成熟需求的快速交付)
    内部小工具: [0.3, 0.2]
    原型验证: [0.4, 0.15]
    数据分析脚本: [0.55, 0.25]
    小型 API: [0.65, 0.45]
    核心业务服务: [0.7, 0.8]
    金融交易系统: [0.8, 0.9]
    认证系统: [0.75, 0.85]

左下角那一块——需求清晰、复杂度低——这是 Vibe Coding 的甜蜜区。脚本、内部工具、原型验证、数据处理,这类东西用 Vibe Coding 做,效率是传统方式的好几倍,而且出问题的代价很小。

右上角——复杂度高、涉及安全和并发——这里就要非常小心了。不是说不能用 AI,而是你不能"全程放手",你需要审查、测试、加固。


我现在的工作流

根据这几个月的经验,我现在的工作方式大概是这样的:

flowchart TD
    A[有新需求] --> B{评估复杂度}
    B -- 简单工具/脚本 --> C[直接 Vibe Coding]
    B -- 中等复杂度 --> D[写 Spec 文档]
    B -- 高复杂度 --> E[架构设计先行]

    C --> F[功能验证]
    D --> G[基于 Spec 用 AI 生成]
    E --> H[分模块用 AI 辅助]

    F --> I{是否要上生产?}
    G --> I
    H --> I

    I -- 是 --> J[安全审计]
    I -- 否 --> K[直接用]

    J --> L[错误处理补全]
    L --> M[关键路径测试]
    M --> N[Staging 验证]
    N --> O[上线]

这套流程的核心是:Vibe Coding 负责速度,工程思维负责质量。

两者不是对立的,是互补的。


关于"不会写代码的人能用 Vibe Coding 做产品"这件事

X 上有一个持续几个月的争论:Vibe Coding 是否会让"不懂编程的人"也能做软件产品?

坦白说,这个问题我的答案是:能,但只能到一定程度。

我认识一个做设计的朋友,去年底开始用 Cursor + Claude,确实上线了一个小工具,也有真实用户在用。但他告诉我,现在最大的痛苦不是功能做不出来,而是出了问题不知道为什么

有一次用户反馈某个功能突然不好用了,他用 AI 改了三遍,改了这里那里又好了,又坏了。他不知道根因是什么,只能靠反复"感觉"去调整。这个过程极其消耗精力,而且容易陷入"按下葫芦起了瓢"的循环。

CodeRabbit 去年底做过一个分析,对比了 470 个开源 PR,AI 生成代码的逻辑错误比人工代码多 75%,安全漏洞多 174%,性能问题多近 8 倍。

这不是说 AI 不行。这是说,如果你不具备识别这些问题的能力,你就没有办法知道什么时候该停下来、什么时候该深挖。

所以我觉得,Vibe Coding 降低了入门的门槛,但没有降低把产品做好的门槛。这是两件不同的事。


2026 年的真实局面

现在是 2026 年 4 月,我觉得这个行业正在进入一个有趣的节点。

一边是工具越来越强——Google 的 Gemma 4 单卡能跑复杂推理,Claude Code 几乎能跑完整个开发流程,各种本地部署方案越来越成熟。

另一边是问题越来越明显——Georgia Tech 追踪了 2026 年 3 月的数据,单月因 AI 生成代码引发的 CVE 达到 35 个,研究者估计实际数字是公开披露的 5 到 10 倍。亚马逊在推行 AI 开发 mandate 之后,三个月内经历了至少四次 Sev-1 级事故,其中一次六小时宕机估算损失了 630 万个订单。

工具强大和工程质量之间的矛盾,在 2026 年没有消失,反而变得更尖锐了。

graph LR
    A["📅 2023<br/>Copilot 普及<br/>代码补全为主"]
    B["📅 2024<br/>Chat-based 编程<br/>LLM 能生成完整函数"]
    C["📅 2025<br/>Agent 出现<br/>能做多步任务<br/>Vibe Coding 概念兴起"]
    D["📅 2026<br/>AI 写 40%+ 代码<br/>生产事故开始暴露<br/>Spec-Driven 模式兴起"]

    A --> B --> C --> D

    style A fill:#e8f4f8,stroke:#4a9eca,color:#000
    style B fill:#d4edda,stroke:#28a745,color:#000
    style C fill:#fff3cd,stroke:#ffc107,color:#000
    style D fill:#f8d7da,stroke:#dc3545,color:#000

我觉得接下来会发生什么

不做预测家,就说我的观察。

第一,Spec-Driven Development 会成为主流。

就是在用 AI 生成代码之前,先写一份明确的规格文档——不是 PRD,不是需求文档,而是一份技术意图说明,约定接口、约定边界、约定行为。AI 基于 Spec 生成代码,而不是基于"感觉"。

这不是什么新概念,但在 Vibe Coding 带来的混乱之后,它会重新被重视。Amazon Kiro 这类工具已经在做这个方向了。

第二,"会 Prompt 的工程师"和"会工程的 Prompt 工程师",市场价值会拉开差距。

前者只会说话,后者能在说话的同时判断对不对、风险在哪、该怎么兜底。后者才是真正的竞争力所在。

第三,AI 会继续强大,但不会让工程思维变得不重要。

这是我最核心的判断。模型的上下文窗口越来越长,推理能力越来越强,但一个没有架构设计、没有测试覆盖、没有错误处理的系统,无论是人写的还是 AI 写的,在生产环境里都是定时炸弹。


最后说一句

Vibe Coding 是真实的工具,不是噱头,也不是银弹。

它最大的价值不是"让不会写代码的人写出代码",而是让会写代码的人把时间花在更重要的事情上

如果你把它当成替代工程能力的东西,迟早会被它坑。

如果你把它当成放大工程能力的工具,它能让你快很多。

区别在于,你有没有留住那个"我知道这里可能有问题"的直觉。

那个直觉,是工程经验,不是 Prompt 技巧。