写代码 5 年,最近半年写的代码比前 4 年半都多,但下班反而更早了。
上周五下午 4 点,我接到一个需求:给公司的支付系统加个新功能。
要是搁以前,我肯定是:
打开 IDE
新建文件
开始咔咔写代码
遇到问题再改
测试报错继续改
...
结果就是:改到晚上 9 点,Bug 越改越多,最后还得回滚。
但这次,我用了个新学的方法——规范驱动开发(SDD)。
你猜怎么着?
下午 4 点 20 开始,5 点 15 分完成,代码一次过测试,准时下班!
同事都惊呆了:"你开挂了?"
我说:"不,我只是换了个写法。"

先来个灵魂拷问:
你写代码之前,真的知道自己要写什么吗?
别急着回答。让我猜猜你的日常:
产品经理丢过来一句:"做个用户登录功能"
你心想:"简单!",然后打开 IDE 就开干
写到一半发现:"诶?密码加密用啥算法来着?"
好不容易写完,测试说:"没做失败重试啊?"
改完测试又说:"限流呢?防刷呢?"
最后上线,运维找你:"日志呢?监控呢?"
是不是扎心了?
官方定义:
Specification-Driven Development(规范驱动开发)是一种软件开发方法,它强调在编写任何实际代码之前,必须首先编写一份详尽、精确、可执行的规范。
人话翻译:
别急着敲代码!先想清楚你要干啥,写下来,让 AI 帮你干!
用一个公式表示:
传统开发 = 接到需求 → 直接写代码 → 反复改 Bug → 加班
SDD 开发 = 接到需求 → 写规范文档 → AI 生成代码 → 审查通过 → 准时下班看懂了吗?权力反转了!
以前:代码是老大,规范是备注
现在:规范是老大,代码是规范的"执行结果"

你可能会问:"这不就是写文档吗?有啥新鲜的?"
问得好!以前的规范驱动,确实是个坑。
1. 写 100 页 UML 图
2. 画 50 个流程图
3. 填 20 个 Excel 表格
4. 花 2 周写文档
5. 花 3 个月写代码
6. 最后发现文档和代码对不上结果:规范成了摆设,没人看,没人维护。
生成式 AI + 大语言模型 = 规范可以直接变成代码!
来看看现在的 SDD 工作流:

