首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >规范驱动开发:AI 编程的正确姿势

规范驱动开发:AI 编程的正确姿势

作者头像
阿特拉斯
发布2026-06-15 18:07:43
发布2026-06-15 18:07:43
2380
举报

给 AI 几句模糊的提示词,然后祈祷它生成可用的代码——这就是"氛围编程"。规范驱动开发,能让这个过程变得可控。

为什么需要规范驱动开发?

AI 编程工具让写代码变得简单,但也带来了新问题:

范围蔓延:做着做着就偏离了最初的目标

功能偏离:AI 自己"发挥",生成的代码不是你想要的

技术债务:快速修复堆积,代码越来越难维护

上下文腐烂:随着对话变长,AI 的输出质量逐步劣化

很多人会问:我们不是已经写了需求文档吗?

答案是:文档是静态的,开发是动态的。 文档写完就被遗忘,而规范驱动开发要求规范贯穿整个开发周期。


什么是规范驱动开发?

一句话概括:在写代码之前,先写规范;在实现过程中,持续回顾规范。

规范驱动开发不只是"先写文档",而是将规范作为开发过程的核心驱动力量。

三个层次,一个核心

规范驱动开发分三个层次,但核心只有一个:规范是活的,不是死的。

规范驱动开发的三个层次
规范驱动开发的三个层次

层次

名称

通俗理解

Level 1

spec-first

先写规范再动手

Level 2

spec-anchored

做完了也保留规范,方便维护

Level 3

spec-as-source

只改规范,不改代码

大多数团队停留在 Level 1,而且往往是"一次性规范"——写完就忘。

spec-once:规范启动项目后被遗忘
spec-once:规范启动项目后被遗忘

为项目创建一个完整的规范文档,制定设计和实现计划,然后开始实现……但在实现过程中把规范抛诸脑后。

这不是真正的规范驱动开发。规范驱动开发的真正价值在于形成持续的反馈循环

规范驱动开发作为持续反馈循环
规范驱动开发作为持续反馈循环

需求 → 规范 → 实现 → 反馈 → 更新规范 → 迭代实现 → ...


实践要点

模块化拆分

将项目分解为多个子项目,每个子项目划分明确的阶段:

每个模块独立测试、独立部署、独立迭代

每个阶段可验证,问题早发现早解决

推荐工作流:

1. 尽职调查 → 阅读文档和其他相关来源

2. 架构规划 → 设计系统架构和资源依赖

3. 分步构建 → 从小型、可测试的模块开始

规范文档的内容

一份好的规范文档应该包含:

1. 需求定义:清晰描述要解决的问题

2. 架构考量:系统架构、技术选型、关键决策

3. 实现计划:分阶段的具体步骤

4. 测试策略:每个阶段的验证方法


核心经验

1. 前期规划投入,换来高效实现

做法

结果

写几句快速提示就尽快生成

大量纠偏,甚至推倒重来

规划阶段投入时间

后续交互多为小调整,而非大改

额外收益:将项目学到的内容沉淀到文档中,成为未来的加速器。

2. 小步构建,逐步验证

前期规划让模块化变得自然。每个阶段可独立验证,问题早发现早解决。

推荐实践:堆叠式 Pull Request——创建更小、更易审查的 PR,每个都有相互依赖关系。

3. 保持灵活性,预留备选方案

新技术或工具在早期阶段可能不完善,要有 fallback 方案:

• 预期方案不工作时,知道如何切换到备选方案

• 理解底层原理,不完全依赖高层抽象

4. 安全设计要趁早

安全不是事后补丁,而是架构的一部分。后期添加安全机制往往成本更高:

• 可能需要重构已有代码

• 某些设计决策不可逆


落地实践:以 GSD 为例

理论有了,如何落地?以 GSD (Get Shit Done) 为例,看看规范驱动开发如何付诸实践。

工作流:一个完整的规范驱动闭环

讨论 → 规划 → 执行 → 验证 → 发布

每个阶段都有明确的输入输出:

阶段

输入

输出

讨论

阶段目标

CONTEXT.md(决策锁定)

规划

CONTEXT.md

PLAN.md(原子化任务)

执行

PLAN.md

代码 + SUMMARY.md

验证

代码

UAT.md(验收报告)

关键设计

1. 规范文件体系

GSD 自动维护一套规范文件,确保上下文始终新鲜:

代码语言:javascript
复制
项目愿景,始终加载

2. 原子化任务

每个计划都是独立可执行的小任务:

<task type="auto">

<name>Create login endpoint</name>

<files>src/app/api/auth/login/route.ts</files>

<action>Use jose for JWT. Validate credentials. Return httpOnly cookie.</action>

<verify>curl -X POST localhost:3000/api/auth/login returns 200</verify>

<done>Valid credentials return cookie, invalid return 401</done>

</task>

3. 新上下文执行

每个任务使用全新的上下文窗口执行,避免历史污染:

• 20 万 token 纯用于实现

• 零历史垃圾

• 质量持续稳定

4. Wave 并行执行

根据依赖关系分组执行:

Wave 1(并行): Plan 01, Plan 02

Wave 2(并行): Plan 03, Plan 04 (依赖 Wave 1)

Wave 3: Plan 05 (依赖 Wave 2)

快速开始

npx get-shit-done-cc@latest

安装后,在 Claude Code 对话框中输入:

/gsd-new-project # 提问 → 研究 → 需求 → 路线图

/gsd-discuss-phase 1 # 收集实现决策

/gsd-plan-phase 1 # 研究 + 规划 + 验证

/gsd-execute-phase 1 # 并行执行计划

/gsd-verify-work 1 # 用户验收测试

/gsd-ship 1 # 创建 PR

注意/gsd-* 是斜杠命令,在 Claude Code 等 AI 编程工具的对话框中执行,不是命令行。GSD 支持 Claude Code、Gemini CLI、Cursor、Copilot、Windsurf 等 12 个运行时。

规范驱动开发的落地保障

问题

GSD 的解法

规范写完就忘

STATE.md 跨会话记忆,始终加载

上下文腐烂

每个任务用新上下文,零历史污染

AI 随意发挥

XML 格式的原子化任务,指令精确

难以并行

Wave 分组,独立任务并行执行

无法验证

验证步骤内建在计划里


核心要点速查表

建议

说明

📋 规范先行

在写代码之前先写规范;实现过程中不断回顾规范

🧱 小步构建

将项目分解为可独立测试的小模块

🔐 安全早做

不要把安全留到最后,作为架构的一部分设计

🔄 反馈循环

需求→规范→实现→反馈→更新规范,持续迭代


写在最后

AI 编程工具发展日新月异,但工具本身不能替代工程实践。

规范驱动开发不是额外的负担,而是让 AI 编程从"碰运气"变成"可控流程"的关键方法论。

无论技术背景如何,掌握正确的方法,人人都能构建高质量的软件。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 为什么需要规范驱动开发?
  • 什么是规范驱动开发?
    • 三个层次,一个核心
  • 实践要点
    • 模块化拆分
    • 规范文档的内容
  • 核心经验
    • 1. 前期规划投入,换来高效实现
    • 2. 小步构建,逐步验证
    • 3. 保持灵活性,预留备选方案
    • 4. 安全设计要趁早
  • 落地实践:以 GSD 为例
    • 工作流:一个完整的规范驱动闭环
    • 关键设计
    • 快速开始
    • 规范驱动开发的落地保障
  • 核心要点速查表
  • 写在最后
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档