🚀 1. 什么是 “SDD(规范驱动开发)”
SDD(Spec-Driven Development) 是一种把 “规范/spec” 提到核心的开发方法论,它的核心思想是:
📌 先把要构建的功能“是什么(WHAT)”和“为什么(WHY)”用规范清晰描述出来,然后再逐步把这些规范转换成可执行的计划和代码。
📌 规范不再是形式文档,而是驱动整个开发过程的核心“可执行资产”。
📌 开发过程借助 AI/工具自动把这些规范一步步变成任务、计划、最终的实现。
换句话说:
SDD 不是先写代码再写文档,而是先写详细规范、搞懂需求,再基于这些规范(甚至直接由 AI)生成实现。
🆚 2. SDD 和传统开发模式的主要区别
下面是 SDD 与更常见的传统开发模式(如瀑布、敏捷、TDD)之间的关键对比:
| 方面 | 传统开发模式 | SDD(规范驱动开发) |
|---|---|---|
| 核心资产 | 代码是中心 | 规范(spec)是中心 |
| 文档作用 | 用于沟通,常滞后于代码 | 驱动开发全过程 |
| AI/工具角色 | 辅助编码或自动补全 | 深度参与规范解析、计划分解与实现 |
| 开发流程 | 需求 → 设计 → 编码 → 交付 | 规范 → 澄清 → 计划 → 任务分解 → 实现 |
| 与需求变更的关系 | 编码后常需返工 | 规范先行,更容易可追踪、一致 |
| 协作效果 | 依赖经验与沟通 | 多人协作基于同一规范平台 |
具体来说:
🔹 传统模式通常是:
- 编写需求文档
- 然后开发人员根据需求写代码,文档常被忽略或过期
- 如果需求变了,代码要大改,协调成本高
🔹 SDD 模式是:
把需求/规范写得非常具体
通过工具(如 spec-kit)把规范解析成计划、任务
严格按规范驱动实现
👉 规范贯穿整个开发生命周期,而不是编码之后才有文档。
🧰 3. 使用 spec-kit 的开发流程(从需求到实现)
spec-kit 是 GitHub 官方开源的 SDD 工具集,提供了一套命令和流程去结构化地做开发。它不是单一脚手架,而是一种流程生态。
下面是典型的开发流程:
✅ Step 1:初始化项目
先在本地目录初始化 Spec-Driven 项目:
specify init my-project --ai claude
这一步会创建项目结构并让 AI/代理接入,以便整个流程可用。
✅ Step 2:设定项目原则(Constitution)
使用命令:
/speckit.constitution
这会生成或更新项目的根本开发原则,比如代码质量标准、测试规范、性能要求等。 这些原则会贯穿整个过程,AI 会参考它们来生成规范定义和未来计划。
✅ Step 3:编写功能规范(Specify)
/speckit.specify
在这个阶段,你用自然语言构建规范,例如:
🌟 “这个任务管理应用需要支持看板模式…”
🌟 “每个用户可以创建任务、分配任务…”
重点是 尽可能明确 WHAT 和 WHY,不要先提 HOW。
🧠 Step 3.5:澄清规范(Clarify)
/speckit.clarify
用于 AI 自动提问、澄清不够明确的部分。这可以大大减少需求误解风险(推荐在 plan 之前用)。
✅ Step 4:创建技术实现计划(Plan)
/speckit.plan
这一步让 AI 把规范转换成技术选型和架构设计,比如:
- 前端用什么 tech stack
- 后端框架与数据库
- 是否需要缓存/测试框架
它生成计划文档,为下一步任务做铺垫。
✅ Step 5:任务分解(Tasks)
/speckit.tasks
AI 会根据计划把要做的工作分解成可执行、可测试的具体任务,比如:
- 建立数据库模型
- 设计 UI 页面
- 实现 API
- 单元测试模板
- …
这一步是把计划变成实施蓝图。
✅ Step 6:实现代码(Implement)
/speckit.implement
最后,AI/工具根据任务列表 & plan 来实际生成代码,完成开发过程。 生成的实现会严格对应前面定义的规范。
🧪 可选命令(提高质量)
| 命令 | 用途 |
|---|---|
/speckit.analyze | 规范与任务一致性检查 |
/speckit.checklist | 生成质检清单,比如可测试项 |
/speckit.clarify | 规范澄清阶段 |
📌 4. spec-kit 的优势总结
✨ 规范优先、意图明确:减少误解与返工
✨ 可追踪的开发资产:规范/计划/任务都版本控制
✨ AI 与人协作更流畅:AI 不再只是一句 prompt,而是按流程执行
✨ 适合团队开发与大型项目:更统一、更一致、更可维护
🧠 和传统开发相比?
| 传统(人写代码为主) | SDD + spec-kit |
|---|---|
| 需求文档易过时 | 规范驱动开发,规范是核心资产 |
| 人工分解任务不够标准化 | AI 自动分解任务 |
| 实现细节因人而异 | 实现一致且可追踪 |
| 需求变更难以控制 | 更新规范即可驱动下一轮变更 |