看到了吗?规范不再是文档,而是"可执行的契约"!
好了,理论吹完了,来点干的!
错误的写法(90% 的人都是这样):
## 用户登录功能
- 用户可以登录
- 需要验证密码正确的 SDD 写法(建议收藏):
# 用户登录功能规范
## 1. 功能概述
实现用户登录验证,支持用户名 + 密码方式
## 2. 输入规范
- 用户名:字符串,3-20 字符,支持字母数字下划线
- 密码:字符串,8-32 字符,必须包含大小写字母和数字
## 3. 处理逻辑
1. 接收登录请求
2. 验证输入格式
3. 查询数据库获取用户信息
4. 使用 bcrypt 算法验证密码(成本因子=12)
5. 生成 JWT Token(有效期 24 小时)
## 4. 输出规范
成功:
```json
{
"code": 200,
"data": {
"token": "eyJhbGc...",
"expiresAt": "2024-03-29T10:00:00Z"
}
}
失败:
{
"code": 401,
"message": "用户名或密码错误",
"retryAfter": 60 // 秒后可重试
}
```
## 5. 异常处理
- 连续失败 5 次:锁定账户 30 分钟
- 数据库异常:返回 503,记录告警日志
- 超时(>3 秒):返回 504,触发降级策略
## 6. 安全要求
- 密码必须加密传输(HTTPS)
- Token 必须签名验证
- 记录所有登录日志(包含 IP、时间、设备)
## 7. 性能指标
- P99 响应时间 < 500ms
- 支持 1000 QPS 并发
- 支持限流(单 IP 10 次/分钟)看出区别了吗?
规范的本质不是"描述功能",而是"定义契约"!
把上面的规范丢给 AI(比如我),加上这样的 Prompt:
你是一个资深架构师,请基于以上规范:
1. 设计系统架构(使用 Spring Boot + Redis + MySQL)
2. 定义 API 接口
3. 设计数据库表结构
4. 列出需要实现的类和方法
5. 识别潜在风险点AI 会给你生成一个完整的设计方案(这里省略 3000 字...)
继续 Prompt:
请将设计方案拆解为具体的开发任务,每个任务需要:
1. 明确的任务描述
2. 验收标准(必须可验证)
3. 预估工时
4. 依赖关系AI 会生成类似这样的任务列表:
## 任务清单
### Task 1: 创建数据库表
- 描述:创建 users 表,包含 id/username/password_hash 等字段
- 验收标准:执行 migration 脚本成功创建表结构
- 工时:0.5h
### Task 2: 实现密码验证服务
- 描述:使用 bcrypt 实现密码验证逻辑
- 验收标准:单元测试通过率 100%
- 工时:1h
### Task 3: 实现登录 API
- 描述:实现 POST /api/login 接口
- 验收标准:集成测试通过,P99 < 500ms
- 工时:2h
...(共 8 个任务)对每个任务说:
请实现 Task 1,要求:
1. 遵循项目代码规范
2. 包含完整的单元测试
3. 添加必要的注释AI 会生成完整的代码实现,包括:
实体类
Repository 层
Service 层
Controller 层
单元测试
集成测试
别完全相信 AI!(至少现在还不行)
你需要做的是:
代码审查:逻辑对不对?有没有安全隐患?
运行测试:单元测试、集成测试全部跑一遍
性能测试:压测看看能不能扛住 1000 QPS
如果测试失败?
把错误信息丢回给 AI:
测试失败:Expected 200 but got 500
错误日志:NullPointerException at line 45
请修复AI 会自我修复,直到测试通过!
测试都通过了?让 AI 生成部署脚本:
请生成:
1. Dockerfile
2. docker-compose.yml
3. Kubernetes 部署配置
4. CI/CD pipeline 配置(GitHub Actions)一键部署,搞定!
背景:公司有个老系统,里面全是硬编码的配置,谁都不敢动。
传统做法:
逐个文件查找硬编码
手动提取到配置文件
改完这里崩那里
搞了 3 天,最后回滚
SDD 做法:
写规范:定义哪些配置需要提取、命名规则、存储位置
让 AI 分析代码,生成重构方案
让 AI 逐个文件修改
自动化测试验证
2 小时完成,0 Bug
背景:需要接入某支付平台 API,文档 200 页,全英文。
传统做法:
花 1 天读文档
花 2 天写代码
联调发现问题,再改
来回折腾 1 周
SDD 做法:
把 API 文档丢给 AI
让 AI 生成集成规范(接口定义、错误码、重试策略)
审查规范,补充业务逻辑
AI 生成完整实现
3 小时完成,一次过联调
背景:后台管理系统,需要为 20 个数据表各 CRUD 页面。
传统做法:
复制粘贴改改
改到怀疑人生
花了 2 周
SDD 做法:
写一个通用规范模板
让 AI 根据每个表结构生成具体规范
AI 批量生成代码
1 天完成,代码质量统一

SDD 虽好,但不是万能药!
探索性需求(产品自己都不知道要啥)
"先做个 MVP 试试水"
这种直接上 AI 编程就行,别写规范
超简单功能(改个文案、调个颜色)
杀鸡焉用牛刀
紧急修复(线上 Bug,分秒必争)
先修 Bug,事后补规范
创意型工作(UI 设计、算法优化)
这种需要自由发挥,规范会限制创造力
重复性工作(批量生成代码)
系统集成(对接第三方 API)
重构优化(老代码迁移、性能优化)
合规需求(安全加固、审计日志)
文档生成(API 文档、使用手册)
判断标准:
如果这个任务是可描述、可验证、重复性的,那就适合 SDD!

