作者:张海 - 微软最有价值专家(MVP)
排版:Alan Wang
在软件开发的快速发展进程中,新的开发理念与方法不断涌现,以应对日益复杂的项目需求与高效交付的挑战。其中,“规格驱动开发” 正逐渐崭露头角,成为众多开发者关注与实践的焦点。
今天,我们就深入探究何为规格驱动开发,以及如何借助 spec-coding-mcp这一有力工具,切实将其落地实现。
什么是规格驱动开发?
规格驱动开发(Spec-Driven Development),简单来说,就是在软件开发过程中,以明确、详细的规格说明作为整个开发流程的核心驱动力。这里的规格说明,涵盖了软件系统的功能需求、性能指标、接口定义、数据格式等各个方面,它就像是建筑施工中的蓝图,为开发者们清晰地描绘出软件最终要达成的样子。
规格驱动开发的核心,是通过标准化的规格文件将模糊需求转化为可执行、可跟踪、可验收的开发流程。本质是把传统软件工程的严谨性融入 AI 编程,让开发从 “凭感觉” 的 “氛围编程”(Vibe Coding)变成 “可把控” 的工程化过程。
规格驱动开发的关键是 “Spec 文件夹”—— 每个功能模块对应一个 Spec 文件夹,包含 3 个核心文件,通过结构化文档将需求、设计、任务 “落地”:
requirements.md(需求文档)—— 用 EARS 语法(简易需求语法)编写用户故事和验收标准,避免模糊表达。
design.md(技术方案)—— 包含架构设计、流程逻辑、技术选型、潜在风险等细节。
tasks.md(任务清单)—— 将技术方案拆分为可执行的具体任务(todolist)
使用 spec-coding-mcp 实现规格驱动开发
spec-coding-mcp 中的 MCP,即 Model Context Protocol(模型上下文协议),是连接外部工具与 AI IDE 的重要桥梁。 只要你的 AI IDE 能够使用 MCP,就可以使用 spec-coding-mcp。
这里仅以 GitHub Copilot为例,介绍如何使用 spec-coding-mcp。
配置 VS Code
要让 GitHub Copilot 与 Spec-Coding-MCP 协同工作,需先在相关配置文件中设置 MCP 服务器信息。
访问 NuGet.org,搜索 SpecCodingMcpServer,可以看到“MCP Server” 选项卡:
在 Vs Code 的工作区中添加一个 .vscode/mcp.json文件, 将“MCP Server” 选项卡中的 json 复制进去保存。然后点击上面的 start:
SpecCodingMcpServer需要 .NET 10才能运行,请先确保你的本地安装了 .NET 10(https://dotnet.microsoft.com/zh-cn/download/dotnet/10.0)
启动规格驱动开发流程
功能定义
向 GitHub Copilot 发出 “开始规格编码” 的指令,随后明确具体功能,比如 “创建一个 Vue 待办应用”,并补充相关细节,确认后进入下一步。
需求收集
Copilot 会启动需求收集阶段,生成符合 EARS 格式 的需求文档,确认需求无误后进入设计阶段。
设计文档
基于已确认的需求,Copilot 会生成全面的技术架构设计文档,确认设计没问题后进入任务规划。
任务规划
Copilot 将设计和需求分解为可执行的任务列表,最终会生成包含 requirements.md、design.md 和 tasks.md 的完整 Spec 文件夹结构。
任务执行
确认任务规划后就进入具体的执行阶段。Copilot 会逐一执行任务,直到完成开发。
总结
通过上述步骤,我们借助 spec-coding-mcp以 GitHub Copilot 为例,在 Vs Code 环境下完整地展示了如何利用规格驱动开发理念进行软件开发。这种开发方式能有效提升开发的规范性、可追踪性以及团队协作效率,大大减少因需求模糊、设计变动等带来的开发成本。
如果你在开发过程中也被类似问题困扰,不妨尝试使用 spec-coding-mcp(https://github.com/feiyun0112/spec-coding-mcp)开启规格驱动开发之旅。
张海
微软最有价值专家(MVP)
开源 Web 应用框架 Gradio.NET 的创始人及核心开发者
现担任神州数码 资深架构师,专注于企业级解决方案的顶层设计与实施
微软最有价值专家(MVP)
微软最有价值专家是微软公司授予第三方技术专业人士的一个全球奖项。31年来,世界各地的技术社区领导者,因其在线上和线下的技术社区中分享专业知识和经验而获得此奖项。
MVP 是经过严格挑选的专家团队,他们代表着技术最精湛且最具智慧的人,是对社区投入极大的热情并乐于助人的专家。MVP 致力于通过演讲、论坛问答、创建网站、撰写博客、分享视频、开源项目、组织会议等方式来帮助他人,并最大程度地帮助微软技术社区用户使用 Microsoft 技术。