引作者背景:为什么这个话题对 Eric 不是抽象问题

Eric 在演讲开头讲了个细节:去年他骑车上班把手摔骨折了,整整两个月没法自己敲代码——所有代码都是 Claude 写的。"如何让 Agent 真的能替我把活干完"对他来说不是抽象问题,是当时的吃饭问题。这次演讲就是他这两年的方法论提炼。

核心洞察:vibe coding 的本质不是"让 AI 写代码",而是忘掉代码的存在,只盯产品行为——但这需要先建立一套可验证的抽象层。

一什么才算 vibe coding?

Eric 不同意这个误区:"只要大部分代码是 AI 生成的,就是 vibe coding。" 用 Cursor / Copilot 把代码大部分让 AI 写——你还在紧反馈循环里:每段都看、每段都改。这不是 vibe coding。

他坚持引用 Andrej Karpathy 的原始定义:

"Fully give into the vibes, embrace exponentials, and forget that the code even exists."

关键短语:forget that the code even exists——忘掉代码本身的存在。

为什么 vibe coding 火,又为什么风评两极

  • 正面:让非工程师也能造软件——这是 Cursor / Copilot 都没能解锁的人群;
  • 负面:第一次写代码的人造出来的东西全是漏洞——API key 泄露、订阅绕过、数据库里乱写垃圾数据……

所以"vibe coding 在 prod 用"听上去像伪命题,但 Eric 说:我们必须严肃想这个事。

二为什么必须现在严肃想 vibe coding:指数曲线

AI 能独立完成的任务长度大约每 7 个月翻一倍。

今天 Claude 一次能做 1 小时的活——你可以全看完,没问题。

但下一年它能产出一整天的工作量;再下一年一整周。你不可能用紧反馈方式跟得上。

那时如果你还坚持「不把每行代码都过一遍我绝不放手」——你就成了瓶颈。

编译器类比

早期编译器刚出来的时候,工程师们也不信任它,会去读编译器生成的汇编,确认是不是和他们自己写的一样。这个习惯没办法 scale。

后来大家放弃了。今天你我都还知道有汇编这回事,但我们不读它,照样能把软件做好。

但要小心定义:忘掉代码,不能忘掉产品

"Forget that the code exists, but not that the product exists."

把"产品行为是否正确"这件事接得住——这是放手 vibe coding 的前提。

三怎么管理你不懂的东西?老问题了

"放手让别人/某个系统替你干活"这件事,人类社会练了几千年。

谁管什么自己不亲手做怎么管
CTO某专业领域的实现细节验收测试——不读代码也能验是否过线
PM工程团队怎么写代码试用产品——直接当用户用,看体验对不对
CEO财务总账抽查关键数字 + 切片——对几个能验证的数自己心里有底
结论:管理"自己不懂深处的事情"是几千年来管理学的常态。只有软件工程师特别不习惯——因为我们到目前为止都是纯 IC(个人贡献者),习惯把整栈嚼透。做生产级 vibe coding 的第一步,就是放下这个执念。

四有一件事今天还不能靠抽象层验证:技术债

几乎所有"我不懂细节但能验证"的领域(财务、产品、运维),都能找到验收手段。

但技术债不行。 想知道一段代码会不会把未来扩展卡死、有没有埋暗坑——目前唯一靠谱的方法还是有人读这段代码。

怎么办?答案是只在"不重要"的代码上放手 vibe code。

五策略:只在 leaf nodes 上 vibe code

把代码库当一棵树看——只在叶节点放手 vibe code:

位置适不适合 vibe code理由
核心骨架 / 关键抽象不适合:保持人类深度审阅改这里会牵动一切,技术债代价高
叶节点:末端 feature、配套脚本、UI 细节适合几乎没有东西依赖它,未来不太可能再改
随着模型越来越好(Claude 4 比 3.7 明显成熟),"叶节点"的边界会向上推——未来可以放手 vibe 的位置会越多。

六姿势 1:Be Claude's PM——做 Claude 的产品经理

"Ask not what Claude can do for you—ask what you can do for Claude."

要把自己当成 Claude 的 PM 而不是 Claude 的程序员。

给 Claude 的"入职 onboarding"

类比:一个工程师入职第一天,你直接说"实现某 feature"——他不可能交得出来。你得:

  1. 带他过一遍代码库;
  2. 给他需求 / 约束;
  3. 告诉他风格、模式、已有同类例子。

给 Claude 也一样。

Eric 的实际工作流——往往花 15~20 分钟准备 prompt,但准备完之后 Claude 一次性写对的概率非常高。

谁不适合做生产级 vibe coding

完全不懂技术、不能问对问题的人,不应该全自动 vibe coding 一个生产业务。他们当不了 Claude 的 PM,整个流程就会失控。

