随着 Cursor、Copilot 等 AI 编程工具的普及,软件开发的范式正在经历一场剧变。在这场变革中,诞生了两个截然相反的流派:VibeCoding(跟着感觉编码)SpecCoding(基于规范编码)

如果你还在用传统的逐行敲击方式写代码,你可能已经落后了;但如果你只知道无脑依赖AI生成代码,你可能离灾难也不远了。

今天我们就来聊聊,如何在两种范式之间游刃有余。

VibeCoding:直觉的狂欢与潜在的灾难

前特斯拉AI总监 Andrej Karpathy 曾推崇过一种编程方式:不需要完全懂语法,只要用自然语言告诉AI你想要什么感觉,AI生成后你直接运行。不行就再改改Prompt。这就是 VibeCoding。

在 VibeCoding 的世界里,程序员变成了“产品经理的助理”。你描述一个粗糙的需求,AI给你一段粗糙的代码,你运行看效果,再让AI修改。这种模式极其适合原型开发、Hackathon或者写一次性脚本

VibeCoding 的魅力在于“低认知负荷”。你不需要在脑子里装载复杂的语法树,只需关注最终目标的达成。

但隐患也是巨大的。
当项目变大,或者业务逻辑变复杂时,VibeCoding 会变成一场灾难。因为你没有对系统架构的把控,代码库很快会变成一团乱麻。AI 会开始误解你的意图,你会陷入“让AI修Bug,AI引入三个新Bug”的死循环。这时候,你的代码失去了可维护性,变成了只能重写的“一次性垃圾”。

SpecCoding:夺回控制权的契约精神

为了解决 VibeCoding 带来的混乱,SpecCoding 应运而生。

SpecCoding 的核心理念是:在AI写任何一行代码之前,人类必须先写好“宪法”。

这份“宪法”就是 Spec。它包含了模块的输入输出、数据结构定义、异常处理边界、甚至API的文档和测试用例。AI 的任务不是自由发挥,而是像流水线工人一样,严格按照 Spec 把代码填补完整。

在 SpecCoding 中,Prompt 不再是“帮我写一个登录功能”,而是:

“根据附件中的 auth-spec.md 规范,实现 loginController。要求:

  1. 严格遵守 Spec 中的返回格式 {code, data, message}
  2. 密码必须使用 bcrypt 加盐。
  3. 包含 Spec 中定义的 3 个单测用例。”

SpecCoding 的好处显而易见:高确定性、可维护、符合工程规范。 它把AI的创造力限制在了安全的范围内,让架构的控制权依然掌握在人类手中。

程序员的生存法则:两手抓,两手都要硬

AI 时代,优秀的程序员应该是一个“双面人”:

  1. 用 VibeCoding 探索未知:当面对一个不熟悉的框架、需要快速验证一个产品Idea时,放下身段,用直觉去 Prompt,快速搭出能跑的Demo。这时候,速度就是一切。
  2. 用 SpecCoding 沉淀工程:当产品需要上线、面对复杂业务逻辑时,必须切换到 Spec 模式。先画图、先写文档、先定义数据结构,然后再把 Spec 喂给 AI 让其实现。这时候,稳定性和可维护性高于一切。

总结

1. VibeCoding(跟着感觉编码)
  • 起源与概念:由前特斯拉AI总监Andrej Karpathy等人在社交媒体上带火。指的是开发者不再拘泥于逐行写代码,而是通过自然语言向AI描述一个大概的“感觉”或“意图”,AI生成代码后,开发者直接运行,看着效果不对再让AI改。
  • 特点
    • 直觉驱动:重结果,轻过程。
    • 快速试错:写代码变成了“Prompt -> 运行 -> 看效果 -> 改Prompt”的循环。
    • 门槛极低:不需要懂复杂的语法,会说话就能写。
  • 适用场景:个人项目原型、一次性脚本、Hackathon黑客松、前端UI快速Demo。
  • 致命弱点:代码质量不可控,缺乏架构设计,难以维护,一旦出Bug容易陷入“让AI修Bug,AI引入新Bug”的死循环。
2. SpecCoding(基于规范编码)
  • 概念:在写任何业务代码之前,先通过自然语言或特定格式(如Markdown、YAML),极其严谨地定义系统的架构、接口、数据结构、边界条件和测试用例,形成一份Spec(规范文档)。然后让AI严格按照Spec去生成代码。
  • 特点
    • 契约驱动:Spec就是契约,AI只是执行契约的苦力。
    • 高确定性:因为输入的规约极其明确,输出的代码质量高度可控。
    • 工程师主导:考验的是系统设计和架构能力,而不是写Prompt的技巧。
  • 适用场景:企业级生产环境、复杂业务逻辑、团队协作项目、核心底层模块。
  • 致命弱点:前期编写Spec的时间成本较高,对于极简任务有“杀鸡用牛刀”之嫌。

一句话总结:VibeCoding 是“我说你做,不行再改,凭感觉”;SpecCoding 是“先立规矩,按图索骥,重契约”。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