“Vibe coding” 可以理解为一种以“快速得到可运行结果”为第一目标的编码方式:先用自然语言把意图说清楚,让工具(包括但不限于 AI)快速产出一个可运行的雏形,然后在“运行 → 观察 → 修正”的循环里不断收敛到可维护的实现。

它不是“偷懒不写代码”,而是把传统开发里大量的“查 API / 搭骨架 / 反复试错”的时间,尽可能压缩到更短的迭代里,把精力放在目标是否达成风险是否可控上。

1. 它解决的是什么问题

很多真实项目的前 80% 工作都很像:

  • 把想法落成一个能跑的最小版本(MVP)
  • 把 UI/交互“拉通”
  • 把数据流、状态、边界条件补齐

这段时间如果完全手写,成本高、反馈慢;如果完全靠“生成”,又容易埋雷。Vibe coding 的核心就是:先把反馈变快,再把质量拉回来

2. 一句话原则:先跑起来,再把它变对

“先跑起来”不是把代码写烂,而是先拿到一个可验证的方向。只要能验证,就能迭代;不能验证,就只能靠想象。

实践上你会不断做这件事:

目标 -> 提示词 -> 生成/改代码 -> 快速验证 -> 读 diff 找风险 -> 收敛/重构 -> 回到目标

3. 什么时候适合 vibe coding

  • 原型 / 小工具:只要能跑、能交付,收益巨大
  • 陌生领域:先把“正确方向”跑通,比一开始追求完美更重要
  • 重复性工作:样板代码、结构搭建、迁移、重命名、接口对齐

4. 什么时候不适合(或必须降速)

  • 安全/权限/支付:这类代码的失败成本太高,必须以审计、测试、最小权限为核心
  • 复杂并发/分布式一致性:靠“感觉”很容易踩坑,要用严谨的模型、日志与回归测试
  • 长期维护模块:可以先 vibe,但一定要把最终版本“收口”为可维护实现

5. 常见误区

误区 A:只要能跑就完事

能跑只是开始。你至少要做三件事:

  • 读 diff:确认没引入明显风险(泄漏、注入、越权、死循环)
  • 补边界:空值、超长输入、异常路径、网络失败
  • 写最小测试/自检:哪怕只是一个构建命令、一个快照或一个回归用例

误区 B:把 AI 当成“权威”

它更像一个“速度很快但会犯错的同事”。你要做的是把不确定性降到可控

  • 不确定就让它“举例 + 给反例 + 列假设”
  • 关键逻辑要求它“写测试用例再写实现”
  • 让它解释“为什么这样写”,看是否自洽

6. 我自己的建议(能马上用)

  • 提示词写清 3 件事:输入是什么、输出是什么、失败怎么办
  • 每次改动尽量小:小步快跑比大段重写更稳
  • 先拉通链路:数据从哪来、到哪去、如何落盘/展示
  • 最后一定要重构收口:把临时代码变成“你未来愿意维护的代码”

7. 小结

Vibe coding 的“vibe”不是随便写,而是用更快的反馈循环驱动实现。它真正的价值不在于“生成了多少代码”,而在于你是否能在保持速度的同时,把质量通过验证、审阅与重构拉回到可控范围。

延伸阅读