AI编程 - 规范驱动开发(SDD)学习 📅 发布时间:2026/7/7 5:18:46 👁️ 浏览次数: 规范驱动开发SDD完全解读一、什么是规范驱动开发SDD1.1 核心概念规范驱动开发Spec-Driven Development, SDD是2025年AI编程领域最热门的新方法论之一。简单来说它的核心理念是“先写规范再写代码” —— 让规范成为人类和AI的共同真理来源。想象一下以前我们开发软件时可能先在脑子里有个模糊的想法然后直接开始写代码。有了AI助手后很多人直接对AI说帮我做个登录功能结果AI生成的代码常常不符合预期需要反复修改。SDD说“别急先把你要什么写清楚”1.2 SDD的三个层次根据Martin Fowler网站上的这篇文章SDD实际上有三个不同的实现层次层次名称含义人是否碰代码Level 1Spec-First规范优先先写好规范然后用它来指导AI开发✅ 是Level 2Spec-Anchored规范锚定规范不仅用于开发还长期保留用于后续维护和演进✅ 是Level 3Spec-As-Source规范即源码规范是主要文件人只编辑规范代码完全由AI生成人永不碰代码❌ 否简单理解Level 1就像做菜前先看菜谱Level 2就像把菜谱保存下来下次还能用Level 3就像你只需要告诉AI我要吃红烧肉AI自己看菜谱、自己做二、三大SDD工具对比文章详细介绍了三个主流的SDD工具我们来一一了解2.1 KiroAWS出品定位最轻量级的SDD工具工作流程需求 → 设计 → 任务┌─────────────────────────────────────────────────────────────┐ │ Kiro 工作流程 │ ├─────────────────────────────────────────────────────────────┤ │ Step 1: requirements.md需求文档 │ │ ├─ 用户故事As a... I want... So that... │ │ └─ 验收标准Given... When... Then... │ │ ↓ │ │ Step 2: design.md设计文档 │ │ ├─ 技术架构 │ │ ├─ 数据模型 │ │ └─ 接口定义 │ │ ↓ │ │ Step 3: tasks.md任务文档 │ │ └─ 具体的开发任务清单 │ └─────────────────────────────────────────────────────────────┘特点基于VS Code使用Claude Sonnet 4.5适合单个任务或用户故事三个Markdown文档清晰明了有Steering方向盘概念记忆库product.md、structure.md、tech.md适用场景小到中型功能开发2.2 GitHub Spec-Kit定位最可定制的SDD工具工作流程宪法 → 规范 → 计划 → 任务循环┌─────────────────────────────────────────────────────────────┐ │ Spec-Kit 工作流程 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ ┌──────────────┐ │ │ │ Constitution │宪法 - 最高原则 │ │ │ 不变的核心规则 │ │ │ └──────┬───────┘ │ │ ↓ │ │ ╔═══════════════════════════════════════╗ │ │ ║ 循环Specify → Plan → Tasks ║ │ │ ╚═══════════════════════════════════════╝ │ │ ↓ │ │ ┌──────────────┐ │ │ │ Specify │规范阶段 │ │ │ 详细需求规范 │ │ │ └──────┬───────┘ │ │ ↓ │ │ ┌──────────────┐ │ │ │ Plan │计划阶段 │ │ │ 技术实现方案 │ │ │ └──────┬───────┘ │ │ ↓ │ │ ┌──────────────┐ │ │ │ Tasks │任务阶段 │ │ │ 具体开发任务 │ │ │ └──────────────┘ │ │ │ └─────────────────────────────────────────────────────────────┘特点命令行工具CLI兼容多种AI助手大量使用清单Checklist跟踪进度宪法概念包含不可变的高层原则每个规范创建一个分支非常详细但也很繁琐适用场景大型项目、需要严格规范的企业环境2.3 Tessl Framework定位最激进的SDD工具仍在内测核心思想规范即源码┌─────────────────────────────────────────────────────────────┐ │ Tessl 工作流程 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 人类只编辑这个 ↓ │ │ ┌─────────────────┐ │ │ │ .tessl 规范文件 │ │ │ │ 自然语言描述 │ │ │ └────────┬────────┘ │ │ │ │ │ │ AI 生成 │ │ ↓ │ │ ┌─────────────────┐ │ │ │ 代码文件.js │ │ │ │ // GENERATED │ │ │ │ // DO NOT EDIT │ ← 人类不碰这个 │ │ └─────────────────┘ │ │ │ │ 当需求变更时 │ │ 修改 .tessl 文件 → AI 重新生成代码 │ │ │ └─────────────────────────────────────────────────────────────┘特点CLI MCP服务器唯一明确追求Spec-Anchored和Spec-As-Source的工具代码文件顶部标注GENERATED FROM SPEC - DO NOT EDIT1:1映射一个规范对应一个代码文件还在实验阶段适用场景探索未来AI编程的可能性三、SDD vs 传统开发方法要理解SDD我们需要了解它的前辈们3.1 发展脉络图┌─────────────────────────────────────────────────────────────────────┐ │ 软件开发方法演进 │ ├─────────────────────────────────────────────────────────────────────┤ │ │ │ 传统开发 ───────→ TDD ───────→ BDD ───────→ MDD ───────→ SDD │ │ (随意编码) (测试优先) (行为描述) (模型驱动) (规范驱动) │ │ │ │ 1990s 2000s 2003 2000s 2025 │ │ │ └─────────────────────────────────────────────────────────────────────┘3.2 TDD测试驱动开发核心理念先写测试再写代码# TDD 示例先写测试deftest_user_login():userUser(testemail.com,password123)resultlogin_service.login(user)assertTrue(result.isSuccess())# 断言登录成功# 然后写实现代码deflogin(user):# 实现登录逻辑pass特点开发人员驱动用编程语言写测试关注代码单元的正确性技术人员专属3.3 BDD行为驱动开发核心理念用自然语言描述系统行为# BDD 示例用 Gherkin 语法 场景: 用户成功登录 Given 用户在登录页面 And 用户输入了有效的用户名test1和密码Hello123 When 用户点击登录按钮 Then 用户成功跳转到首页 场景: 密码错误 Given 用户在登录页面 And 用户输入了错误的密码 When 用户点击登录按钮 Then 显示错误消息特点产品、开发、测试共同参与用自然语言写场景关注用户行为所有人都能看懂BDD vs TDD 对比维度TDDBDD关注点代码功能实现用户行为参与者开发人员产品、开发、测试可读性编程语言技术人员专属自然语言所有人能懂范围单个代码单元端到端场景抽象层次低高3.4 MDD模型驱动开发核心理念用模型UML等描述系统自动生成代码┌─────────────────────────────────────────────┐ │ MDD 流程 │ ├─────────────────────────────────────────────┤ │ │ │ ┌──────────┐ ┌──────────┐ │ │ │ 概念模型 │ ──→ │ 设计模型 │ │ │ │ (业务需求)│ │ (UML图) │ │ │ └──────────┘ └────┬─────┘ │ │ │ │ │ ↓ │ │ ┌──────────┐ │ │ │ 代码生成 │ │ │ │ (自动) │ │ │ └────┬─────┘ │ │ │ │ │ ↓ │ │ ┌──────────┐ │ │ │ 可运行代码 │ │ │ └──────────┘ │ │ │ └─────────────────────────────────────────────┘特点用UML等图形化模型模型是核心资产自动生成代码需要专门的建模工具历史上未能在业务应用中大获成功3.5 SDD规范驱动开发核心理念用自然语言规范描述需求AI生成代码┌─────────────────────────────────────────────┐ │ SDD 流程 │ ├─────────────────────────────────────────────┤ │ │ │ ┌──────────────────────────────────────┐ │ │ │ 自然语言规范Markdown │ │ │ │ - 用户故事 │ │ │ │ - 验收标准 │ │ │ │ - 技术设计 │ │ │ └──────────────────┬───────────────────┘ │ │ │ │ │ │ AI 理解并生成 │ │ ↓ │ │ ┌──────────────────────────────────────┐ │ │ │ AI 生成代码 │ │ │ │ - 实现代码 │ │ │ │ - 测试代码 │ │ │ │ - 文档 │ │ │ └──────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────┘SDD vs MDD维度MDDSDD规范形式UML图、结构化DSL自然语言Markdown灵活性低受限于模型语言高自然语言确定性高预定义规则低LLM非确定性工具支持专门的建模工具任何文本编辑器代码生成固定模板AI智能生成四、SDD的优势与挑战4.1 优势┌─────────────────────────────────────────────────────────────┐ │ SDD 的优势 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ ✅ 提高代码质量 │ │ 约束AI输出减少幻觉和错误 │ │ 研究显示可减少40-60%的bug │ │ │ │ ✅ 减少返工 │ │ 需求清晰减少这不是我要的的情况 │ │ │ │ ✅ 更好的协作 │ │ 规范成为团队共享的真理来源 │ │ 产品、开发、测试在同一页面 │ │ │ │ ✅ 知识沉淀 │ │ 规范成为可维护的文档 │ │ 新成员快速理解系统 │ │ │ │ ✅ 可追溯性 │ │ 从需求到代码的完整链路 │ │ 变更影响分析更容易 │ │ │ └─────────────────────────────────────────────────────────────┘4.2 挑战与问题文章作者也提出了许多值得思考的问题┌─────────────────────────────────────────────────────────────┐ │ SDD 的挑战 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ ⚠️ 过度设计的风险 │ │ 小bug也要写4个用户故事、16个验收标准 │ │ 用大炮打蚊子 │ │ │ │ ⚠️ 审查负担 │ │ 要审查大量Markdown文件比审查代码还累 │ │ 内容重复、冗长 │ │ │ │ ⚠️ AI不听话 │ │ 即使有详细规范AI还是可能忽略或误解 │ │ 上下文窗口大了≠AI能正确利用所有信息 │ │ │ │ ⚠️ 虚假的控制感 │ │ 很多文件和清单 ≠ 真正的控制 │ │ 小步迭代才是王道 │ │ │ │ ⚠️ 功能规范 vs 技术规范 │ │ 很难清晰分离要什么和怎么做 │ │ 现实中经常混淆 │ │ │ │ ⚠️ 遗留系统整合 │ │ 现有代码库如何引入SDD │ │ 学习曲线陡峭 │ │ │ └─────────────────────────────────────────────────────────────┘五、实际应用场景5.1 什么时候适合用SDD场景适合度说明新项目启动⭐⭐⭐⭐⭐从0开始规范先行大型功能开发⭐⭐⭐⭐需要多方协作规范能统一认识复杂业务逻辑⭐⭐⭐⭐AI需要清晰理解业务小bug修复⭐⭐可能过度设计遗留系统维护⭐⭐整合困难快速原型⭐⭐与快速理念冲突5.2 不同规模问题的处理方式┌─────────────────────────────────────────────────────────────────┐ │ 根据问题规模选择合适的方法 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ 小任务1-2小时 │ │ ├─ 直接AI对话 / Vibe Coding │ │ └─ 快速、灵活、不需要太多规范 │ │ │ │ 中型功能1-3天 │ │ ├─ Kiro 的简化流程 │ │ └─ 需求 → 设计 → 任务三步走 │ │ │ │ 大型项目1周 │ │ ├─ Spec-Kit 完整流程 │ │ └─ 宪法 → 规范 → 计划 → 任务 │ │ │ │ 探索性/实验性 │ │ ├─ Tessl Framework │ │ └─ 规范即源码完全AI驱动 │ │ │ └─────────────────────────────────────────────────────────────────┘六、给开发者的建议6.1 如何开始尝试SDD从小处开始不要一上来就用在最复杂的项目上先在一个小功能上试试Kiro的三步流程先写规范再写代码即使是小功能也尝试先写几行需求描述你会发现思考变得更清晰保持迭代不要一次性写完美的规范小步快跑持续 refinement选择合适工具轻量级 → Kiro企业级 → Spec-Kit探索未来 → Tessl6.2 关键原则┌─────────────────────────────────────────────────────────────┐ │ SDD 黄金法则 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 1. 规范是为了沟通不是为了形式 │ │ 如果没人看再漂亮的规范也没用 │ │ │ │ 2. 适合的就是最好的 │ │ 小任务简单处理大项目严格规范 │ │ │ │ 3. AI是助手不是替代品 │ │ 你的角色不是指挥而是验证和精炼 │ │ │ │ 4. 保持怀疑 │ │ AI可能忽略规范也可能过度执行 │ │ │ │ 5. 迭代优于完美 │ │ 小步迭代比一次性大设计更可靠 │ │ │ └─────────────────────────────────────────────────────────────┘七、总结7.1 核心要点SDD不是银弹—— 它是一种工具适合某些场景不适合所有场景三个层次—— Spec-First、Spec-Anchored、Spec-As-Source根据需求选择三个工具—— Kiro轻量、Spec-Kit企业级、Tessl激进实验历史传承—— SDD继承了TDD、BDD、MDD的思想用AI时代的自然语言规范替代了传统的测试和模型谨慎乐观—— 作者提醒我们注意过度设计、审查负担、AI不听话等问题7.2 一句话总结SDD 用清晰的自然语言规范指导AI编程让要什么和怎么做分离提高代码质量和团队协作效率。7.3 未来展望SDD还处于早期阶段工具和方法都在快速演进。无论你是否现在采用SDD了解它的理念都会帮助你更好地与AI协作编程。正如文章作者所说“很多文件和模板和清单并不能保证AI会遵循所有指令。小步迭代的方法论仍然是我们保持控制的最佳方式。”参考资源原文Understanding Spec-Driven-Development: Kiro, spec-kit, and TesslKiro官网kiro.devGitHub Spec-Kitgithub.com/github/spec-kitTessl文档docs.tessl.io
LeetCode 391 完美矩形 - Swift 题解 文章目录摘要描述题解答案题解代码分析外包矩形与面积角点翻转(奇偶性)最终判断示例 1 简要过程示例测试及结果示例 1示例 2示例 3时间复杂度空间复杂度实际应用场景总结摘要 这道题要求判断若干个小矩形能否「精确覆盖」一个矩形区域:既不能… 2026/7/6 23:11:28
2026年靠谱股票配资平台评测:聚焦正规实盘验证与资金安全可查性分析 2026年靠谱股票配资平台评测:聚焦正规实盘验证与资金安全可查性分析随着A股市场在2026年迎来新的结构性机遇,股票配资作为一种工具再次进入投资者视野。然而,“靠谱”的定义已从单纯追求高杠杆,转向对“正规实盘”与“资金安全可查… 2026/7/6 16:17:58
主流的RAG算法有哪些?收藏这份RAG入门指南,轻松玩转大模型知识增强技术! RAG(检索增强生成)技术通过结合外部知识库和实时检索,有效提升大模型问答的准确率,解决幻觉和实效性问题。文章详细介绍了RAG的三大核心步骤:检索、增强、生成,以及主流的RAG算法,包括RAG Embed… 2026/7/6 1:55:00
SQL注入攻防实战:从原理到高级绕过与自动化工具防御 1. 项目概述:从“万能钥匙”到“系统后门”的SQL注入如果你是一名Web开发者,或者对网络安全稍有涉猎,那么“SQL注入”这个词对你来说一定不陌生。它就像一个流传了二十多年的“古老”传说,但时至今日,依然在各类漏洞报… 2026/7/7 5:01:50
【ROS2】 机械臂开发架构:为何“智与看”用 Docker,“真”用传统? 【ROS2】 机械臂开发架构:为何“智与看”用 Docker,“真”用传统? 在 ROS2 机械臂的开发中,我们常说“真、智、看”三大核心。但在实际工程落地时,很多开发者往往陷入“死磕环境配置”的泥潭,试图在同一个宿… 2026/7/7 5:01:50
Windows 与 Linux 平台下 Qt 应用程序图标配置与系统整合机制研究报告 在跨平台桌面应用程序开发中,图形用户界面(GUI)的视觉一致性与系统级整合度是衡量软件品质的关键指标。Qt 作为主流的跨平台 C 开发框架,虽然提供了统一的 API(如 QWindow::setIcon() 或 QGuiApplication::setWindowIc… 2026/7/7 4:59:50
TwinCAT 3 配置汇川 IS620N 伺服:5个关键 COE 启动参数详解与避坑指南 TwinCAT 3 配置汇川 IS620N 伺服:5个关键 COE 启动参数详解与避坑指南在工业自动化领域,伺服系统的稳定运行直接影响设备性能。本文将深入解析 TwinCAT 3 环境下配置汇川 IS620N 伺服的 5 个核心 COE 参数,帮助工程师规避常见陷阱。1. 基础环… 2026/7/7 4:59:50
开头就是暴击:为什么我的 FastAPI 一上生产就跪? 你有没有过这种崩溃瞬间 —— 笔记本上 uvicorn main:app --reload 跑得行云流水,接口响应快到飞起。 结果兴冲冲部署到服务器,并发量刚一上来,请求就开始排队,然后 502、504 哗啦啦地来,用户群里瞬间炸锅。别问我怎么… 2026/7/7 4:57:49
openEuler WSL 安全配置指南:证书签名、权限管理和安全最佳实践 openEuler WSL 安全配置指南:证书签名、权限管理和安全最佳实践 【免费下载链接】wsl Port openEuler to WSL (Windows Subsystem for Linux) 项目地址: https://gitcode.com/openeuler/wsl 前往项目官网免费下载:https://ar.openeuler.org/ar/ … 2026/7/7 4:55:49
Acunetix v24.8 深度解析:DAST漏洞扫描器核心原理与DevSecOps实践 1. 项目概述:Acunetix v24.8 高级版漏洞扫描器深度解析作为一名在网络安全领域摸爬滚打多年的老兵,我深知一款趁手的“兵器”对于安全测试工作意味着什么。今天要聊的,就是Web应用安全测试领域里一个响当当的名字——Acunetix。特别是其v24.8… 2026/7/7 0:01:11
如何3步搞定加密视频下载:跨平台资源嗅探与解密工具终极指南 如何3步搞定加密视频下载:跨平台资源嗅探与解密工具终极指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你是… 2026/7/7 0:03:13
Jailhouse-gui可视化管理工具:让多核处理器分区变得简单高效 Jailhouse-gui可视化管理工具:让多核处理器分区变得简单高效 【免费下载链接】Jailhouse-gui A graphical user interface (GUI) tool for configuring and managing Jailhouse, a Linux-based hypervisor for partitioning multicore processors into isolated cel… 2026/7/7 0:03:13
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/6 8:43:22
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/6 7:29:49
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/6 7:29:51