思维转变
从传统编码切换到 Vibe Coding,不是换一个工具,而是换一种工作方式。以下是 5 个核心思维转变。
转变 1:从"写代码"到"描述意图"
传统编码:你在脑子里构思逻辑 → 用语法表达 → 逐行敲出来。
Vibe Coding:你在脑子里构思意图 → 用自然语言描述 → AI 用语法实现。
这意味着:
- 你不再需要记住每个 API 的参数顺序——AI 知道
- 你不再需要手写 boilerplate——AI 生成
- 你必须能把意图表达得足够具体——这是新核心技能
::: bad 传统思维
我需要写一个函数,先 import axios,然后定义 async function,参数是 userId: string,返回类型是 Promise<User>,内部用 axios.get 调 API...:::
::: good Vibe 思维
在 src/api/userService.ts 中添加 getUserById 函数,调用 /api/users/:id 端点,
返回 User 类型。错误时抛出 AppError(项目自定义错误类)。
完成后运行测试确认没有引入新错误。:::
区别: 传统思维在描述怎么做,Vibe 思维在描述做什么 + 约束。
转变 2:从"一次成型"到"迭代精修"
传统编码期望一次写对。Vibe Coding 的常态是:快速生成 → 审查 → 精修。
不要害怕"AI 第一次生成不完美"——这正是设计意图。你用自然语言快速描述意图,AI 在 30 秒内生成 80% 正确的代码,你花 2 分钟审查并指出需要修正的地方,AI 再花 30 秒修正。总时间 3 分钟,比手写 15 分钟快得多。
关键心态:
- AI 输出是草稿,不是最终版
- 你的审查不是"检查有没有错",而是"确认方向对不对 + 修正细节"
- 每次修正都是一个学习机会——你看到了另一种实现方式
转变 3:从"全知全能"到"信任但验证"
传统编码中,你写了每一行代码,所以你知道每一行的作用。Vibe Coding 中,AI 写了代码,你需要验证而不是记忆。
信任但验证原则:
- 信任 AI 能生成合理的代码结构
- 验证 AI 是否遵守了你的约束
- 验证边界情况是否被处理
- 验证是否有隐含假设你不同意
你不需要逐行理解每一个细节,但你必须:
- 理解整体逻辑流
- 能判断关键决策点
- 能解释"这段代码为什么这样做"
如果你看了一段 AI 生成的代码说不出"为什么这样",那说明:
- 你的约束不够具体,AI 自行做了决策
- 或者你需要学习这个领域的知识
转变 4:从"人脑记忆"到"文件驱动"
传统编码依赖你的记忆——你记得项目结构、约定、之前的决策。
Vibe Coding 中,你与 AI 跨多个会话协作,对话历史会被压缩或丢失。因此必须把关键信息落地为文件。
| 信息类型 | 传统方式 | Vibe Coding 方式 |
|---|---|---|
| 项目约定 | 你记得 | CLAUDE.md(每次会话自动加载) |
| 架构决策 | 你记得 | decision-log.md(可追溯) |
| 任务计划 | 你记得 | plan.md / tasks.md(跨会话延续) |
| AI 学到的偏好 | 你记得 | MEMORY.md(自动维护) |
关键心态: 任何"我下次还需要知道"的信息,写进文件,不要只留在对话里。
转变 5:从"自己做"到"指挥 AI 做 + 自己审查"
这是最根本的转变。你的角色从"执行者"变为"指挥者 + 审查者"。
| 角色 | 传统编码 | Vibe Coding |
|---|---|---|
| 执行者 | 你 | AI |
| 指挥者 | 无(你自己决定怎么做) | 你(描述意图和约束) |
| 审查者 | 无(你自己写的,不用审查) | 你(审查 AI 输出) |
| 决策者 | 你 | 你(AI 提供方案,你做最终决策) |
新手 vs 老手的差异:
| 维度 | 新手 | 老手 |
|---|---|---|
| 指挥 | 描述笼统("帮我加个功能") | 描述具体("在 X 文件加 Y 功能,约束 Z") |
| 审查 | 只看表面("看起来对") | 看关键点(边界、安全、架构一致性) |
| 决策 | AI 说什么就什么 | AI 提供方案,我选最优或修正 |
| 修正 | "不对,重来" | "第 3 行的 null 处理不对,改成这样" |
转变不是放弃理解
5 个转变的核心是重新分工,不是放弃责任:
- 你不再写每一行代码——但你仍然理解每一行代码的作用
- 你不再记忆每一个 API——但你仍然能判断 AI 用的 API 是否合适
- 你不再自己修每一个 bug——但你仍然验证修复是否正确
Vibe Coding 让你从"码农"升级为"技术导演"——你不需要亲自演每一个镜头,但你需要审查每个镜头是否符合你的意图。