Update from Sync Service
This commit is contained in:
150
AI工程/概念/规格驱动开发.md
Executable file
150
AI工程/概念/规格驱动开发.md
Executable file
@@ -0,0 +1,150 @@
|
||||
# 规格驱动开发(SDD)
|
||||
|
||||
> 相关:[[AI编程演进阶段]]、[[Harness工程]]、[[Rule约束]]、[[BMAD]]、[[Spec_Kit]]、[[OpenSpec]]、[[Kiro]]
|
||||
|
||||
## 定义
|
||||
|
||||
**规格驱动开发**(Spec-Driven Development,SDD)是AI编程的第3阶段,以规格文档为核心的开发方法。
|
||||
|
||||
**核心思想**:Spec是单一事实来源(SSoT),所有开发活动围绕Spec展开。
|
||||
|
||||
## 核心特征
|
||||
|
||||
### 1. 规格中心化
|
||||
- Spec是唯一的真相来源
|
||||
- 所有代码从Spec生成
|
||||
- Spec变更驱动代码变更
|
||||
|
||||
### 2. 结构化表达
|
||||
- 需求以结构化形式表达
|
||||
- 使用Markdown、YAML等格式
|
||||
- 可机器解析和验证
|
||||
|
||||
### 3. 文件驱动
|
||||
- 文件进,文件出
|
||||
- 规格文件可版本化
|
||||
- 规格文件可复用
|
||||
|
||||
## SDD框架对比
|
||||
|
||||
| 维度 | [[BMAD]] | [[Spec_Kit]] | [[OpenSpec]] | [[Kiro]] |
|
||||
|------|----------|--------------|--------------|----------|
|
||||
| 定位 | 企业级SDD操作系统 | 工程化Spec工作流 | 轻量Spec层 | IDE原生SDD |
|
||||
| 理念 | Spec=治理体系+多Agent编排 | Spec=开发入口+Git生命周期 | Spec=变更单元(持续演化) | Spec=可执行源 |
|
||||
| 生命周期 | 全生命周期 | 与分支绑定(短) | 长期存在(持续) | 持续驱动 |
|
||||
| 粒度 | 大(系统/模块级) | 中(Feature级) | 小(变更/Patch级) | 中(Feature+行为) |
|
||||
| 可执行 | 流程驱动 | 驱动开发流程 | 类Prompt | 可生成代码+测试 |
|
||||
| 自动验证 | 无 | 无 | 弱 | 强(内建) |
|
||||
| 适用场景 | 大型系统/多团队 | 新项目(0→1) | 存量项目/快速迭代 | 小团队/高自动化 |
|
||||
|
||||
## 规格类型
|
||||
|
||||
### 1. 需求规格(Feature Spec)
|
||||
```markdown
|
||||
# 用户注册功能
|
||||
|
||||
## 用户故事
|
||||
作为一个新用户,我想要注册账号,以便使用系统功能。
|
||||
|
||||
## 验收标准
|
||||
1. 用户可以输入邮箱和密码
|
||||
2. 系统发送验证邮件
|
||||
3. 用户点击链接完成验证
|
||||
4. 验证成功后可以登录
|
||||
|
||||
## 字段定义
|
||||
- email: string, required, unique
|
||||
- password: string, required, min:8
|
||||
- verified: boolean, default:false
|
||||
```
|
||||
|
||||
### 2. 设计规格(Design Spec)
|
||||
```markdown
|
||||
# 数据库设计
|
||||
|
||||
## users表
|
||||
- id: bigint, primary key
|
||||
- email: varchar(100), unique
|
||||
- password: varchar(255)
|
||||
- verified: tinyint(1), default:0
|
||||
- created_at: timestamp
|
||||
- updated_at: timestamp
|
||||
```
|
||||
|
||||
### 3. API规格(API Spec)
|
||||
```yaml
|
||||
openapi: 3.0.3
|
||||
paths:
|
||||
/api/v1/users:
|
||||
post:
|
||||
summary: 创建用户
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/CreateUserRequest'
|
||||
```
|
||||
|
||||
## 规格流转
|
||||
|
||||
### 过程方案(Plans)
|
||||
- 每次创建新文件
|
||||
- 记录实现过程
|
||||
- 不修改旧文件
|
||||
- 保留决策轨迹
|
||||
|
||||
### 事实方案(Designs)
|
||||
- 覆盖更新最终态
|
||||
- 作为下次Plan的起点
|
||||
- 必须保持最新
|
||||
- Source of Truth
|
||||
|
||||
## 适用场景
|
||||
|
||||
### BMAD
|
||||
- 企业级项目
|
||||
- 多团队协作
|
||||
- 强治理需求
|
||||
- 合规要求高
|
||||
|
||||
### Spec Kit
|
||||
- 新项目(0→1)
|
||||
- 需要Git集成
|
||||
- 中等复杂度
|
||||
|
||||
### OpenSpec
|
||||
- 存量项目
|
||||
- 快速迭代
|
||||
- 轻量级需求
|
||||
|
||||
### Kiro
|
||||
- 小团队
|
||||
- 高自动化需求
|
||||
- AWS项目
|
||||
|
||||
## 优势
|
||||
|
||||
- **单一真相来源**:避免信息不一致
|
||||
- **可追溯**:Spec变更有历史记录
|
||||
- **可验证**:Spec可以生成测试
|
||||
- **可复用**:Spec可以在项目间复用
|
||||
|
||||
## 挑战
|
||||
|
||||
- **初始成本**:需要建立完整的Spec体系
|
||||
- **维护成本**:Spec需要持续更新
|
||||
- **学习曲线**:团队需要理解SDD理念
|
||||
|
||||
## 最佳实践
|
||||
|
||||
1. **从核心Spec开始**:先定义最重要的规格
|
||||
2. **逐步扩展**:根据实践逐步添加规格
|
||||
3. **定期Review**:定期审查和优化规格
|
||||
4. **自动化验证**:尽可能自动化Spec验证
|
||||
|
||||
## 相关概念
|
||||
|
||||
- [[AI编程演进阶段]]:SDD是第3阶段
|
||||
- [[Harness工程]]:SDD是Harness的组成部分
|
||||
- [[过程方案vs事实方案]]:SDD的规格管理方式
|
||||
- [[BMAD]]、[[Spec_Kit]]、[[OpenSpec]]、[[Kiro]]:SDD框架
|
||||
Reference in New Issue
Block a user