章节字数:8,000+
阅读时间:约 25 分钟
///
PART 01
开篇:一个让 90% 的人放弃的瞬间
想象这样一个场景——
你在刷短视频,看到一个博主展示了一个超酷的个人网站:炫酷的暗色主题、流畅的动画效果、还能实时显示你的 GitHub 活跃度。你心动了:「我也要做一个!」
你打开电脑,打开搜索引擎,输入「如何制作个人网站」。搜索结果给出了无数条路:HTML 是什么、CSS 怎么写、JavaScript 怎么学、服务器怎么配、域名怎么买……
你对着屏幕发呆了 10 分钟,然后关掉了浏览器。
这不是你的错。
传统编程的学习曲线,是一座让绝大多数人望而却步的高山。 你需要理解变量、循环、函数、异步、面向对象、网络协议、数据库……每一样都是一个月的学习量。而你想要做的,其实只是一个炫酷的个人主页。
这不是需求太奢侈,而是工具太落后。
///
PART 02
1.1 什么是 Vibe Coding?
1.1.1 从「手敲代码」到「说出意图」
Vibe Coding,中文可以翻译为「意会编程」——你不需要一步步告诉 AI 怎么做,只需要描述你想要什么「感觉」。
这不是一个严谨的学术定义,但它精准地捕捉了核心:你要的是结果,不是过程。
用一个更形象的比喻:
| 传统编程 | Vibe Coding |
|---|---|
| 你告诉 AI:「请打开冰箱,把大象放进去,关上门」 | 你告诉 AI:「我想要大象在里面」 |
| 你描述过程 | 你描述结果 |
| 你需要懂制冷原理 | 你只需要说「冷」 |
这听起来像魔法,但背后有深刻的范式转变。
1.1.2 Vibe Coding 的起源
「Vibe Coding」这个词最早由 Andrej Karpathy(特斯拉 AI 总监、OpenAI 创始成员)在 2024 年提出。他在一条社交媒体帖子中写道:
这个概念一提出,就在开发者社区引发了巨大反响。因为它戳中了一个痛点:编程的本质,究竟是「写代码」,还是「解决问题」?
如果你编程的目的是解决问题,那为什么非要学会写代码,才能解决问题?
1.1.3 Vibe Coding 不等于「 Prompt 编程」
很多人会把 Vibe Coding 和「Prompt 编程」混为一谈——以为就是多写几个提示词。这是对 Vibe Coding 最大的误解。
Prompt 编程关注的是「怎么问」——关键词是什么、格式怎么写、怎么套模板。它的核心假设是:你需要学会一种和 AI 沟通的「语言」。
Vibe Coding关注的是「要什么」——你不需要学会和 AI 对话,你只需要清晰地知道自己想要什么。AI 会理解你的意图,自动找到合适的实现路径。
Prompt 编程思维:「我应该怎么问 AI 才能让它写出好代码?」
Vibe Coding 思维:「我不需要问,我只需要说我想要什么。」
这不是说 Prompt 技巧不重要,而是说 Vibe Coding 的目标是用自然直觉驱动 AI,而不是用技巧套路驾驭 AI。
///
PART 03
1.2 为什么传统编程让 90% 的人放弃?
1.2.1 一个令人震惊的数据
让我们看一组数据:
- 全球约有 2600 万软件开发者(来源:Evans Data Corporation)
- 但全球有超过 45 亿互联网用户
- 这意味着:会编程的人不到全球人口的 0.5%
为什么一项本应让每个人都拥有「造物主」能力的技术,却只有极少数人能用?
答案是学习曲线。
1.2.2 传统编程的学习路径
让我们用盖房子来类比传统编程的学习路径:
第一阶段:打地基(1-3个月)
├── 变量和数据类型(什么是「int」?)
├── 条件和循环(如果…那么…重复)
├── 函数和方法(把一堆指令打包)
└── 调试基础(为什么报错了???)
第二阶段:砌砖墙(3-6个月)
├── 面向对象编程(什么是「类」?)
├── 继承和多态(父类和子类是什么关系?)
├── 接口和抽象(为什么要这么绕?)
└── 设计模式(GOF 23 种,看懂 3 种算你赢)
第三阶段:装修(6-12个月)
├── 数据库(SQL 是什么鬼?)
├── 网络协议(HTTP/TCP/UDP……)
├── API 设计(RESTful 是什么风格?)
└── 性能优化(为什么我的代码跑这么慢?)
第四阶段:成为合格的「建筑师」(1-3年)
├── 系统设计(大项目怎么组织?)
├── 架构模式(微服务?分布式?)
├── 安全加固(XSS、SQL注入是什么?)
└── 团队协作(Git 怎么用?PR 是什么?)
这个路径走完,顺利的话需要 2-3 年,勤奋的话需要 5 年,更多的人走了一半就放弃了。
而他们最初的目标,可能只是想做一个展示个人作品集的网页。
1.2.3 三个让新手崩溃的瞬间
第一个崩溃:「这语法为什么这么严格?」
# 你写的
print "Hello, World!"
# Python 报错
File "test.py", line 1
print "Hello, World!"
^
SyntaxError: Missing parentheses in call to 'print'
第二个崩溃:「为什么它不按我说的做?」
// 你以为的
let result = 10 / 3;
console.log(result); // 输出:3.333333...?
// 实际输出
3.3333333333333335
第三个崩溃:「这报错信息是什么意思?」
Error: Cannot read property 'map' of undefined
at Array.reduce (node_modules/lodash/lodash.js:1434:28)
at Promise.then (app/services/user.js:45:18)
at processTicksAndRejections (internal/process/task_queues:95:5)
这些问题对于有经验的开发者来说是家常便饭,但对于刚入门的人来说,每一个都足以让人怀疑人生。
///
PART 04
1.3 AI 时代的编程本质:描述结果 > 描述过程
1.3.1 从「翻译官」到「指挥官」
传统编程模式下,程序员是一个「翻译官」:
人类需求 → 程序员翻译 → 代码 → 计算机执行
你需要把自己的想法「翻译」成计算机能理解的语言。这个翻译过程需要掌握:
- 语法规则
- 数据结构
- 算法逻辑
- 系统架构
Vibe Coding 模式下,程序员变成了「指挥官」:
人类需求 → 描述结果 → AI 执行 → 计算机执行
你只需要描述你想要什么,AI 会自动完成「翻译」的工作。
这不是说完全不需要理解技术——你仍然需要知道:
- 你的需求是否合理
- AI 输出的结果是否正确
- 如何调整指令让结果更接近预期
但这些理解,和「写代码」完全是两个维度的能力。
1.3.2 一个真实的对比
让我们对比两种模式下,实现「用户注册功能」的差异:
传统编程模式:
你需要:
1. 设计数据库表(用户表、角色表、关联表)
2. 写 SQL 建表语句
3. 写后端 API(验证输入、加密密码、存储数据)
4. 写前端表单(HTML + CSS + JS)
5. 写前后端联调(API 对接、CORS 问题、Token 处理)
6. 处理各种边界情况(重复注册、密码强度、邮箱格式)
总耗时:3-7天(取决于经验)
前提条件:掌握 SQL、后端语言、前端技术、网络协议
Vibe Coding 模式:
你只需要说:
「帮我做一个用户注册功能,包含用户名、邮箱、密码字段,密码要加密存储,
有邮箱格式验证和密码强度检查,注册成功后发送确认邮件。」
总耗时:10-30分钟(取决于 AI 工具)
前提条件:会打字、会说人话
这个对比不是要说 Vibe Coding 可以完全取代传统编程,而是要说明:当工具进化后,同样的问题,门槛大幅降低了。
1.3.3 Vibe Coding 的边界
当然,Vibe Coding 不是万能的。以下场景中,传统编程仍然不可替代:
| 场景 | Vibe Coding 能做吗 | 说明 |
|---|---|---|
| 快速原型搭建 | ✅ 非常适合 | AI 生成代码,改改就能用 |
| 简单脚本自动化 | ✅ 非常适合 | 「帮我写个批量重命名的脚本」 |
| 陌生领域的探索性开发 | ✅ 适合 | 「我不懂 Python,帮我写个抓取网页的工具」 |
| 复杂系统的架构设计 | ⚠️ 需要人工指导 | AI 可以辅助,但核心设计仍需人类 |
| 性能敏感的底层优化 | ⚠️ 需要人工审核 | AI 可能生成次优解 |
| 安全关键的系统 | ⚠️ 需要人工审查 | AI 代码可能存在安全漏洞 |
| 完全没有领域的概念 | ❌ 不适合 | 「帮我写个操作系统」——你得先了解 OS |
核心判断标准是:你能描述清楚你想要什么。
如果你能清晰地描述需求和期望结果,Vibe Coding 可以大幅提升效率。如果你连自己要什么都不知道,AI 也帮不了你——这是 Vibe Coding 的局限性,也是人类思维的价值所在。
///
PART 05
1.4 用「点外卖」理解 Vibe Coding 的本质
1.4.1 传统编程 vs Vibe Coding = 自己做饭 vs 点外卖
让我们用一个每个人都熟悉的场景来类比:做饭。
传统编程 = 自己做饭:
1. 去菜市场买菜(安装开发环境、配置依赖)
2. 了解食材特性(学习语言语法、数据结构)
3. 研究菜谱(阅读文档、搜索解决方案)
4. 处理食材(写代码逻辑)
5. 控制火候(调试、优化)
6. 摆盘上桌(前端展示)
问题:每一步都需要学习。你想喝一碗鸡蛋汤,你得先学会「什么是锅」。
Vibe Coding = 点外卖:
1. 打开外卖 App(打开 AI 工具)
2. 搜索「鸡蛋汤」(描述你想要的东西)
3. 选择店铺和规格(选择 AI 模型和工具)
4. 下单(提交需求)
5. 等待送达(AI 执行)
6. 开吃(使用结果)
你完全不需要会做饭,但你得知道自己想吃什么。
1.4.2 点外卖也有「高级玩法」
当然,点外卖也有技巧:
新手模式:
用户:「来一份宫保鸡丁」
结果:得到一份标准外卖,还行,但可能不是最满意
进阶模式:
用户:「要少油、不要花生、微辣、加上米饭换成糙米饭,再加一份酸辣汤」
结果:得到一份更贴合口味的订单
高手模式:
用户:「我们 5 个人,3 个不吃辣,1 个素食主义,1 个只吃川菜,
预算人均 80,要商务宴请级别,发票抬头是 XX 公司」
结果:AI 帮你筛选、自动组合订单、管理配送时间
Vibe Coding 也是如此——你描述得越精准,得到的结果越符合预期。
但关键区别在于:即使你是新手,AI 也能帮你做出「能吃」的东西。 在传统编程里,「新手」做出来的东西可能是生的、糊的、甚至厨房着火。
1.4.3 外卖不能替代所有厨师场景
但有些事情,外卖永远做不到:
| 场景 | 外卖能解决吗 | 类比的编程场景 |
|---|---|---|
| 半夜 3 点突然饿了 | ❌ 店都关了 | 极端特殊需求,没有现成方案 |
| 精确控制食材来源和加工方式 | ❌ 你不知道厨房发生了什么 | 高安全要求的代码,需要审计每行 |
| 研究新菜谱、发明新菜系 | ❌ 只能选现有的 | 探索新技术、研究新架构 |
| 有食材但不想浪费 | ❌ 浪费的是别人的食材 | 代码性能极致优化 |
Vibe Coding 不是让所有人都不写代码,而是让「用代码解决问题」变得人人可及。
///
PART 06
1.5 OpenCode:Vibe Coding 的代表作
1.5.1 为什么选择 OpenCode?
在众多 AI 编程工具中(Claude Code、Cursor、GitHub Copilot、OpenAI Codex 等),本书选择 OpenCode 作为主要讲解工具,原因有三:
第一,它是完全开源的。
仓库:github.com/anomalyco/opencode
Stars:12.3k
状态:已归档至 charmbracelet/crush 项目
语言:Go(基于 Bubble Tea TUI 框架)
这意味着你可以自由查看、修改、贡献代码,没有任何商业限制。
第二,它代表了 Vibe Coding 的核心理念。
OpenCode 的设计哲学是:让 AI 成为编程的主角,而不是辅助工具。 它的 TUI 界面、Session 管理、多模型支持,都围绕「AI First」这个理念设计。
第三,它的生态系统和本书内容高度契合。
本书的核心内容——Everything Claude Code(ECC)生态、Superpowers 工作流、Context Mode——都可以在 OpenCode 中无缝使用。学会 OpenCode,等于学会了这一整套 Vibe Coding 方法论。
1.5.2 OpenCode 的核心特性
OpenCode
├── 交互式 TUI(Bubble Tea 框架)—— 终端里的图形界面
├── 多 AI Provider 支持 —— OpenAI / Anthropic / Google / Azure / Bedrock / Groq / OpenRouter
├── Session 管理 —— SQLite 持久化,断点续接
├── 工具执行 —— bash / 文件编辑 / 搜索
├── Vim-like 编辑器 —— 键盘流操作
├── LSP 集成 —— 代码补全和语法检查
├── 文件变更追踪 —— 每次修改都有记录
├── 外部编辑器支持 —— 打开 VS Code、Neovim 等
└── 命名参数自定义命令 —— 自然语言即命令
1.5.3 安装 OpenCode
方式一:一键安装(推荐)
curl -fsSL https://opencode.ai/install | bash
方式二:Homebrew(macOS/Linux)
brew install opencode-ai/tap/opencode
方式三:Go 安装
go install github.com/opencode-ai/opencode@latest
方式四:AUR(Arch Linux)
yay -S opencode-ai-bin
安装完成后,运行 opencode --version 验证:
$ opencode --version
opencode version 0.x.x
1.5.4 OpenCode vs 其他工具对比
| 维度 | OpenCode | Claude Code | Cursor | GitHub Copilot |
|---|---|---|---|---|
| 界面 | TUI(终端) | CLI / IDE 集成 | GUI(IDE 插件) | IDE 插件 |
| 开源 | ✅ 完全开源 | ❌ 闭源 | ❌ 闭源 | ❌ 闭源 |
| 支持模型 | 多模型 | 主要 Claude | 主要 GPT | GPT |
| Session 持久化 | ✅ SQLite | ✅ | ⚠️ 有限 | ❌ |
| 超级插件 | Superpowers | ✅ | ⚠️ 有限 | ❌ |
| 中文支持 | ✅ | ✅ | ✅ | ✅ |
| 适合人群 | 开发者、极客 | 深度用户 | 偏好 GUI | 日常辅助 |
1.5.5 OpenCode 界面一览
OpenCode 使用 Bubble Tea 框架构建 TUI 界面。以下是核心界面元素:
┌─────────────────────────────────────────────────────────┐
│ Session: my-project [Model: Sonnet] │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────────────────────────────────────┐ │
│ │ Welcome to OpenCode! │ │
│ │ │ │
│ │ What would you like to build today? │ │
│ │ │ │
│ │ • Describe your goal in natural language │ │
│ │ • Press Tab to switch to Plan mode │ │
│ │ • Press @ to invoke an Agent │ │
│ │ • Type /help for available commands │ │
│ └──────────────────────────────────────────────────┘ │
│ │
├─────────────────────────────────────────────────────────┤
│ [Plan] [Build] [Explore] │ Tokens: 2,341 │ Session: ● │
└─────────────────────────────────────────────────────────┘
关键元素解读:
| 元素 | 说明 |
|---|---|
Session: my-project | 当前会话名称,Session 数据持久化存储 |
Model: Sonnet | 当前使用的 AI 模型 |
[Plan] [Build] [Explore] | Tab 切换模式——Plan 分析、Build 执行、Explore 探索 |
Tokens: 2,341 | 当前上下文消耗 |
Session: ● | 连接状态指示灯 |
1.5.6 第一个 Vibe Coding 体验
安装完成后,让我们用 OpenCode 体验一下 Vibe Coding 的感觉:
场景:我想做一个「待办事项」网页应用
你输入:
「帮我做一个待办事项应用,包含添加、完成删除、筛选功能,
使用暗色主题,有添加动画。」
OpenCode 帮你:
1. 分析需求,生成技术方案
2. 创建 HTML/CSS/JS 文件
3. 实现完整功能
4. 自动打开浏览器预览
这就是 Vibe Coding——你描述「要什么」,OpenCode 搞定「怎么做」。
///
PART 07
1.6 三个时代:手写代码 → Copilot 辅助 → Vibe Coding
1.6.1 编程进化史概览
1960-2020 2021-2024 2025-
│ │ │
▼ ▼ ▼
┌──────┐ ┌────────┐ ┌───────────┐
│手写代码│ │Copilot │ │Vibe Coding│
│ 1.0 │ │ 2.0 │ │ 3.0 │
└──────┘ └────────┘ └───────────┘
「翻译官」 「补全工具」 「执行者」
1.6.2 时代1:手写代码(1960-2020)
特点:人类是主角,机器是工具。
程序员 → 写代码 → 编译器 → 程序
↑
100% 手工
代表工具: 文本编辑器(Vim、Emacs)→ IDE(Eclipse、IntelliJ)→ VS Code
优势: 完全控制,代码质量有保障
劣势: 效率低,学习曲线陡峭
1.6.3 时代2:Copilot 辅助(2021-2024)
特点:AI 是补全工具,人类仍然是主角。
程序员 → 写一部分 → AI 补全剩余 → 程序员审核 → 程序
↑
AI 辅助完成
代表工具: GitHub Copilot、Tabnine
优势: 代码补全快,减少重复劳动
劣势: 补全质量不稳定,仍需人类主导
1.6.4 时代3:Vibe Coding(2025-)
特点:AI 是执行者,人类是指挥官。
人类 → 描述需求 → AI 执行 → 人类验收 → 程序
↑
自然语言驱动
代表工具: OpenCode、Claude Code
优势: 门槛大幅降低,效率指数级提升
劣势: 需要人类判断结果质量
1.6.5 你现在处于哪个时代?
| 问题 | 你的答案 | 所处时代 |
|---|---|---|
| 你写代码时,主要时间花在? | A. 敲键盘 B. 调试 C. 思考 | A=手写时代 B/C=过渡 |
| 遇到陌生 API,你会? | A. 看文档 B. 搜 Google C. 直接问 AI | A=手写 B=过渡 C=Vibe |
| 一个新功能实现,你通常? | A. 从零写 B. 复制粘贴改 C. 描述给 AI | A=手写 B=过渡 C=Vibe |
| 你的代码中,AI 写的占比? | A. 10% B. 30% C. 70%+ | A=手写 B=过渡 C=Vibe |
如果你的答案以 C 为主——恭喜,你已经是 Vibe Coding 时代的先行者。
如果以 A 为主——别担心,这本书就是为你准备的。
///
PART 08
1.7 本章小结
核心知识点
┌─────────────────────────────────────────────────────────┐
│ 第1章 知识要点 │
├─────────────────────────────────────────────────────────┤
│ ✅ Vibe Coding = 用自然语言描述结果,AI 负责实现过程 │
│ ✅ 传统编程让 90% 的人放弃,因为门槛太高 │
│ ✅ AI 时代:描述结果 > 描述过程(翻译官 → 指挥官) │
│ ✅ OpenCode 是 Vibe Coding 的开源代表作 │
│ ✅ 点外卖类比:Vibe Coding 让「用代码解决问题」人人可及 │
│ ✅ 编程进化:手写(1960) → Copilot(2021) → Vibe(2025) │
└─────────────────────────────────────────────────────────┘
关键术语
| 术语 | 定义 |
|---|---|
| Vibe Coding | 意会编程——用自然语言描述需求,AI 自动实现 |
| Prompt 编程 | 关注「怎么问」AI 的技巧派 |
| Harness | AI 编程工具的运行时外壳(如 OpenCode) |
| 上下文窗口 | AI 一次性能看到的信息量(后续章节详解) |
| Session | 一次完整的对话会话,可持久化存储 |
行动建议
立即行动(5 分钟):
1. 安装 OpenCode:
curl -fsSL https://opencode.ai/install | bash
2. 运行 opencode --version 验证安装
3. 输入你的第一个 Vibe Coding 指令:
「帮我写一个猜数字游戏,1-100,有次数限制」
下一章预告:
>
///
PART 09
附录:Vibe Coding 自测问卷
测一测你对 Vibe Coding 的理解程度(无标准答案):
Q1:你想要一个自动备份文件的脚本,Vibe Coding 的指令应该是:
A. 「用 Python 写一个脚本,读取 config.json 中的文件列表,
遍历每个文件,用 shutil.copy2 复制到 backup 文件夹,
然后打印复制结果」
B. 「帮我写一个自动备份文件的脚本,配置写在 config.json 里,
备份到 backup 文件夹」
C. 「帮我」
Q2:以下哪个场景不适合用 Vibe Coding?
A. 快速生成一个网页原型
B. 写一个批量重命名文件的脚本
C. 完全没有技术背景,直接要求 AI 「写一个能打败 AlphaGo 的程序」
D. 写一个 Python 爬虫抓取网页数据
Q3:Vibe Coding 和传统编程的核心区别是?
A. Vibe Coding 用自然语言,传统编程用代码
B. Vibe Coding 效率更高,质量更好
C. Vibe Coding 可以完全不需要人类参与
D. Vibe Coding 是 Prompt 编程的另一个名字
参考答案: Q1=B(描述结果而非过程)、Q2=C(需求本身不合理)、Q3=A(核心在描述方式)
///
*本章完。第2章:为什么 AI 总是「听不懂人话」?*
THANKS FOR READING
🦐 龙虾 · OpenClaw 技术分享
夜雨聆风