Vibe Coding 心法:像带实习生一样使用 AI 编程
2025年6月18日 · 1783 字
最近,Vibe Coding 这个词风靡大江南北。好像有了 AI,人人都可以编程,做产品,随便说一句话,一个漂亮的界面就自己长出来了。
但是,你在尝试 Vibe Coding 的时候,是不是遇到过这样的烦恼:
- 想让它优化一个页面逻辑,结果它「杀疯了」,把 state 逻辑和 props 传递全搞乱了。
- 让它写个新页面,代码看着像模像样,真要集成进项目,却发现 state 满天飞,根本没法维护,最后还是得自己吭哧吭哧重构。
- 有时候它给了一段看似干脆利落的代码,但是一运行,报了满屏幕的错。有个已有的功能不小心被它改坏了!
一通操作下来,感觉 Vibe Coding 看起来很美,用起来心累。难道 AI 编程就是个花架子?
在和 AI 结对编程中沉浸许久,在 Vibe Coding 和「古法编程」之间来回横跳多次之后,我终于发现了 AI 编程的秘诀:
我们要找准给 AI 的定位。你需要把 AI 看成一个「智商超群的实习生」,而你,是带他干活的那个资深工程师。
AI 的智商高得离谱,清北毕业,知识超群
为啥说 AI「智商超群」,主要体现在三点:
-
对于明确的算法问题,可以秒杀。 你让他现场手撕一个复杂的算法,无论是快排还是红黑树,他眼睛都不眨一下,给出的代码甚至比你在网上搜的还要优雅。
-
知识面广到没朋友。 从远古时代的编程语言设计,到最新的开发框架,再到某个犄角旮旯的 API,你问他,他基本都知道。这个知识广度,人类在清北读 50 年书大概能达到。
-
模仿能力超强。 这是最厉害的一点。你只要给他一段代码,无论是你们项目里祖传的业务流程,还是你刚写的复杂组件,他都能依葫芦画瓢,照着写出风格一致的代码,完美融入。
但是,也正因为他这么能干,我们才更容易被迷惑,太过于信任他。特别是由于 AI 强大的模仿能力,你喂给他好的范例,他就是神队友;你喂给他烂代码,他就是屎山堆砌工;或者干脆不喂,他就会开始自由发挥,后果不堪设想。
请不要忘记,AI 的本质还只是个「实习生」。为什么这么说呢?因为它有以下几样实习生的特质。
第一,它没有任何项目经验
别看 AI 智商超群,学识渊博,那都只是他在学校里学的。别忘了他还一天工作经验都没有呢,对于你的那些项目背景,他一无所知。项目用什么语言?什么框架?开发流程是什么?编码规范是什么?你得一一教给他。
更严重的是,这个实习生极度健忘,每天早上来都像第一天入职。这其实是 LLM 的"无状态性"(Stateless),你每次开新对话,它的记忆就被清空了。
既然他记不住,那我们就每次都告诉他!所以最好的办法是把项目背景、开发规范写成文档,每次都把文档塞到 AI 的上下文里。
我们完全可以搞个 prompt 模板,叫做「项目背景说明书」。每次干活前,用这个 prompt 让 AI 实习生「快速入职」。
# 项目背景说明书
## 1. 项目概览
我们正在开发一个名为 "PixelPerfect Dashboard" 的数据可视化平台。
## 2. 技术栈
- 框架: Next.js 13 (App Router)
- 语言: TypeScript
- 状态管理: Zustand
- UI/样式: Tailwind CSS
## 3. 核心开发规范
- 组件设计遵循原子化原则 (Atomic Design)。
- 数据请求必须通过自定义 Hooks (useXXX) 封装 TanStack Query 来实现。
- 全局状态(如用户信息、主题)统一由 Zustand 管理。
## 4. 本次任务
[在这里填写你本次需要它完成的具体任务]
第二,它听不懂模糊的任务
实习生再聪明,也不可能理解行业黑话和项目里陈年的业务逻辑。要让他做什么任务,你得给他完整的上下文,他才能理解。
对待 AI,就要像对待实习生一样,下达清晰、具体、已分解的指令。
糟糕的指令 👎:
"帮我写一个登录表单"
清晰的指令 👍:
"请为我们的 'PixelPerfect' 项目创建一个 React 登录表单组件 LoginForm.tsx。
- 使用 TypeScript,并为 props 定义明确的类型。
- 包含 email 和 password 两个输入框,使用 useState 管理其状态。
- 使用 Tailwind CSS 进行布局和样式设计。
- 表单提交时调用 onSubmit prop 函数,并传入 email 和 password。
- 添加一个 isLoading prop,当其为 true 时,提交按钮应被禁用并显示加载状态。"
这个实习生还有一个优点:他任劳任怨,从不抱怨。当你对他的第一版代码不满意时,不要客气,直接告诉他哪里需要修改。例如:
- 「代码里硬编码太多,要把 CSS 里的颜色提取成主题变量」
- 「你用的这个 API 不符合规范,用我们项目里的 useCustomFetch 来代替」
第三,你得为实习生的工作兜底
在公司里,实习生允许犯错,带实习生的人需要有兜底能力,对产品功能负责。
那么在 AI 做 Vibe Coding 的时候,你有没有能力对代码的效果负责呢?
要知道 AI 可能比人类实习生更为自信甚至自大,人类实习生遇到不会的可能会请教你,但是 AI 可以一本正经地编一个答案,这就是我们常说的「幻觉」。
这是血的教训:永远不要盲目地信任 AI 生成的代码!
无论是做 Code Review,还是做好每一次测试。你需要用各种方式检查 AI 生成的代码是否正确。AI 负责快速产出,而你,负责用你的经验和专业知识,确保这些产出的质量是过关的。
最后一点:把 AI 当成你的副手,与它共同成长
无论是那些认为 Vibe Coding 所向披靡,无所不能的人,还是那些认为 AI 写不出严肃代码的人,都无法驾驭 AI 编程。
真正能用好 AI 编程的人,需要深刻理解:AI 是来辅助你的,而不是来替代你的。
这位聪明的实习生,他的到来,可以把你从繁琐、重复的执行工作中解放出来,让你能更专注于需求理解、架构设计、产品演进这些真正体现一个工程师价值的地方。
而你,也会在与 AI 共驾的道路上不断成长。工具越强大,掌舵人的价值就越凸显。
那么,你想好怎么去带这位聪明的「实习生」了吗?