AI Coding 新范式:基于 Spec Coding 的新玩法

随着大型语言模型在代码生成领域的突破性进展,软件开发正在经历一场深刻的范式革命。传统的、以人为主导的编码模式正逐渐被新型的人机协作模式所取代。在这一变革浪潮中,两种截然不同的AI编程范式------Vibe Coding和Spec Coding------应运而生。

本文将对比两种编程范式Vibe Coding 与 Spec Coding ,并通过 spec-kit 来尝试一个案例,体验下 AI 时代,编程的最新玩法。

一、AI Coding 分级

AI Coding 分级体系可充分借鉴自动驾驶行业的成熟理念,构建从 L1 到 L5 的渐进式能力图谱:L1-L3 对应已深度融入研发生命周期的辅助工具;L4 进入"无人区",AI 首次具备独立交付完整项目的能力,可初步替代人类工程师岗位;L5 则通过多智能体协同,端到端还原真实研发团队的完整工作流程,实现"零人类"闭环。

二、AI Coding 范式

1、Vibe Coding是一种直觉驱动的快速原型方法,通过自然语言与AI对话,以极高的速度将模糊想法转化为可运行代码,适用于个人项目、创意探索和MVP验证,但其生成的代码质量、可维护性和团队协作性较差。由 OpenAI联合创始人Andrej Karpathy在2025年初提出的"氛围编程"概念,强调"忘记代码存在,专注创意表达"的开发模式。

2、Spec Coding则是一种规范驱动的可控工程方法,强调在编码前通过结构化的文档明确需求和设计,再让AI在严格约束下生成代码,适用于企业级复杂项目、团队协作和需要长期维护的系统,虽然前期投入较高,但能保障代码质量和项目的可控性。从"Vibe"到"Spec"的演进,强调结构化与可控性,解决复杂项目中的可控性问题。

在软件开发的两种极端之间,Vibe Coding 与 Spec Coding 像两条岔路:一条凭直觉狂奔,一条按蓝图缓行。前者把键盘当画笔,先"跑起来"再谈对错;后者把需求当契约,先"画清楚"再动工。它们不是优劣之争,而是速度-可维护性天平上的左右砝码。

结论与建议

  • 选择 Vibe Coding:适合初创阶段、需求不明确、快速试错、创意探索型项目。
  • 选择 Spec Coding:适合成熟业务、需求明确、团队协作复杂、长期维护型项目。

实际项目中,往往两者结合使用,初期用Vibe Coding快速探索,后期用Spec Coding规范化管理,实现效率与质量的平衡。

三、聚焦 Spec Coding

在 Amazon Kiro IDE 中,只需把一句"给我做个会员系统,炫酷一点"扔进对话框,30 秒后你就会得到三份文件:requirements.mddesign.md、tasks.md------这是规范驱动开发(Spec-Driven Development,SDD)第一次以 IDE 原生能力的形态出现在主流工作流中。

Kiro 用静态提示词模板把模糊 Prompt 拆成角色-场景-验收,再生成上下文图与任务列表,看似完成了"从一句话到可执行计划"的魔术,却也在悄悄暴露一个老问题:业务黑话、缺失主语、隐性规则这些在人类评审里都要反复拉扯的坑,AI 同样会一脚踩空。

下文我们将聚焦 Spec Coding 这一范式,通过 Spec-Kit 来构建提示词链路与文档生成策略,看它在多大程度上能把"需求歧义"提前锁进笼子,又会把哪些新坑留给编译器之后的环节。

四、初始化

项目地址:github.com/github/spec...

1、安装uv包管理器

brew install uv

如果电脑没有安装,请先安装 brew,参考 Mac 安装: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2、构建项目

直接使用如下命令,初始化项目:

uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>

bash 复制代码
# 示例:
# uvx --from git+https://github.com/github/spec-kit.git specify init try-spec-coding

# (若已有项目)集成 Spec-Kit,则执行初始化即可
uvx --from git+https://github.com/github/spec-kit.git specify init --here

接下来,会卡在这一步:

3、准备 AI assistant

这里你可以选择 Claude,如果没有账号,想要尝试下,使用 Qwen 即可。官网地址:qwenlm.github.io/qwen-code-d...

Qwen Code 将先进的代码模型能力带入你的终端,提供交互式的 Read-Eval-Print Loop (REPL) 环境。Qwen Code 由一个客户端应用 (packages/cli) 和一个本地 server (packages/core) 组成。Qwen Code 还包含多种工具,用于执行文件系统操作、运行 shell 命令和网络请求等任务,这些工具由 packages/core 管理。

全局安装:

bash 复制代码
npm install -g @qwen-code/qwen-code

# 这里注意 Node 版本需要切换到 V20 以上,如:
nvm use v20.19.5

首次使用,输入命令 qwen,做授权校验,之后就可以使用了。

测试下是否正常工作:

4、继续项目

