AI时代,为何规范编程成为关键?
过去写代码,靠的是经验、技巧和直觉。如今,多了一个变量:AI。
但很多人已察觉到一个问题:
AI生成代码速度快,却未必准确
需求模糊时,AI便开始“自由发挥”
反复修改后,代码逐渐混乱
于是,一个旧概念再度走红——规范(Spec)
它并非新事物,但在AI编程时代,已成为必备要素。
规范驱动开发(Spec-Driven Development),是在编码前,通过结构化规范明确功能、输入输出、边界与测试,再基于规范生成代码。
一句话概括:
在 OpenSpec 体系中,它构成完整闭环:
可理解为:
本质是:Spec = AI的“施工图纸”
不少人认为:“直接向AI描述需求不行吗?”
可行,但代价高昂。
传统AI编程流程为:
说一句 → AI写一段 → 修改 → 出错 → 再修
问题在于:
👉你以为表达清楚了 👉 AI以为理解到位了 👉 实际双方都错了
Spec 的作用正是:
OpenSpec中有一句核心理念:
它解决三大关键问题:
目标对齐(做什么)
边界对齐(不做什么)
验收对齐(如何判定正确)
没有Spec:
开发登录接口 → AI实现 → 忽略异常处理 → 缺少鉴权 → 还多出冗余功能
有Spec:
OpenSpec 是轻量级框架,通过标准文件结构和工作流,让 SDD 更加高效易用。
核心在于:👉将Spec转化为工程实践
它会自动生成:
第一步:提出变更(Propose)
AI生成:
proposal.md(变更原因)
tasks.md(任务清单)
design.md(设计方案)
spec.md(详细规范)
第二步:确认规范
你的任务不是写代码,而是:👉完善 spec
包括:
输入输出
业务逻辑
边界条件
测试案例
第三步:执行开发
AI依据 tasks.md 逐步编写代码
第四步:验证 & 归档
确保实现符合规范,并记录变更历史
并非所有项目都需要引入Spec,但以下情况强烈推荐:
只要你在使用:
Cursor
Copilot
Claude Code
Trae
CodeBuddy
建议采用Spec,否则你将不断“优化提示词”
多模块系统
团队协作
存在历史代码
Spec的价值:防止AI破坏现有架构
例如:
SaaS产品
后台服务
数据平台
Spec能:👉追踪每次变更 👉 支持回滚与审计
例如:
金融系统
交易模块
风控流程
Spec + 验证 = 基础保障
尽管原版 OpenSpec 功能强大,但对中文开发者而言,全英文的指令、模板和反馈信息增加了学习成本。此时可安装 OpenSpec-cn(中文版)
以“新增用户登录功能”为例
首先,通过 npm 全局安装 OpenSpec 中文版:
然后,创建SpringBoot项目,在根目录初始化:
选择当前使用的AI工具,我选用CodeBuddy Code,将在项目根目录生成 openspec/ 目录结构
查看当前活跃变更
打开交互式控制面板
CodeBuddy会调用 OpenSpec-cn,在 openspec/changes/ 下创建新变更目录 add-user-login
在CodeBuddy中输入命令
将读取 proposal.md、tasks.md 和增量 spec.md 文件,完成实现
当 tasks.md 中所有任务完成、测试通过且代码合并上线后,即可触发归档:
归档完成后:
如果说过去编程是:人写代码。那么现在正演变为:人写规范,AI写代码。真正决定差距的,不再是是否会用AI,而是是否具备规范意识。