SDD 规范驱动开发:用自然语言重塑全栈开发流程 从需求描述到前后端交付,AI 仅用 60 分钟完成全栈开发。这不是科幻,这是 SDD(Specificatio

0 阅读7分钟

SDD 规范驱动开发:用自然语言重塑全栈开发流程

从需求描述到前后端交付,AI 仅用 60 分钟完成全栈开发。这不是科幻,这是 SDD(Specification-Driven Development,规范驱动开发)的真实实践。


一、什么是 SDD?

SDD(Specification-Driven Development,规范驱动开发)  是一种以"规范"为核心的开发范式。

它的核心理念是:先用自然语言描述需求,由 AI 生成规范文档,再基于规范自动生成代码

传统开发流程是:

需求评审 → 接口设计 → 后端开发 → 前端联调 → Bug 修复

SDD 流程是:

自然语言描述 → AI 撰写规范提案 → 自动生成前后端代码 → 填充业务逻辑

本质区别:开发者不再是"代码搬运工",而是"规范设计者"。AI 负责把规范翻译成可运行的代码。


二、SDD vs 传统开发:本质区别在哪?

维度传统开发SDD 模式
时间成本一个简单功能 2~3 个工作日60 分钟极速交付
沟通成本前后端反复对齐,接口设计成本高基于 Proto 契约,一次定义,两端同步
类型安全前端手写类型易出错Proto 自动生成,100% 类型安全
代码质量每一层都在手写重复 CRUD自动生成标准代码,质量一致
知识沉淀需求文档散落,新人接手困难每次变更自动沉淀为 Spec 文档

核心痛点:传统模式下,开发者把大量时间花在"翻译"上——把需求翻译成接口设计、把接口设计翻译成 DAO/Logic/Service、把接口字段翻译成 TypeScript 类型。每一层翻译都可能出错,每一层都在重复劳动。

SDD 破局点:让 AI 承担"翻译"工作,开发者专注于业务逻辑和架构设计。


三、OpenSpec 体系如何落地?

OpenSpec 是一套完整的规范体系,包含以下核心文件:

1. project.md — 项目级规范

定义项目的技术栈、架构、代码目录结构。

示例:

markdown

复制

# 项目技术栈
- 前端:React 19 + TDesign + TypeScript
- 后端:tRPC-Go + GORM + MySQL
- 协议:Protocol Buffers (proto3)

# 架构分层
- 前端:pages → components → services → types
- 后端:service → logic → dao

作用:让 AI 理解项目上下文,生成的代码符合团队规范。

2. AGENTS.md — AI 决策工作流

定义 AI 的三阶段决策流程:

  1. 理解阶段:阅读 project.md,理解业务背景
  2. 设计阶段:生成规范提案(proposal.md),定义接口和数据模型
  3. 实现阶段:基于规范生成前后端代码

作用:约束 AI 的行为边界,避免"自由发挥"导致的不可控。

3. WORKFLOW.md — 前后端协作标准

定义前后端如何通过 Proto 协作:

  • 后端定义 Proto IDL
  • 前端基于 Proto 生成 TypeScript 类型
  • 接口变更时,两端同步更新

作用:消除前后端联调的类型不一致问题。

4. changes/ — 变更提案目录

存放 AI 生成的任务清单和变更提案(proposal.md)。

每次新需求,AI 会先在这里生成一个提案,包含:

  • 需求拆解
  • 接口设计
  • 任务清单

作用:可审查、可追溯、可回滚。

5. specs/ — 知识沉淀目录

存放固化的功能规范文档。

每次功能完成后,规范会从 changes/ 归档到 specs/,成为项目的知识资产。

作用:新人接手项目时,阅读 specs/ 即可快速理解业务逻辑。


四、实战效果:60 分钟交付一个功能

案例:成员管理功能

需求描述(自然语言):

实现一个成员管理功能,支持添加、删除、查询空间成员,需要有权限校验。

AI 执行过程

Step 1:需求理解

  • 阅读 project.md,理解技术栈
  • 将模糊描述转化为明确的任务清单

Step 2:接口设计

  • 自主设计 Proto IDL
  • 生成 Request/Response 模型
  • 定义权限校验逻辑

Step 3:后端实现

  • 遵循 tRPC-Go 框架
  • 实现 DAO 层(数据库操作)
  • 贯通 Logic → Service 层

Step 4:前端实现

  • React 19 + TDesign 组件
  • 实现列表、添加、删除交互
  • 自主修复编译错误

惊人的自主修复能力

场景 1:发现并修复缺失的 Mock 方法

❌ MockPermissionLogic does not implement PermissionLogic

AI 精准识别:检测到测试文件遗漏了新增接口的 Mock 实现。 自主决策:自动补充 AddSpaceMembers 等 3 个存根方法,确保编译通过。

场景 2:瞬间修正前后端字段映射

⚠️ 网关转换致使首字母小写:UserID → userid

用户反馈:"接口字段会变成小写"。 AI 瞬间行动:重构 TypeScript 定义,更新所有组件引用层,同时保留请求的 PascalCase 规范。

最终结果

  • 开发耗时:60 分钟(传统模式需 2~3 天)
  • Bug 数量:前后端联调阶段 0 个类型相关 Bug
  • 知识沉淀:自动生成成员管理功能的 Spec 文档

五、优点与局限(客观分析)

✅ 优点

维度说明
降本增效开发耗时从几天降至分钟级,消除重复 CRUD 敲码时间
类型安全Proto 契约 100% 保证类型一致,显著降低联调 Bug 率
资产沉淀每次变更自动沉淀为 Spec 文档,新人/AI 极速理解上下文
质量一致自动生成标准代码,避免手写代码的风格差异
角色转变开发者从"代码搬运工"回归"设计者"

⚠️ 局限

维度说明
学习成本需要理解 OpenSpec 规范体系,初期有上手门槛
适用场景更适合 CRUD 类型的业务功能,复杂算法场景仍需人工介入
AI 能力依赖AI 的理解能力和代码生成质量直接影响最终效果
团队协作需要团队统一采用该模式,否则规范文件可能成为摆设
Proto 维护接口变更时需要同步更新 Proto 文件,有一定维护成本

适用场景建议

场景推荐程度
CRUD 类业务功能⭐⭐⭐⭐⭐ 强烈推荐
前后端协作频繁的项目⭐⭐⭐⭐⭐ 强烈推荐
新人接手的老项目⭐⭐⭐⭐ 推荐
复杂算法/高性能场景⭐⭐ 需谨慎
小型个人项目⭐⭐ 可能过度设计

六、谁适合用?怎么开始?

适合人群

  1. 全栈开发者:一人负责前后端,希望提升效率
  2. 前后端协作频繁的团队:厌倦了反复对齐接口文档
  3. 新人接手老项目:缺少文档,难以理解业务逻辑
  4. 追求工程质量的团队:希望代码质量一致、类型安全

如何开始?

第一步:建立规范文件

在项目根目录创建以下文件:

.openSpec/
├── project.md      # 项目技术栈和架构
├── AGENTS.md       # AI 决策流程
├── WORKFLOW.md     # 前后端协作标准
├── changes/        # 变更提案
└── specs/          # 知识沉淀

第二步:用自然语言描述需求

不要直接写代码,先用自然语言描述你想要的功能。

第三步:让 AI 生成规范提案

AI 会基于你的描述,生成 proposal.md,包含接口设计和任务清单。

第四步:审查提案,确认后让 AI 生成代码

审查接口设计是否合理,确认后让 AI 生成前后端代码。

第五步:填充业务逻辑

AI 生成的是标准代码框架,你需要填充具体的业务逻辑。


总结

SDD 不是让你躺平,而是让你干得更聪明。

它的核心价值在于:

  • 把重复劳动交给 AI:翻译需求、生成代码、维护类型
  • 把创造力留给自己:架构设计、业务逻辑、问题解决

Proto 契约保证类型安全,Spec 文档保证知识可追溯,AI 保证代码质量一致。

如果你也在探索 AI 辅助开发,不妨试试 SDD 模式——从写规范开始,而不是从写代码开始。