安装好 QWen 后,选择即可。

按照指导,下一步即可创建项目。

注意

Agent 文件夹安全性:某些 Agent 可能会在你的项目中的 Agent 文件夹内存储凭证、认证令牌或其他可识别和私有的信息。建议将 .qwen/(或其部分内容)添加到 .gitignore 中,以防止意外泄露敏感信息。

五、小试牛刀

进入我们上面初始化的项目: cd try-spec-coding

1、Constitution(原则):建立项目原则

bash 复制代码
/constitution 项目使用 React 构建,UI框架使用 Antd,如果涉及服务端请使用 Eggjs。项目严格要求测试文档,且注意前后端分离;必要的 Readme文档;

确认执行

创建完成,可以在目录下看到 constitution.md 文档:

2、Specify(规格化):创建需求说明

bash 复制代码
/specify 我需要构建一个AI资讯站点,可以通过API接口获取每日资讯,资讯内容包含:标题、时间、分类、评分、摘要、配图等信息。资讯以卡片形式展示,每行4列。页面由标题、搜索框、资讯卡片区域构成。标题需要醒目一些,赛博朋克风格。搜索框与资讯卡片联动,可以实时搜索。资讯卡片内容较多时,使用无限滚动加载,注意用户体验。整体风格暗黑色系,注意美观大方,动画效果酷炫。

等待生成,查看并修改 spec.md 文档:

3、Plan(规划):制定实施方案

bash 复制代码
/plan 使用 React 编写客户端,Eggjs 提供服务端,MongoDB数据库,JWT认证,nodemailer发送验证邮件

等待生成,查看文档:plan.md

4、Tasks(任务分解):生成可执行任务

bash 复制代码
/tasks 将上述要求和计划分解为可执行的开发任务

查看并修正:tasks.md

5、Implement(实现):执行实施

bash 复制代码
/implement 基于TDD原则实现代码

这一步还是真正开始写代码了,等待生成:

运行单元测试:

看看效果:

最终的项目目录如下:

js 复制代码
demo/

├── spec.md              # 项目规格文档

├── plan.md              # 技术实现计划

├── tasks.md             # 任务分解列表

├── tests/               # 测试文件

│   ├── unit/

│   ├── integration/

│   └── e2e/

├── app/                 # 源代码

├── docs/                # 项目文档

└── README.md           # 项目说明

注意:这里修改了部分项目个性化信息,看看最通用的结构即可。

六、总结

Spec-Kit 以"规格驱动"重塑 AI Coding,让它从"闲聊式编码助手"跃升为"结构化软件开发搭档"。其核心信条只有四句:

1、先想后写:用规格厘清需求,再落笔成码。

2、测试先行:把质量关搬进第一行代码。

3、文档即契约:一份活文档,让团队零摩擦协同。

4、持续迭代:让每一次提交都比上一次更优雅。

当然,Spec Coding 也并非银弹,它更像一把双刃剑------

1、需求一抖,规格全朽。项目里一次"小小"的 pivot,可能让前期精雕细琢的 spec 瞬间变废纸,重写成本不亚于把高速列车改航道。

2、前期"重规"能否换来后期"轻债"?当规范文档的厚度超过代码行数,而迭代速度又被市场按在地上摩擦,ROI 的问号就会像编译器警告一样越滚越大:我们到底是在投资可维护性,还是在为仪式感买单?

于是问题来了:

如果需求必然漂移,Spec Coding 该不该给"变更"本身也写一份 Spec?

当 AI 已经能把"跑起来"的 Vibe Coding 反向生成规格,我们是否还需要人类先画蓝图?

相关推荐
珑墨6 小时前
【AI产品】当下AI产品的变现模式深度分析
人工智能·ai·数据分析·产品运营·aigc·ai编程·ai写作
菜鸟学Python11 小时前
零基础用AI编程开发微信小程序-开始篇
微信小程序·小程序·ai编程
Dcs1 天前
你的 Prompt 都该重写?
人工智能·ai编程
摆烂工程师1 天前
2025年12月最新的 Google AI One Pro 1年会员教育认证通关指南
前端·后端·ai编程
青瓷看世界1 天前
鸿蒙开发时AI编程工具codeGenie与Github Copilot的区别
github·copilot·ai编程·harmonyos·codegenie
潘小安1 天前
【译】别再想着 Figma 了,AI 才是新的设计工具
前端·ai编程·weui
海阔的天空1 天前
VSCode通过continue插件免费安装AI模型实现自动编程
运维·ide·人工智能·vscode·编辑器·ai编程
HashTang1 天前
【AI 编程实战】第 1 篇:TRAE SOLO 模式 10 倍速开发商业级全栈小程序
前端·后端·ai编程
深圳蔓延科技1 天前
机器学习Scikit-learn库的使用技巧
ai编程
jthou@hotmail.com2 天前
OpenAPI 规范技术指南
ai编程·openapi