【人工智能】规范驱动开发:让AI按Spec写代码

【人工智能】规范驱动开发:让AI按Spec写代码

摘要:规范驱动开发(SDD)主张先写可执行的 Spec,再让 AI 按 Spec 实现,而非直接写代码。一份好 Spec 需回答 Why、What、Scope、Behavior、Constraints、Acceptance 六问;配合 Constitution、Spec、design、tasks、Acceptance 五类文档分工协作,用 Given/When/Then 统一验收标准,让实现、测试、评审回溯同一事实来源,从而稳定约束 AI 编程。

1. 引言:别让AI上来就写代码

先把需求、约束、设计和验收标准写成可执行的 Spec,再让 AI 按 Spec 实现——这就是规范驱动开发(SDD)。

常见路径:需求 → 告诉 Codex → 狂写 2000 行 → 人工 Debug

SDD 路径:Spec → Plan → Tasks → Implement

2. SDD 的核心思想

先写"开发契约",再让 AI 实现。它不是 PRD 的复述,而是一份让实现、测试、评审都能回溯到同一份事实来源的可执行文档。

核心动作:把需求、约束、设计和验收标准先写成可执行的 Spec,再让 AI 按 Spec 实现。

3. 一份好 Spec 的六问

一个好的 SPEC,至少回答 6 件事,六问齐全,AI 才没有空间自行脑补。

  1. Why:为什么做?业务/用户
  2. What:具体要实现什么?价值是什么
  3. Scope:做什么/不做什么,边界写清
  4. Behavior:系统应该如何表现?状态与行为
  5. Constraints:技术、性能、兼容性、安全约束
  6. Acceptance:什么情况下算开发完成

最忌讳的 SPEC:“实现一个用户登录功能。” 六问全空,AI 只能自己脑补——这就是跑偏的起点。

4. 核心文档体系

Constitution.md 文档

约束项目永远如何工作,它的作用是全局的项目规范,不需要每次都反复叮嘱大模型。

Spec.md 文档

描述 WHAT,描述本次任务需要交付什么功能。比如:用户点击 Add to Cart 后,系统应记录点击埋点。

design.md 文档

定义 HOW,主要描述内容是:架构链路/API 定义/数据表与索引/错误处理/性能指标/兼容性等。

例:Frontend → Tracking API → Service → Repository → MySQL;埋点失败不得影响主业务

tasks.md 文档

WORK BREAKDOWN。它就是任务的一个分解。每个被分解后的子任务必须离散、可独立完成、可跟踪——而不是一句"完成埋点功能"。

例:T1 DTO → T2 参数校验 → T3 Service → T4 Mapper → T5 索引 → T6-8 测试 → T9-10 验证

Acceptance.md 文档

它就是验收标准 AC,比需求描述更重要的一个文档。Acceptance Criteria 统一用 Given/When/Then 写,AI 写完可以逐条验收,测试代码也能从 AC 生成。

它包含了三个部分:Given(给定条件),When(触发动作),Then(期望结果)

写清这个文档之后,AI 的动作可以非常的具体——实现和测试都有了明确的靶子。

5. 核心要点总结

一句话核心:先把需求、约束、设计和验收标准写成可执行的 Spec,再让 AI 按 Spec 实现——不是"先让 AI 写代码"。GitHub Spec Kit 的标准主流程就是 Spec → Plan → Tasks → Implement,Kiro 也是 requirements-first 的玩法。

几个最重要的点:

  1. SPEC 是"开发契约"不是 PRD:Why/What/Scope/Behavior/Constraints/Acceptance Criteria 六件事答不齐就别开工,否则 AI 全靠脑补
  2. Constitution 和 Spec 分工:全局规范约束"项目永远如何工作",Spec 约束"这次要交付什么"。工程规范和单次需求上下文拆开,比一份超长 CLAUDE.md 稳定得多
  3. spec.md 只写 WHAT,design.md 写 HOW,tasks.md 拆成可独立完成的任务——最常写错的就是把实现细节塞进 spec.md
  4. Acceptance Criteria 比需求描述还重要:统一 Given/When/Then,边界情况(失败路径)单独一条 AC,AI 实现完直接逐条验收,测试代码也能从 AC 生成
  5. 设个阈值,别把流程搞太重:变量改名、轻量修正就直接改,新功能才需要强走 Spec

6. 结语

SDD 不是把流程变重,而是把「工程规范」和「单次需求上下文」拆开管——这才是对 AI 编程最稳的约束方式。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的横打

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值