Skip to content

第1章 AI 编程范式与 Vibe Coding 导论

软件开发的世界正在经历一场静悄悄的革命。过去几十年里,我们习惯了从需求文档到代码实现的漫长路径,习惯了在 IDE 中逐行敲击键盘,习惯了 Stack Overflow 上反复搜索答案。但当 AI 真正理解了你的意图并直接生成可用代码时,一切都变了。这一章,我们从宏观视角审视这场变革,理解 Vibe Coding 到底意味着什么,它从何而来,又将走向何方。


1.1 软件开发范式的三代演进

回顾软件开发的历史,我们可以清晰地划分出三代编程范式。每一代的更替,本质上都是人机交互方式的根本性变革。

第一代:手工编码范式(1950s-2000s)

这是最原始也最持久的范式。程序员通过键盘将逻辑逐行写入源文件,编译器或解释器负责将代码转化为机器可执行的指令。这个阶段的核心特征是"人写代码,机器执行"。开发效率完全取决于程序员的经验、记忆力和打字速度。

bash
# 典型的第一代开发流程
vim main.c        # 手写代码
gcc -o app main.c # 编译
./app             # 运行

这一阶段的效率瓶颈显而易见:人类大脑的短期记忆容量有限,API 文档查阅占据了大量时间,而重复性的样板代码(boilerplate)消耗了本该用于核心逻辑的精力。

第二代:辅助编码范式(2010s-2023)

以 GitHub Copilot 的发布为标志,AI 开始介入编码过程。这一代范式的核心特征是"人机协作":AI 根据上下文补全代码片段,生成函数实现,但决策权仍然牢牢掌握在人类手中。IntelliSense、代码片段(snippets)、自动补全等特性是这一阶段的典型产物。

python
# Copilot 风格的辅助编码
def calculate_total(items):
    # 输入函数签名后,AI 自动补全函数体
    return sum(item["price"] * item["quantity"] for item in items)

辅助编码范式的进步是显著的,但它有明确的边界:AI 只能"续写",不能"创造"。程序员仍然需要自己拆解问题、设计架构、规划模块,AI 的角色更像一个高效的打字员。

第三代:意图驱动范式(2024-至今)

Vibe Coding 代表了第三代范式的到来。在这个阶段,程序员不再逐行编写代码,而是通过自然语言描述意图,AI 负责理解需求、拆解任务、生成代码并验证结果。核心转变是:从"告诉计算机怎么做"到"告诉计算机做什么"。

维度第一代:手工编码第二代:辅助编码第三代:意图驱动
人机关系人写机器执行人机协作人意图机器实现
交互方式键盘输入代码补全+Tab接受自然语言描述
核心技能语法记忆+算法Prompt技巧+审查架构思维+验证
效率瓶颈人的编码速度人的审查速度人的意图表达精度
错误来源逻辑错误补全偏差意图偏差

这三代范式并非完全替代关系,而是层层叠加的。即使在 Vibe Coding 时代,程序员仍然需要阅读和审查代码,甚至偶尔手写关键逻辑。但主战场已经转移。


1.2 什么是 Vibe Coding?——概念、起源与行业争议

Vibe Coding 的定义

Vibe Coding 一词由 Andrej Karpathy 在 2025 年初首次提出,他将其描述为一种"完全靠感觉编程"的方式——你不需要理解每一行代码的细节,只需要对 AI 说出你想要什么,然后接受它给出的结果。这个概念迅速在技术社区引爆讨论。

更严谨地说,Vibe Coding 是一种以自然语言意图表达为核心、以 AI 代码生成为引擎、以人类审查和验证为保障的软件开发方式。它不要求开发者逐行编写代码,而是要求开发者精确地描述需求、高效地审查输出、系统地验证结果。

起源与演变

Vibe Coding 并非凭空出现,它是多个技术趋势交汇的产物:

  • 大语言模型能力的飞跃:GPT-4、Claude 3.5 Sonnet 等模型在代码生成质量上的突破
  • AI 编程工具的成熟:Cursor、Codex、Claude Code 等工具提供了流畅的交互体验
  • 规范驱动开发(SDD)理念的兴起:为 AI 生成代码提供了结构化的约束框架

