引言:AI 改变了编程,但方式不止一种
2025 年,AI 编程工具的爆发让"写代码"这件事发生了根本性变化。Cursor、Copilot、Windsurf 等工具让开发者可以用自然语言驱动代码生成,效率提升了数倍。但很快,社区分化出了两种截然不同的使用哲学——Vibe Coding(氛围编程) 和 Spec Coding(规范编程)。
它们代表的不仅是两种工具使用方式,更是两种对"人与 AI 协作"的根本态度。
什么是 Vibe Coding?
Vibe Coding 这个词由 OpenAI 联合创始人 Andrej Karpathy 在 2025 年 2 月提出。他在社交媒体上写道:
"有一种新的编程方式,我称之为 Vibe Coding。你完全沉浸在氛围中,拥抱指数级增长,忘掉代码的存在。"
Vibe Coding 的核心特征是:
- 不读代码,只看结果。 开发者用自然语言描述需求,AI 生成代码,开发者只关心"能不能跑起来"。
- 报错驱动开发。 遇到错误就把报错信息复制给 AI,让它自己修。循环往复,直到程序正常运行。
- 快速出活,不求甚解。 追求的是速度和创意落地,而非代码质量和架构合理性。
这种方式有一种不可否认的魅力。一个周末,一个没有编程经验的产品经理可以做出一个可运行的 Web 应用;一个独立开发者可以在几小时内验证一个商业想法。Vibe Coding 把编程的门槛降到了前所未有的低点。
但问题也很明显:
- 代码变成了"黑箱"。 没人真正理解代码在做什么,出了问题排查极其困难。
- 技术债呈指数级积累。 AI 生成的代码往往充满冗余、不一致和隐藏的 Bug。
- 难以协作和维护。 当项目超过一个人、一周的规模,Vibe Coding 产出的代码几乎不可接手。
正如一位工程师的调侃:"Vibe Coding 就像醉酒驾车——你确实在前进,但你不知道自己在哪条路上,也不知道会撞上什么。"
什么是 Spec Coding?
Spec Coding 是社区对 Vibe Coding 的一种"纠偏"回应。它的核心主张很简单:
在让 AI 写代码之前,先让人写清楚"要写什么"。
这里的"Spec"指的是规范文档(Specification),包括但不限于:
- 需求规格: 要实现什么功能,边界条件是什么,用户故事怎么描述
- 架构设计: 用什么技术栈,模块如何划分,数据如何流转
- 接口契约: API 的输入输出、错误码、版本策略
- 约束条件: 性能要求、安全红线、兼容性需求
- 验收标准: 怎么算"做完了",测试用例是什么
Spec Coding 的工作流通常是这样的:
- 人写 Spec —— 用结构化的文档描述清楚要做什么、怎么做、做到什么程度
- AI 读 Spec 生成代码 —— AI 根据规范一步步实现,而非自由发挥
- 人审查代码 —— 对照 Spec 检查代码是否符合预期
- 迭代优化 —— 发现偏差时,更新 Spec 而非直接口头指挥 AI
这种方式的优势显而易见:
- 可控性强。 人始终掌握架构决策权,AI 是执行者而非决策者。
- 可维护性好。 Spec 本身就是文档,团队成员可以通过它理解系统设计。
- 质量有保障。 明确的约束和验收标准让 AI 的输出更加可预测。
- 适合团队协作。 不同成员可以并行编写不同模块的 Spec,然后各自让 AI 实现。
两种范式的本质区别
如果用一句话概括两者的区别:
Vibe Coding 是"对话式"的,Spec Coding 是"文档式"的。
| 维度 | Vibe Coding | Spec Coding |
|---|---|---|
| 人的角色 | 提需求 + 验收结果 | 架构师 + 审查者 |
| AI 的角色 | 全栈开发者 | 按图施工的工程师 |
| 沟通方式 | 口语化对话 | 结构化文档 |
| 知识沉淀 | 在聊天记录里(易丢失) | 在 Spec 文档里(可复用) |
| 适用规模 | 个人 / 原型 / < 1000 行 | 团队 / 生产 / 任意规模 |
| 典型失败模式 | "能跑但没人敢改" | "文档写太久,不如直接写代码" |
它们不是对立的
虽然社区讨论中常常把两者对立起来,但在实际开发中,最高效的方式往往是两者的结合:
- 探索阶段用 Vibe Coding。 当你还不确定需求、在试错和验证想法时,快速迭代比完美规范更重要。用 Vibe Coding 快速做出原型,验证可行性。
- 落地阶段切 Spec Coding。 一旦方向确定,需要把原型变成生产级代码时,停下来写 Spec,让 AI 按规范重新实现。
这就像建筑行业:你不会先画图纸再去想盖什么房子,但你也不会不画图纸就开始盖楼。 草图阶段可以随意涂改,施工阶段必须严格按图。
对开发者意味着什么?
AI 编程时代,写代码的能力在贬值,但设计系统的能力在升值。
- Vibe Coding 证明了:AI 已经能胜任"把想法变成代码"的工作。
- Spec Coding 证明了:人的核心价值在于定义"正确的想法"——需求分析、架构设计、质量标准、权衡取舍。
无论你选择哪条路径,有一点是确定的:未来的优秀开发者,不是写代码最快的人,而是最善于定义问题、拆解系统、与 AI 高效协作的人。
结语
Vibe Coding 让编程变得平民化,Spec Coding 让 AI 编程变得工程化。两者共同描绘了一个正在到来的未来:人负责思考"做什么"和"为什么做",AI 负责解决"怎么做"。
编程的门槛降低了,但工程的门槛从未改变。
评论区