找回密码
 立即注册
首页 业界区 安全 SDD驱动开发

SDD驱动开发

魄柜 2025-11-9 23:25:03
基于 SDD 驱动的开发方法实践测试

记录基于 AI 设计与开发工程,实践总结一套方法
程序员使用 AI 开发 Top 5 常见问题



    • 需求描述不清导致 AI 理解偏差
      程序员在给 AI 描述需求时,常常因为表达不准确或缺乏上下文,导致 AI 生成的方案与预期不符。


    • AI 生成结果不确定且难以复现
      AI 辅助生成代码常有一定的随机性,调试和二次复用时重复性较差,影响开发效率。


    • 生成代码质量参差不齐
      AI 生成的代码有时存在性能低下、结构混乱或安全隐患,需要更多人工复查与优化。


    • 缺乏领域知识导致误用 AI 建议
      开发人员如果不了解某些技术细节,容易对 AI 给出的错误或过时建议照单全收,造成隐患。


    • 隐私与安全合规问题
      部分 AI 产品或基础模型涉及数据上传和外部请求,可能存在泄漏敏感代码和数据的风险。

基于 SDD 驱动的开发方法

AI 设计与开发过程中,如何确保 AI 生成的代码结构化、可控,成为关键难题。目前业内普遍认识到,仅靠 prompt 驱动往往结果不可预测,因此逐步转向“设计驱动开发(Specification/SDD Driven Development, 简称 SDD)”模式。
“SDD 驱动开发”是当前业界最具前瞻性的解决思路。它强调以结构化设计文档为源头,驱动 AI 实现,而非直接代码生成,让整个开发过程主动可控、可复查。这也是 AI 工程化的核心趋势之一。
SDD 定义

SDD(Specification Driven Development,规范驱动开发)是一种以明确规范(Specification/Design Document)为基础,驱动 AI 自动生成设计方案、接口定义和代码实现的工程方法。其核心思想是:


    • 设计先行​:开发过程从结构化的需求和设计文档出发,文档包括领域模型、接口规范、数据结构、业务流程等;


    • AI 辅助理解规范​:将规范(如 OpenAPI、PlantUML、DSL 模型等)作为 AI 提示及约束输入,要求 AI 严格按照文档约定生成设计与代码;


    • 全过程可追踪​:每步的规范与设计可溯源、可回溯,AI 生成过程有据可查,便于人工审查与优化。

业界研究与应用现状


  • OpenSpecOpenAPI 标准逐步成为 AI 开发辅助主流输入之一,通过结构化规范描述接口和领域对象,AI 可据此自动生成高质量代码及测试用例。
  • 领域专用语言(DSL)​、PlantUML 等形式化建模工具广泛用于规范业务流程、数据库结构、微服务依赖等,AI 可以直接解析、还原为系统设计。
  • Microsoft、Google 等大型厂商在 Copilot、Duet AI 等工具中内置“规范优先”开发理念:例如先生成 Swagger/OpenAPI/JSON Schema,再让 AI 据此生成实现和文档。
  • 社区趋势​:如 LLMOps、AI 辅助软件工程领域,在研究如何提升 AI 对设计文档的理解准确率,以及规范驱动下的代码一致性问题。
  • 典型方法流程包括:

    • 起草详细的 SDD 文档;
    • 自动校验(linting/validation)规范与已生成代码是否一致;
    • 人工与 AI 共同审阅、迭代设计文档,再输出最终代码。

优点


  • 极大降低 AI 生成内容的不确定性和随意性,提高开发可控性与一致性
  • 整个过程标准化、自动化,便于团队协作和质量管理
  • 简化知识转移,方便新成员理解项目结构、编码规范
参考资料:

  • OpenSpec 官方文档
  • 微软 Copilot 官方博客
  • LLMOps 社区论文
使用 OpenSpec

在 Cursor 中安装 OpenSpec


  • 打开你的项目文件夹,并打开终端(Terminal)。
  • 使用 pnpm 进行安装(如未安装 pnpm,请先全局安装:npm i -g pnpm):
    1. pnpm add @fission-ai/openspec
    复制代码
    或者,也可以直接按照 OpenSpec 官方仓库 的说明:
    1. pnpm add openspec
    复制代码
  • 安装完成后,即可在代码中引入并使用。
OpenSpec 的基本使用方法

进入项目目录

cd \design\aitest
初始化 OpenSpec

openspec init
  1. 初始化后目录变化
  2. ├── AGENTS.md              # AI助手指令
  3. └── openspec/
  4.     ├── AGENTS.md          # OpenSpec工作流说明
  5.     ├── project.md         # 项目信息
  6.     ├── specs/             # 规范文档(当前真实状态)
  7.     └── changes/           # 变更提案(进行中的修改)
复制代码
填充项目,在对话框输入:
请使用中文完成,后续描述都使用中文
Please read openspec/project.md and help me fill it out
with details about my project, tech stack, and conventions
/openspec:proposal 需求描述

AI 生成提案,会在 OpenSpec 下生成 changes 文件,以本次需求命名。

如图所示,AI 工程过程以需求(Task)为驱动,每一项任务都会明确其业务目标、技术要点与影响范围。OpenSpec 具体分为 proposal、design、tasks 三个阶段文件——


  • proposal.md​:聚焦需求背景、改动点、兼容性等讨论;
  • design.md​:记录技术方案选型与关键设计解释;
  • tasks.md​:明确可执行的拆分任务。
    AI 协作各环节紧密衔接,如图“AI 驱动的任务分解”所示,支持需求快速迭代与高效协作。
    以下为分解的具体任务


/openspec:apply 需求 id,实现需求


由 Ai 开始开发需求,在此过程中等待

/openspec:archive 需求 id,完成归档

其他说明

更多高级用法与扩展

  • 详见:OpenSpec 官方文档和 Github

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册