Karpathy 的原始表述带有一种"放手让 AI 去做"的潇洒感,但社区很快发现,完全不加约束的 Vibe Coding 在复杂项目中会迅速失控。于是,从"纯粹的感觉编程"到"意图驱动+规范约束"的务实版本,Vibe Coding 的内涵在不断进化。

行业争议

围绕 Vibe Coding 的争议从未停止,主要集中在三个层面:

  1. 质量控制问题:AI 生成的代码是否可靠?谁来为 bug 负责?
  2. 开发者能力退化:长期依赖 AI 生成代码,程序员的底层能力是否会萎缩?
  3. 适用边界模糊:Vibe Coding 适合什么场景?企业级项目能否用?

这些争议的核心矛盾在于:Vibe Coding 大幅降低了"写出代码"的门槛,但"写出好代码"的门槛并未降低,反而要求开发者具备更强的架构思维和验证能力。这正是 Harness Engineering 和 SDD 要解决的核心问题。


1.3 Vibe Coding 的核心特征:意图驱动与上下文感知

理解 Vibe Coding 的本质,需要抓住两个核心特征。

意图驱动(Intent-Driven)

传统编程中,开发者需要将高层意图翻译成低层代码。比如"我想做一个用户登录功能",你需要手动实现路由定义、参数校验、数据库查询、Token 生成等一系列细节。而在 Vibe Coding 模式下,你只需要表达意图:

实现一个用户登录接口,支持邮箱和手机号登录,
返回 JWT Token,有效期 24 小时

AI 会根据这段描述生成完整的实现代码。开发者的精力从"如何实现"转向"要实现什么"和"实现是否正确"。

但意图驱动也带来了新的挑战:意图的表达精度直接决定了代码质量。模糊的需求描述会产生模糊的代码实现。这也是为什么 Prompt 工程在 Vibe Coding 中如此重要——我们在第11章会深入探讨。

上下文感知(Context-Aware)

Vibe Coding 不是简单的"自然语言转代码"。AI 编程工具会实时感知项目的上下文信息:

  • 已有的代码结构和命名约定
  • 项目使用的技术栈和依赖版本
  • 数据库 Schema 和 API 接口定义
  • 团队的编码规范和架构模式
javascript
// 当项目中已有 User 模型时,AI 生成的代码会自动对齐
// 而不是凭空创造一个新的模型定义
async function getUserById(id: string): Promise<User> {
  return await this.userRepository.findById(id);
}

上下文感知能力是 AI 编程工具区别于早期代码生成工具的关键。它让 AI 生成的代码不再是孤立的代码片段,而是融入项目整体架构的有机组成部分。

但这种感知能力有其边界。当项目规模增大、上下文窗口溢出时,AI 会"遗忘"关键信息,导致生成的代码与项目风格不一致。这恰恰是 Harness Engineering 中上下文管理(Context Management)要解决的核心问题。


1.4 Vibe Coding 的难点与常见陷阱

Vibe Coding 看起来简单——说几句话就能生成代码,但实际上存在大量隐性难点,初学者很容易踩坑。

难点一:意图表达的精确性

人类习惯用模糊的自然语言交流,但 AI 对模糊指令的解读可能完全偏离你的预期。

// 模糊指令
"做一个搜索功能"

// 精确指令
"实现一个商品搜索接口,支持按名称模糊查询和价格区间筛选,
返回分页结果,每页 20 条,按相关度排序"

精确的意图表达需要开发者对需求有深度的理解,这恰恰是最难的部分。

难点二:上下文窗口的有限性

当前主流 AI 模型的上下文窗口在 128K-200K Token 之间。对于一个中大型项目,上下文很快就会被填满。当 AI 无法"看到"项目的全貌时,生成的代码质量会急剧下降。

难点三:幻觉与错误代码

AI 会自信地生成看似正确但实际有 bug 的代码,包括:

  • 调用不存在的 API 或方法
  • 使用过时的库版本
  • 逻辑正确但性能极差的实现
  • 忽略边界条件和异常处理

难点四:缺乏全局架构视角

