AI编程范式演进:从辅助到替代,软件工程的范式转移
引言
2021年GitHub Copilot发布后,AI编程逐渐从实验性工具走向主流。在这LLM大火的这几年,AI Coding的出现,在软件开发领域又掀起了一场AI编程的进化,在这过程中我们从最初的Vibe coding,到后面的Spec Coding,再到各工具厂商提出的YOLO、SOLO等模式,开发者在软件工程中的作用产生了微妙又巨大的变化。
这些”范式”并不是学术界严格定义的标准,而是实践中总结出来的称呼。比如Andrej Karpathy的”Vibe Coding”,GitHub的”Spec-Driven Development”,Cursor的”YOLO Mode”,还有字节跳动的”Solo Mode”——本质上都是各家对”怎么用好AI写代码”这个问题的不同答案。
但如果我们仔细观察,会发现这些模式背后有一个共同的核心问题:如何在享受AI带来的效率提升的同时,保持对代码的控制?
AI编程的几个发展阶段
先简单回顾一下这几年AI编程工具的演变过程:
timeline
title AI编程工具发展阶段
2021-2022 : Autocomplete时代
: GitHub Copilot发布
: AI开始预测整块代码
2022-2024 : 对话式编程时代
: ChatGPT出现
: 开始和AI结对编程
2024-2025 : 代理式编程时代
: ClaudeCode等工具出现
: AI开始独立执行任务
未来 : 多代理协同时代
: 多个专业AI并行工作
: 开发者成为协调者
第一阶段:智能补全(2021-2022)
GitHub Copilot是这个阶段的代表。AI不再只是补全变量名,而是能根据上下文生成整段代码。开发者写注释或函数签名,AI帮你填实现。
这个阶段AI还是”被动”的,你不动它就不动。
第二阶段:对话式编程(2022-2024)
ChatGPT火了之后,大家开始在IDE里和AI聊天。你描述需求,AI给代码,你再看结果,然后继续聊。
Cursor是这阶段的代表工具。开发体验确实提升明显,但问题也来了:聊着聊着,项目就”漂”了——代码跑起来了,但没人知道为啥能跑。
第三阶段:代理式编程(2024-现在)
这是现在最前沿的方向。AI不只是回答你问题,而是能自己做事:读文件、跑命令、写测试、修bug。
Claude Code是典型代表。你给个任务,AI自己规划、执行、验证,你主要做审核和决策。
第四阶段:多代理协同(未来方向)
更进一步,不是单个AI,而是多个专业AI并行工作:一个写前端,一个写后端,一个写测试,互相协调。人从”写代码”变成”指挥AI写代码”。
四种常见的AI编程范式
在实践中,大家用AI写代码的方式大致可以分成四种。虽然名字不同,但本质上都是在回答一个问题:人和AI之间,控制权怎么分配?
graph TD
subgraph 控制权谱系
A[YOLO Mode<br/>AI全权] --> B[Vibe Coding<br/>人机平衡]
B --> C[Solo Mode<br/>人类主导]
C --> D[Spec-Driven<br/>人类定义]
end
subgraph 核心诉求
E[速度优先] -.-> A
F[探索优先] -.-> B
G[质量优先] -.-> C
H[可控优先] -.-> D
end
style A fill:#ff6b6b,stroke:#d32f2f,color:#b71c1c
style B fill:#feca57,stroke:#fbc02d,color:#f57f17
style C fill:#48dbfb,stroke:#00b8b0,color:#008b82
style D fill:#1dd1a1,stroke:#00cc7f,color:#009966
Vibe Coding:跟着感觉走
这个概念是Andrej Karpathy在2025年2月提出的。简单说就是:你大概说个想法,AI生成代码,你觉得差不多就直接用了,不怎么细看代码。
典型做法:
- 用自然语言描述模糊的需求:”做一个个人博客,简约风格”
- AI生成代码和界面
- 你看效果,不满意就说”换个颜色”、”再加个导航”
- 反复调整,直到看着顺眼
为什么会这样:
- 前期探索阶段,需求本来就不明确
- 追求速度,想快速看到效果
- 有些开发者不熟悉某个技术栈,AI写总比自己查快
问题在哪:
- 代码可能有问题,但只要能跑就算了
- 项目慢慢”漂”离原来的目标
- 后期维护时发现没人理解代码怎么写的
- 安全漏洞、性能问题被忽略
控制权分配:人机平衡,但更偏向”差不多就行”
Spec-Driven:先说清楚再写
为了解决”Vibe Coding”带来的问题,一些团队开始强调”规格驱动”——写代码前先写清楚要做什么。
典型做法:
1. 写规格文档(Specify)
- 用户是谁,要解决什么问题
- 功能需求是什么
- 成功的标准是什么
2. 做技术计划(Plan)
- 用什么技术栈
- 架构怎么设计
- 有什么约束条件
3. 分解任务(Tasks)
- 把大功能拆成小任务
- 每个任务能独立实现和测试
4. 逐个实现(Implement)
- AI按照规格和计划写代码
- 你主要做审核和调整
优点:
- 目标清晰,不容易走偏
- 代码结构相对规范
- 团队协作有共同语言
- 后期维护成本较低
控制权分配:人类定义边界,AI在边界内执行
YOLO Mode:先跑起来再说
YOLO是”You Only Live Once”的缩写,在这里指的是”让AI完全自主地做”。
典型做法:
- 给AI一个任务:”做一个待办清单应用”
- 开启YOLO模式,AI自己生成、运行、测试、修复
- 你最后看一眼,觉得能接受就直接用
Cursor的YOLO Mode就是典型:AI可以自己读写文件、运行命令、修复错误,完全不用你确认。
为什么有人用:
- 真的很快,几分钟就能出个原型
- 黑客松、演示、验证想法的时候很实用
- 某些一次性脚本,能用就行
风险在哪:
- 安全漏洞可能被忽略
- 代码质量没法保证
- 出问题时很难排查
- 千万别直接用进生产环境
控制权分配:AI几乎全权,人类只做最终审核
Solo Mode:你来负全责
Solo模式是字节跳动的Trae提出来的。核心思想是:你对项目负100%责任,AI只是帮你提高效率的工具。
典型做法:
- 核心逻辑、架构设计你自己来
- AI帮你查资料、补样板代码、写文档
- 关键决策你做,AI执行
和其他模式有什么区别:
- Vibe:你差不多就行,AI帮你猜
- Spec:先说清楚,让AI照着做
- YOLO:AI全权代理,你最后看一眼
- Solo:你全责,AI是助手
控制权分配:人类完全掌控,AI作为效率工具
核心洞察:规范化AI开发
把上面四种范式放在一起看,你会发现一个有趣的现象:它们的核心诉求都是”规范化AI开发,提高可控性”。
只是每种范式的”规范化”方式不同:
graph LR
subgraph AI编程的失控风险
A1[需求理解偏差]
A2[代码质量参差]
A3[技术债务积累]
A4[安全漏洞隐患]
end
subgraph 四种范式的应对策略
B1[Vibe: 迭代修正<br/>通过对话逐步对齐]
B2[Spec: 前置约束<br/>用规格文档定义边界]
B3[YOLO: 事后审查<br/>快速出结果再人工审核]
B4[Solo: 人工主导<br/>开发者保持完全控制]
end
A1 --> B1
A2 --> B2
A3 --> B3
A4 --> B4
style B1 fill:#feca57,stroke:#fbc02d,color:#f57f17
style B2 fill:#1dd1a1,stroke:#00cc7f,color:#009966
style B3 fill:#ff6b6b,stroke:#d32f2f,color:#b71c1c
style B4 fill:#48dbfb,stroke:#00b8b0,color:#008b82
为什么”可控性”如此重要?
因为AI编程面临一个根本矛盾:效率 vs 控制
| 方面 | 效率优先 | 控制优先 |
|---|---|---|
| 开发速度 | Vibe/YOLO更快 | Spec/Solo更慢 |
| 代码质量 | 质量不稳定 | 质量相对可控 |
| 维护成本 | 后期成本高 | 前期投入大 |
| 适用场景 | 原型、验证 | 生产、长期 |
不同的范式就是在效率和控制之间做不同的取舍。
Spec模式:从代码到规范的转变
在所有范式之中,Spec-Driven Development之所以引起越来越多关注,是因为它代表了一个深刻的转变:程序员的资产正在从”代码+设计”变成”规范+文档”。
为什么是规范?
graph TD
subgraph 传统开发
A1[需求文档] --> A2[设计文档]
A2 --> A3[代码实现]
A3 --> A4[代码是核心资产]
end
subgraph AI驱动开发
B1[规范文档<br/>作为唯一真实来源] --> B2[AI理解并执行]
B2 --> B3[代码作为输出]
B3 --> B4[规范是核心资产]
end
style A4 fill:#ff6b6b,stroke:#d32f2f,color:#b71c1c
style B1 fill:#1dd1a1,stroke:#00cc7f,color:#009966
style B4 fill:#1dd1a1,stroke:#00cc7f,color:#009966
传统开发中:
- 代码是核心资产
- 文档往往过时或缺失
- 逻辑分散在代码的各个角落
- 维护依赖开发者的记忆和代码阅读能力
Spec驱动开发中:
- 规范是核心资产
- 代码是规范的输出结果
- 业务逻辑集中在规范文档中
- 维护依赖规范的更新和演进
这个转变之所以重要,是因为AI改变了代码的”价值”:
| 时代 | 稀缺资源 | 核心资产 | 开发者的价值 |
|---|---|---|---|
| 以前 | 编码能力 | 代码 | 能写复杂代码 |
| 现在 | 需求理解 | 规范 | 能说清楚要做什么 |
GitHub Spec Kit:让规范可执行
GitHub在2025年推出的Spec Kit,是Spec驱动开发的一个重要里程碑。它的核心思想是:让规范成为”意图的唯一真实来源”。
Spec Kit的工作流程:
# 1. 初始化项目
uvx --from git+https://github.com/github/spec-kit.git specify init my-project
# 2. 生成规格文档
/specify "做一个任务管理应用,支持团队协作"
# 3. 制定技术计划
/plan "用React+Node.js,数据库用PostgreSQL"
# 4. 分解任务
/tasks "把上面说的拆成可执行的任务"
# 5. AI逐个实现
这个流程的价值在哪?
传统AI编程的困境:
模糊需求 → AI猜测 → 代码偏差 → 迭代修正 → ...
↑
不知道哪里出了问题
Spec Kit的解决方案:
清晰规格 → AI执行 → 可预测结果 → 规格迭代 → ...
↑
偏差可以被追溯
具体来说:
- 意图明确化:
- 不是”做一个任务应用”
- 而是”支持团队协作的任务应用,有权限管理、任务分配、进度追踪”
- 决策前置:
- 在写代码前确定技术栈、架构、约束
- 避免AI做出不合适的选择
- 可追溯性:
- 代码不符合预期时,回到规格文档找问题
- 而不是在代码里盲目调试
- 团队协作:
- 规格文档是团队的共同语言
- 新人加入时看规范就能理解项目
规范作为资产的价值
当规范成为核心资产时,一些有趣的事情发生了:
1. 规范是可复用的
通用规范库:
├── 用户认证规范
├── 权限管理规范
├── 数据持久化规范
└── API设计规范
新项目:
选择合适的规范组合
→ AI自动生成符合规范的代码
→ 大幅提升开发效率
2. 规范是可演进的
v1.0 规范:简单任务管理
↓ 业务需求变化
v1.1 规范:增加团队协作
↓ AI理解变更
v1.1 代码:自动生成新功能
3. 规范是可验证的
# 规格示例
spec:
feature: "任务管理"
requirements:
- 用户可以创建任务
- 任务有标题、描述、截止日期
- 任务可以标记完成
# 验证
验收标准:
✓ 创建任务的API存在
✓ 任务包含必需字段
✓ 完成状态可以切换
开发者角色的转变
当规范成为核心资产,开发者的角色也在发生变化。
从”写代码”到”定义规范”
graph TD
subgraph 传统开发者
A1[理解需求] --> A2[设计架构]
A2 --> A3[编写代码]
A3 --> A4[调试测试]
A4 --> A5[维护代码]
end
subgraph AI时代的开发者
B1[理解需求] --> B2[编写规范]
B2 --> B3[审核AI生成的代码]
B3 --> B4[迭代规范]
B4 --> B5[维护规范]
end
style A3 fill:#ff6b6b,stroke:#d32f2f,color:#b71c1c
style B3 fill:#1dd1a1,stroke:#00cc7f,color:#009966
style B5 fill:#1dd1a1,stroke:#00cc7f,color:#009966
核心能力的迁移:
| 传统核心能力 | 新核心能力 | 为什么变化 |
|---|---|---|
| 编程语言熟练度 | 需求分析能力 | AI能写代码,但不能理解需求 |
| 算法与数据结构 | 规范编写能力 | 规范质量决定代码质量 |
| 调试技能 | 代码审查能力 | AI生成的代码需要审查 |
| 框架使用经验 | 架构设计能力 | 需要为AI设定架构约束 |
价值创造的新方式
当AI能写代码时,开发者的价值从”实现”转向”定义”:
以前的价值创造:
这个功能怎么实现?
→ 选择合适的算法
→ 编写高效的代码
→ 优化性能
→ 价值 = 实现能力
现在的价值创造:
这个功能是什么?
→ 理解业务需求
→ 定义成功标准
→ 设定技术约束
→ 价值 = 定义能力
工具概览:各家的实现
不同的工具对”怎么用好AI写代码”有不同的理解,也提供了不同的工作方式。
AI原生IDE
| 工具 | 核心理念 | 特点 |
|---|---|---|
| Cursor | 对话+Agent双模式 | 日常开发体验最好 |
| Windsurf | 补全优先 | Codeium出品,补全质量高 |
| Replit Agent | 快速部署 | 从想法到上线最快 |
命令行工具
| 工具 | 核心理念 | 特点 |
|---|---|---|
| Claude Code | Agent能力强 | 复杂任务的自动化 |
| Gemini CLI | 价格便宜 | 成本敏感的场景 |
| Codex CLI | OpenAI技术栈 | GPT生态用户 |
传统IDE的AI功能
| 工具 | 核心理念 | 特点 |
|---|---|---|
| GitHub Copilot | 补全+聊天 | 最成熟的AI助手 |
| JetBrains Junie | JetBrains官方 | JetBrains IDE深度集成 |
| Firebender | Cursor式体验 | 给现有IDE加AI能力 |
浏览器工具
| 工具 | 核心理念 | 特点 |
|---|---|---|
| Bolt.new | 一键部署 | 快速原型到生产 |
| v0.dev | UI生成 | React项目的UI专家 |
软件工程的深层变革
AI编程带来的不仅是工具的变化,更是软件工程范式的根本转变。
从”代码即规范”到”规范即代码”
graph TD
subgraph "传统模式:代码即规范"
A1[需求] --> A2[代码]
A2 --> A3[文档]
A3 -.->|往往过时| A2
A2 -.->|通过阅读理解| A4[业务逻辑]
end
subgraph "AI模式:规范即代码"
B1[需求] --> B2[规范文档]
B2 --> B3[AI生成代码]
B3 --> B4[可执行结果]
B2 -.->|始终准确| B4
B2 -.->|集中管理| B5[业务逻辑]
end
style B2 fill:#1dd1a1,stroke:#00cc7f,color:#009966
style B5 fill:#1dd1a1,stroke:#00cc7f,color:#009966
传统模式的困境:
- 业务逻辑分散在代码中
- 文档更新不及时或缺失
- 新人理解项目需要大量阅读代码
- 需求变更成本高
AI模式的优势:
- 业务逻辑集中在规范中
- 规范是唯一的真实来源
- 新人看规范就能理解项目
- 需求变更成本相对可控
资产形式的转变
graph LR
subgraph 以前的资产
A1[代码库]
A2[开发文档]
A3[架构设计]
end
subgraph 现在的资产
B1[规范库]
B2[提示词工程]
B3[AI配置]
end
subgraph 未来的资产
C1[可复用的规范模板]
C2[领域本体]
C3[AI工作流]
end
style B1 fill:#1dd1a1,stroke:#00cc7f,color:#009966
style C1 fill:#48dbfb,stroke:#00b8b0,color:#008b82
style C2 fill:#48dbfb,stroke:#00b8b0,color:#008b82
style C3 fill:#48dbfb,stroke:#00b8b0,color:#008b82
这个转变意味着什么?
- 代码变成”消费品”而非”资产”
- 代码可以被AI重新生成
- 规范才是需要长期维护的资产
- 开发者的知识表达更重要
- 如何把需求说清楚变得关键
- 自然语言表达能力成为核心竞争力
- 团队协作的基础变化
- 代码审查 → 规范审查
- 代码评审 → 意图对齐
- 技术讨论 → 业务讨论
开发流程的重构
graph TD
subgraph 传统开发流程
T1[需求分析] --> T2[技术设计]
T2 --> T3[编码实现]
T3 --> T4[测试调试]
T4 --> T5[代码审查]
T5 --> T6[部署上线]
end
subgraph AI驱动流程
A1[需求分析] --> A2[编写规范]
A2 --> A3[AI生成代码]
A3 --> A4[代码审查]
A4 --> A5[规范迭代]
A5 -.->|不符合预期| A2
A5 -.->|符合预期| A6[部署上线]
end
style A2 fill:#1dd1a1,stroke:#00cc7f,color:#009966
style A5 fill:#48dbfb,stroke:#00b8b0,color:#008b82
关键变化:
- 迭代对象变了
- 以前:迭代代码
- 现在:迭代规范
- 质量保证前置
- 以前:代码审查发现问题
- 现在:规范审查预防问题
- 反馈循环缩短
- 以前:改代码 → 测试 → 发现问题
- 现在:改规范 → AI重新生成 → 验证
实践建议:怎么选择和使用
没有”最好”的范式,只有”最合适”的。下面是一些实用建议。
简单决策指南
graph TD
A[开始新任务] --> B{任务性质}
B -->|探索/原型| C[Vibe Coding]
B -->|企业/长期| D[Spec-Driven]
B -->|演示/验证| E[YOLO Mode]
B -->|核心/关键| F[Solo Mode]
C --> G{要进生产吗}
G -->|是| D
G -->|否| C
E --> H{验证成功吗}
H -->|是| D
H -->|否| I[调整或放弃]
style C fill:#feca57,stroke:#fbc02d,color:#f57f17
style D fill:#1dd1a1,stroke:#00cc7f,color:#009966
style E fill:#ff6b6b,stroke:#d32f2f,color:#b71c1c
style F fill:#48dbfb,stroke:#00b8b0,color:#008b82
组合使用策略
“Vibe探索,Spec生产”:
探索期:Vibe Coding
├── 快速出原型
├── 尝试不同方案
└── 确定方向
↓ 方向确定了
生产期:Spec-Driven
├── 把探索结果写成规范
├── 制定技术计划
└── 稳步实现
“YOLO验证,规范重构”:
验证期:YOLO Mode
├── 极速出MVP
├── 验证想法/技术
└── 确认可行
↓ 验证通过
重构期:Spec-Driven
├── 人工介入重构
├── 补充规范文档
└── 重新生成代码
使用Spec Kit的最佳实践
1. 从小做起
# 不要一开始就写大规范
# 先从小功能开始
/specify "添加用户注册功能"
/plan "使用Email+密码,需要验证"
/tasks "拆成3个小任务"
2. 迭代式改进
第一版规范:基本功能
↓ 运行后发现不足
第二版规范:补充边界情况
↓ 继续完善
第三版规范:加入异常处理
3. 保持规范的简洁
# 好的规范
spec:
feature: "用户注册"
requirements:
- Email唯一性验证
- 密码强度检查
- 发送验证邮件
# 不好的规范
spec:
feature: "用户注册"
requirements:
- (100行详细说明)
实践中的挑战与建议
Spec-driven development在实践中虽然效果明显,但也面临一些现实挑战。基于社区实践,这里总结一些常见问题和应对建议。
上下文保持问题
问题:LLM在长对话中容易”遗忘”之前的规范内容,导致后续实现偏离初始规范。
常见场景:
- 迭代多次后,AI开始”走偏”
- 新生成的代码与之前的规范不一致
- 需要反复提醒AI之前的约束
应对建议:
-
每次迭代重新加载完整规范
新会话开始: ├── 加载完整规范文档 ├── 明确当前迭代目标 └── 要求AI确认理解 -
保持规范的模块化
将大规范拆分成: ├── 核心规范(很少变动) ├── 功能规范(按功能模块) └── 技术规范(技术栈相关) 每次只加载需要的部分 -
使用多模型交叉验证
Claude生成代码 ↓ ChatGPT审查一致性 ↓ 发现偏差及时修正
人工审查的必要性
问题:AI生成的代码即使符合规范,也可能存在意想不到的问题。
需要人工审查的场景:
- 安全相关代码(认证、授权、数据处理)
- 性能关键路径
- 复杂的业务逻辑
- 第三方API集成
审查建议:
审查层次:
├── 一级审查:规范一致性
│ └── AI自动检查是否符合规范
├── 二级审查:代码质量
│ └── AI或人工检查代码结构
└── 三级审查:关键代码
└── 人工深入审查安全和逻辑
实践中的一种做法:
1. 让AI审查自己的代码(第一道防线)
2. 让另一个AI模型交叉审查(第二道防线)
3. 人工审查关键部分(最终保障)
规范的迭代与演进
问题:规范不是一成不变的,但频繁变动会导致混乱。
迭代建议:
-
版本化管理
# spec-v1.0.md spec_version: "1.0" status: "stable" description: "基础功能" # spec-v1.1.md spec_version: "1.1" based_on: "1.0" status: "draft" changes: - "增加团队协作功能" - "优化权限模型" -
变更影响分析
规范变更前: ├── AI分析影响范围 ├── 评估需要重新生成的代码 └── 决定是增量更新还是全量重新生成 -
记录决策理由
每次规范变更: ├── 记录变更原因 ├── 记录考虑的替代方案 └── 记录为什么选择当前方案
效率与质量的平衡
问题:Spec-driven前期投入大,如何在效率和质量之间找平衡?
分层策略:
graph TD
A[项目] --> B{重要程度}
B -->|核心系统| C[完整Spec流程]
B -->|一般功能| D[简化Spec流程]
B -->|实验性| E[Vibe快速验证]
C --> F[高质量代码]
D --> G[可接受代码]
E --> H[快速原型]
style C fill:#1dd1a1,stroke:#00cc7f,color:#009966
style D fill:#feca57,stroke:#fbc02d,color:#f57f17
style E fill:#ff6b6b,stroke:#d32f2f,color:#b71c1c
具体建议:
| 项目类型 | 推荐方式 | 理由 |
|---|---|---|
| 核心业务系统 | 完整Spec-Driven | 质量要求高,前期投入值得 |
| 内部工具 | 简化规范 + 人工审查 | 效率优先,质量要求相对宽松 |
| 实验性功能 | Vibe验证 + 规范重构 | 快速探索,成功后再规范化 |
| 一次性脚本 | YOLO或直接手工 | 规范化收益不大 |
团队协作中的规范
问题:团队成员对规范的理解可能不一致,导致协作问题。
协作建议:
-
建立规范模板
团队统一模板: ├── 必需部分 │ ├── 功能描述 │ ├── 验收标准 │ └── 技术约束 └── 可选部分 ├── 性能要求 ├── 安全要求 └── 兼容性说明 -
定期对齐会议
每周或每迭代: ├── 审查新规范的变更 ├── 讨论规范理解的偏差 └── 更新团队的最佳实践 -
规范的” lessons learned”
每个项目结束后: ├── 总结哪些规范写得好 ├── 总结哪些规范需要改进 └── 更新团队的规范指南
工具选择的现实考虑
问题:工具很多,但各自都有局限性,怎么选择?
现状:
- GitHub Spec Kit:功能完善,但需要适应其工作流
- Kiro:专注于Spec-driven,但还在发展中
- OpenSpec:更灵活,但需要自己组织流程
- 自建方案:可以定制,但需要维护成本
选择建议:
选择工具时考虑:
├── 团队规模和协作方式
├── 现有开发流程的兼容性
├── 学习和迁移成本
└── 工具的成熟度和稳定性
小团队:
→ 简单工具或自建方案
大团队:
→ 成熟的规范驱动工具
特殊需求:
→ 定制化解决方案
现实是:很多团队在使用混合方案——用Markdown写规范,用现有AI工具生成代码,用Git管理版本。这种”轻量级Spec-driven”在实践中也很常见。
总结
AI编程的各种范式,本质上都是在回答同一个问题:如何在享受AI效率的同时保持控制?
从Vibe的”差不多就行”到Spec的”先说清楚”,从YOLO的”让它跑”到Solo的”我来负责”,每种范式都在探索人和AI之间控制权的最优分配。
但如果我们看得更深一点,会发现一个更大的转变正在发生:程序员的资产正在从”代码”变成”规范”。
这个转变意味着:
- 开发者的核心能力从”实现”转向”定义”
- 团队的协作基础从”代码审查”转向”规范对齐”
- 软件的质量保证从”测试代码”转向”验证规范”
Spec Kit等工具的出现,标志着这个转变的开始。未来可能会出现更多工具,帮助开发者更好地编写、管理和复用规范。
但无论工具如何变化,核心是不变的:把需求说清楚的能力,正在成为程序员最重要的能力。
参考资源: - GitHub Spec Kit - OpenSpec - Spec-driven development with AI - AI Programming Paradigms: A Timeline