GitHub Copilot + 手写规范
适合个人开发者
成本低,上手快
Cursor + Markdown 规范
内置 AI 对话
可以直接基于规范生成代码
SpecKit(GitHub 出品)
专门的 SDD 工具链
支持 Constitution → Specify → Plan → Tasks 全流程
Kiro(VS Code 插件)
Requirements → Design → Tasks 工作流
轻量级,适合小团队
Tessl Framework
支持从代码反推规范
适合老项目重构
基于 MCP 协议自建 Agent
Model-Context Protocol
可以集成公司内部工具
OpenClaw(开源项目)
支持多 Agent 协作
可以定制工作流
我的建议:
个人先用 Copilot 练手,团队再考虑 SpecKit,企业再自建

看到这儿,你可能慌了:
"规范 + AI 就能写代码,还要我干嘛?"
别慌!AI 取代的不是你,而是你的"重复劳动"!
理解业务本质
AI 不知道"为什么做这个功能"
只有你知道业务目标
判断规范质量
AI 生成的规范可能有逻辑漏洞
需要你的专业审查
处理边界情况
AI 擅长处理"正常流程"
异常场景需要你的经验
权衡技术选型
"为什么用 Redis 不用 Memcached?"
这种决策需要你的判断
跨团队沟通
和产品、测试、运维撕逼(划掉)...沟通
AI 代替不了
从"代码工人"升级为"规范设计师"!
以前:80% 时间写代码,20% 时间思考
现在:20% 时间写规范,80% 时间思考你的价值不再是"敲了多少行代码",而是:
定义了多少高质量的规范
设计了多少优雅的架构
解决了多少复杂的问题
这才是真正的"程序员进阶之路"!

别光看不练!给你个行动清单:
选一个简单的重复性任务
尝试写一份详细的规范文档
让 AI 基于规范生成代码
对比质量和效率
接到需求后,先别打开 IDE
花 30 分钟写规范
再让 AI 实现
记录时间节省了多少
在团队内分享经验
建立规范模板库
制定 SDD 工作流程
培训新人
收集 SDD 案例(成功 + 失败)
优化规范模板
引入更高效的工具
成为团队的 SDD 专家

写代码 5 年,我经历过:
初级:复制粘贴,能跑就行
中级:设计模式,代码整洁
高级:架构设计,系统优化
现在:规范驱动,AI 协作
每一次进阶,都是思维模式的升级。
SDD 不是让你"偷懒",而是让你:
从重复劳动中解放出来
把时间花在更有价值的事情上
成为真正的"软件工程师",而不是"代码搬运工"
最后送你一句话:
未来淘汰你的不是 AI,而是会用 AI 的人。
与其焦虑,不如行动!

送你一个我常用的规范模板,直接套用:
# [功能名称] 规范文档
## 1. 功能概述
- 目标:[用一句话说清楚要干啥]
- 范围:[包含什么,不包含什么]
- 用户故事:[作为 XX 用户,我希望 XX,以便 XX]
## 2. 输入规范
- 数据来源:[从哪里来]
- 数据格式:[JSON/XML/表单等]
- 验证规则:[必填、格式、范围等]
## 3. 处理逻辑
- 业务流程:[步骤 1→2→3...]
- 业务规则:[if-then 规则]
- 计算逻辑:[公式、算法]
## 4. 输出规范
- 成功响应:[格式 + 示例]
- 失败响应:[错误码 + 消息]
- 副作用:[数据库变更、通知等]
## 5. 异常处理
- 可预期异常:[如何处理]
- 不可预期异常:[降级策略]
- 重试机制:[次数、间隔]
## 6. 非功能需求
- 性能:[QPS、响应时间]
- 安全:[认证、授权、加密]
- 监控:[日志、指标、告警]
## 7. 验收标准
- 功能测试:[测试用例]
- 性能测试:[压测场景]
- 验收通过条件:[明确的 Done 标准]收藏好,明天就能用!
参考资料:
Jimmy Song《规范驱动开发(SDD)简介》
ThoughtWorks Technology Radar
GitHub SpecKit 文档
互动话题:
你用过规范驱动开发吗?有什么踩坑经验? 欢迎在评论区留言,一起交流!
如果觉得有用,欢迎点赞、在看、转发三连!
关注我,获取更多 AI 编程干货