这不是劝退非技术人员——他们可以做游戏、做 demo、做艺术品;但真正上线服务、有用户数据的系统,需要会问对问题的人在旁边把舵。

七案例:22,000 行 RL PR 怎么用 vibe coding 合进去

Eric 拿出了 GitHub 上的截图——一次 22k 行的真实 PR,合进了 Anthropic 生产环境的强化学习代码库。这是一个真实案例,不是概念演示。

步骤做了什么命中本演讲的哪条原则
1. 数天的 PM 工作工程师手工把需求、约束、关键决策捋清楚,做 plan给 Claude 完整 onboarding
2. 改动集中在叶节点主要落在"不会被频繁迭代"的部分leaf-node 策略
3. 核心扩展点人工 review真正需要将来扩展的少量骨架,人逐行读不在骨架上 vibe
4. 压力测试长时间跑稳定性测试找到一个可验证的抽象层(稳定性指标)
5. 设计可观察的输入输出整个系统在边界处就能验证对错不读代码也能验

结果不只是"省时间"

当一个原本两周的项目变成一天,我们意识到——之前那种"两周的项目",现在我们会主动多做几个。

软件的边际成本下来了,能消费的软件多了。

这是 vibe coding 的真正回报:不是省人力,是让你敢做更大的事。

八放手的四条收纳:闭环原则

#一句话怎么落地
1做 Claude 的 PM提需求、约束、上下文,先 plan 再 execute
2leaf node 上 vibe让技术债被装进"反正不再变"的角落
3找一个能验证的抽象验收测试、压力测试、可观察 IO;技术债无法验时坚持读
4拥抱指数现在不一定要 vibe,但别养成"不读完每行不放手"的肌肉记忆,那是未来的瓶颈

九Q&A 精华

Q1:vibe coding 时代,新人怎么学?

Eric 的回答:

  • 悲观面:你确实不会经历那种"硬核挣扎",就像他大学教授当年抱怨"现在的程序员不会手写汇编了";
  • 乐观面:你身边永远有一个 pair programmer 24/7 待命。看到不熟悉的库可以当场问 Claude:"这是啥?为什么用它不用别的?" 学得比以前快得多。
  • 更高维度:以前一个架构决定要 2 年才能验对错,未来可能 6 个月就出结果——愿意学的人能在同样日历时间里多走 4 倍的循环。
会被淘汰的是懒人——不是新人。

Q2:plan 要写多详细?是不是要写完整 PRD?

  • 取决于你在乎什么——只在乎结果就只描述需求,了解代码库的话可以指定类、参考实例;
  • 别过度约束:模型在"留一定空间"时表现最好;
  • 不要标准化 PRD 模板——按"给 junior 工程师交代"的颗粒度即可。

Q3:安全 / 漏洞怎么办?

  • 回到第 1 条原则——Claude 的 PM 要懂得问对问题,知道哪里危险;
  • 自己的 22k 行案例之所以敢做,是因为那个系统完全离线,已经事先确认"出错也没有外部攻击面";
  • 期待未来出现「可证明安全的脚手架」——核心安全敏感的部分(auth、支付)官方写好,用户只 vibe code 业务部分。

Q4:TDD 怎么和 Claude 配?

  • 明确告诉 Claude 测试格式:"写 3 个端到端测试——1 个 happy path + 2 个 error case";
  • 要 end-to-end,不要单元测试细节——这种测试人类可读、不被实现绑死;
  • vibe coding 时只读测试,不读实现——测试过你就放心。

Q5:怎么算"embrace exponentials"?

重点不是"模型会变好"——而是变好得比你想象的快。

不是稳定增量,是斜率本身会一直上去。

Q6:你的具体工作流?多久 /compact 一次?

  • 终端开 Claude Code + 同时在 VS Code 里滚动 review diff;
  • 在自己作为人类工程师"想去吃午饭"的那种自然停顿点做 /compact;
  • 常见套路:先让 Claude 探索代码库、做 plan、把 plan 落到一个 markdown 文档;
  • 然后 /compact——把 100k token 的探索压成几千字摘要,再开干。

十一页速查

维度传统编码紧反馈 AI(Copilot)Vibe Coding
你和代码的距离写每行看每行看产品行为,不看代码
适合范围任何任何叶节点 / 离线 / 可验证抽象的系统
关键技能写代码评估代码当 PM:提需求、定约束、验产品
时间消耗实现耗时实现 + review前置上下文 + 验收测试
现在不做的代价无慢一点2 年后跟不上指数曲线
一句话外带:vibe coding 的真正约束不是模型能力,而是你自己能不能找到一套不读代码也能验证产品行为的方法。技术债是目前唯一无法被绕过的硬约束——所以只在 leaf node 上放手。