AI 擅长生成局部代码,但不擅长进行全局架构决策。让 AI 设计一个微服务架构,它可能给出看似合理的方案,但忽略了团队的运维能力、流量规模、数据一致性等实际约束。

常见陷阱汇总

陷阱表现根因应对策略
意图漂移AI 生成的代码偏离需求指令模糊或上下文丢失精确 Prompt + SDD 规范
幻觉代码调用不存在的 API模型训练数据局限代码审查 + 验证闭环
上下文溢出代码风格不一致上下文窗口有限Harness 上下文管理
架构失控模块间耦合严重缺乏全局规划Spec 驱动 + 架构评审
过度依赖离开 AI 就无法开发技能退化定期手写核心逻辑

1.5 Vibe Coding 的开发生命周期模型

传统软件开发生命周期(SDLC)包含需求、设计、开发、测试、部署等阶段。Vibe Coding 没有改变这些阶段的本质,但彻底改变了每个阶段的执行方式。

Vibe Coding 生命周期(VC-SDLC)

阶段一:意图表达(Intent Expression)

替代传统的需求文档编写。开发者用自然语言描述需求,AI 辅助将模糊想法转化为结构化的 Spec 文档。SDD 规范在这一阶段发挥核心作用。

阶段二:规范驱动(Spec-Driven Design)

将意图转化为可执行的开发规范,包括架构设计、接口定义、数据模型等。Harness Engineering 的 Feature List 和任务拆解能力在此阶段发挥作用。

阶段三:AI 生成(AI Generation)

AI 根据 Spec 和上下文生成代码。这不是简单的代码补全,而是完整的模块实现。开发者在此阶段的核心工作是审查和微调,而非编写。

阶段四:验证闭环(Verification Loop)

对 AI 生成的代码进行系统验证,包括自动化测试、代码审查、性能检测等。Harness Engineering 的 Verification Loop 机制确保每次生成都经过充分验证。

阶段五:迭代优化(Iteration & Optimization)

根据验证结果进行迭代,AI 辅助修复 bug、优化性能、重构代码。SDD 迭代规范确保每次变更都有迹可循。

阶段六:部署交付(Deployment & Delivery)

AI 辅助完成部署方案设计、环境配置、上线验证等工作。整个生命周期形成闭环。

意图表达 → 规范驱动 → AI 生成 → 验证闭环 → 迭代优化 → 部署交付
    ↑                                                    |
    └────────────────────────────────────────────────────┘

与传统 SDLC 的对比

阶段传统 SDLCVibe Coding SDLC
需求文档驱动,人工编写意图驱动,AI 辅助生成 Spec
设计架构师主导,文档先行Spec 驱动,AI 辅助架构决策
开发人工编码为主AI 生成+人工审查
测试测试团队执行AI 自动化测试+验证闭环
部署运维团队执行AI 辅助部署+自动验收
迭代周期较长持续迭代,快速反馈

Vibe Coding 生命周期的核心变化在于:人从"执行者"变为"指挥者"和"审查者"。但这并不意味着人的角色被弱化——恰恰相反,对人的架构思维、验证能力和规范意识提出了更高的要求。

这正是后续章节要深入探讨的:Harness Engineering 提供了驾驭 AI 的工程框架,SDD 提供了规范驱动的开发方法论,两者结合才能让 Vibe Coding 从"感觉编程"进化为"可靠的工程实践"。


本章小结

概念核心要点
三代范式手工编码 → 辅助编码 → 意图驱动,每代都是人机交互方式的根本变革
Vibe Coding以自然语言意图表达为核心,AI 代码生成为引擎,人类审查验证为保障
核心特征意图驱动(精确表达需求)+ 上下文感知(融入项目全局)
难点与陷阱意图漂移、幻觉代码、上下文溢出、架构失控、过度依赖
生命周期意图表达 → 规范驱动 → AI 生成 → 验证闭环 → 迭代优化 → 部署交付

下一章,我们将全面盘点 AI 全栈开发的工具链生态,横向对比 Codex、Claude Code 等主流工具,帮你建立精准的工具选型能力。

热爱生活,喜好美食,追求未来!