规范驱动开发:AI 时代软件工程的正确打开方式
AI 编程和 Vibe Coding 虽然降低了写代码的门槛,但从软件工程的角度而言,Vibe 实际上是将软件开发的项目风险后置了。Vibe Coding 写代码确实很爽,几句自然语言就能生成看起来像模像样的代码,但交付到生产环境后,各种问题就开始暴露了。
Vibe Coding:快速但布满风险
Vibe Coding 是今年 AI 圈内的流行术语,简单说就是用自然语言描述你想要什么,让 AI 直接生成代码,最少程度的人工干预,直接运行看结果,有问题就继续让 AI 改,直到能跑通为止。这个概念由 Andrej Karpathy 大佬在今年 2 月份提出,确实对很多人来说很爽。
Y Combinator 的报告显示,在 W25 届的初创公司中,有 25% 的公司代码库 95% 都是 AI 生成的。零基础的产品经理都能写代码了,这在以前是难以想象的。
但问题也很明显。Vibe 出来的代码就像黑盒,你不知道它为什么这么写,设计决策是什么,验收标准更是一笔糊涂账。短期内确实能够做出不错的 demo,但从长期看却隐藏了大量风险。
从个人实践来看,Vibe Coding 过几个原型项目并上线后,刚开始都很丝滑。但当项目复杂度上升,需求管理不清晰、以及需要团队协作时,问题就来了:代码结构混乱、逻辑不一致、难以 review。
说白了,Vibe Coding 适合快速验证想法,做做原型,但要上生产环境,对使用 Vibe 的人有较高的专业经验要求。
SDD 的核心理念:从代码优先到规范优先
随着 spec-kit、OpenSpec、Kiro 等工具的涌现,规范驱动开发的新范式突然火了起来。SDD 的核心理念其实很简单:把规范变成整个开发过程的中心。
传统开发是先写代码,再补文档,而 SDD 恰恰相反,先写清楚规范,包括需求、验收标准、接口契约、测试场景等,然后让这个规范直接驱动代码生成。
这里有个关键转变:从”代码是真相之源”变成”意图是真相之源”。OpenAI 的 Sean Grove 最近说:规范,而不是提示词或代码,正在成为编程的基本单位。
SDD 的标准工作流程包含四个步骤。首先是定义规范,清楚范围、意图和约束。然后让 AI 工具推导实现步骤,生成计划。接着使用编排框架执行任务,最后根据规范验证输出。看起来多了几步,但每一步都是可控、可验证的。
SDD 如何解决 Vibe Coding 的痛点
从实践来看,SDD 主要在四个方面解决了 Vibe Coding 的问题。
首先是可控性提升。Vibe Coding 生成的代码是黑盒,你不知道它会生成什么。但 SDD 不同,规范就是契约,AI 必须按照规范来生成代码,每一步都有明确的验收标准。
其次是质量保证。GitHub 官方数据显示,使用 spec-kit 的项目能达到 95% 或更高的首次实现准确率。相比之下,Vibe Coding 基本就是能跑就行的水平。
然后是可维护性。SDD 中的规范是活文档,随项目演进而更新,可以版本控制、可以审查、始终保持最新。架构决策、业务规则都显式记录下来。团队新人接手项目时,看规范就能理解系统设计。
最后是协作效率。清晰的功能规范让利益相关者能够早期介入。产品经理、设计师、测试人员都能看懂规范,提前发现问题,减少返工。这比 Vibe Coding 那种先写了再说的方式靠谱多了。
工具生态快速成熟
SDD 概念虽好,但没有工具支持也是空谈。好在最近几个月,SDD 工具生态发展得很快。
spec-kit(GitHub 官方)
spec-kit 是 GitHub 官方出品的 SDD 工具,才发布两个月,已经迭代了 30 多个版本,并且在 GitHub 上狂揽 45k star,可以说是 SDD 首选工具。
spec-kit 最大特点是 agent-agnostic,支持 GitHub Copilot、Claude Code、Gemini CLI、Cursor 等 10 多种主流 AI 编程工具。号称零基础 5 分钟就能开发完整应用。
spec-kit 特别适合新项目,内置了 TDD 和架构原则。不过目前还是实验阶段,功能变化比较快。
OpenSpec(轻量级方案)
如果你有现有项目要改造,OpenSpec 可能更合适。它把当前真相和提议更新分离,让差异管理更清晰,特别擅长处理跨多个规范的更新。
相比 spec-kit 和 Kiro 擅长从 0 到 1,OpenSpec 更适合从 1 到 n 的场景。
Kiro(AWS 的 IDE 方案)
Kiro 走的是另一条路,不是工具包,而是完整的 IDE。从头设计就围绕 SDD 工作流,把规范转换、计划生成、代理执行都深度集成了。如果你想要一体化的解决方案,Kiro 值得关注。
三个工具各有侧重:spec-kit 适合快速启动新项目,OpenSpec 适合改造现有代码,Kiro 适合追求深度集成的团队。
SDD 会是 Vibe Coding 的最佳帮手吗?
从目前的趋势看,特别是对于初学者而言,SDD 很有可能是 Vibe Coding 的最佳帮手。它特别适合三种场景:新项目从一开始就用规范约束,确保 AI 构建的是你真正想要的东西;遗留系统现代化,用现代规范捕获业务逻辑,无技术债重建;迭代功能开发,有清晰规范指导的增量开发。
当然,SDD 也有自己的挑战。最大的挑战不是 AI,而是人。你得学会写好的规范,这是个新技能。很多开发者习惯了直接写代码,现在要先写规范,思维方式需要转变。
有些人不会写代码,做项目时 Vibe 了一大堆代码屎山,同时也不会写文档,用了 SDD 之后,结果又生成一大堆文档屎山。最后整个项目都是屎山。所以,不管是 Vibe 还是 SDD,个人还是要努力提升自己的软件工程专业素养。
AI 编程正在从能用走向好用,从快速原型走向工程交付。SDD 的出现,让我们看到了这种转变的可能性。如果你也在用 AI 编程工具,不妨试试 spec-kit 或者 OpenSpec,体验一下规范驱动的开发方式。也许你会发现,写好规范比写好代码更重要。
毕竟在 Vibe 时代,编写规范可能会成为程序员的新核心竞争力。
有问题?联系客服微信:iweico