如何最大化 Vibe Coding 的效果 | 创业学校
一句话结论
Vibe Coding 不仅效果惊人,而且是一项可以通过学习和实践显著提升的技能。核心原则是:让 LLM 遵循专业软件工程师的工作流程——从写计划、版本控制、测试驱动到模块化架构、频繁重构,每一步都是可复用的最佳实践。最前沿的技术几乎每周都在变,持续实验是关键。
来源信息
- Raw 文件:raw/yc-videos/20250425-How-To-Get-The-Most-Out-Of-Vibe-Coding--Startup-School.md
- 视频/文章标题:如何最大化 Vibe Coding 的效果 | 创业学校
- 讲者:Tom(YC 合伙人)
- 日期:2025-04-25
- URL,如有:https://www.youtube.com/watch?v=BJjsfNO5JTo(封面图推断)
- 时间戳情况:Evidence pending — raw 文件中无逐句时间戳
Executive Summary
本篇是 YC 合伙人 Tom 关于 Vibe Coding(用自然语言指挥 AI 编写代码的实践)的实用指南。Tom 在过去一个月用 Vibe Coding 做了多个副项目,发现这不仅效果惊人,更是一项可学习的技能——就像一两年前的提示工程(Prompt Engineering),每周都有新技巧涌现。文章系统性地介绍了从工具选择(Replit/Lovable 适合新手,Windsurf/Cursor/Claude Code 适合有经验者)、项目规划(先写 Markdown 计划再逐步实施)、版本控制(Git 是最可靠的朋友,果断使用 git reset --hard)、测试编写(优先集成测试)、Bug 修复策略(粘贴错误信息→先 git reset 再重试→添加日志→换模型)、指令文件管理、文档策略(下载到本地)、技术栈选择(Rails 等成熟框架因训练数据丰富而表现更好)、截图与语音输入,到模块化架构和频繁重构的一整套最佳实践。多位 YC Spring 批次创始人也分享了实战经验:双 IDE 并行(Cursor + Windsurf)、先在纯 LLM 中做架构设计再编码、测试驱动反向开发、以及警惕 LLM 陷入"兔子洞"。
核心观点
1. YC 创始人的 Vibe Coding 实战技巧
- 换工具破局:当 AI IDE 陷入循环无法调试时,把代码粘贴到 LLM 网页端(Claude.ai/ChatGPT),同样的提问往往能得到 IDE 无法给出的答案。
- 双 IDE 并行:同时使用 Cursor 和 Windsurf。Cursor 更快,适合前端和全栈快速迭代;Windsurf 思考更久,适合复杂逻辑。可让两者基于相同上下文给出不同实现,择优选用。
- 把 AI 当新编程语言:Vibe Coding 本质是用自然语言编程,必须给出极其详细和完整的上下文。
- 测试驱动:先手写测试用例(不依赖 LLM),然后让 LLM 在测试的护栏下自由生成代码。
- 先做架构再编码:在纯 LLM 中花"不合理的时间"梳理范围和架构,再交给编码工具。
- 警惕兔子洞:如果 LLM 反复生成诡异代码,应后退一步让 LLM 自省失败原因。
2. 选择合适的工具
未经写过代码的人推荐从 Replit 或 Lovable 入手(可视界面,适合快速试验 UI);有编程经验的人可直接上手 Windsurf、Cursor 或 Claude Code。但当需要精确修改后端逻辑时,Replit/Lovable 容易失控。
3. 第一步:写计划,而非写代码
与 LLM 协作撰写详尽的项目计划,保存为 Markdown 文件放在项目目录中持续参照。审核计划:删除不想要的、标记"不做"的过度复杂功能、把后续想法归入"待定"区。按章节逐步实施——明确告诉 AI"现在只做第二节",完成后检查、测试、提交。
4. 版本控制:Git 是你最可靠的朋友
每次开始新功能前确保 Git 处于干净状态。不要犹豫使用 git reset --hard:如果不对就重掷骰子。更好的做法是:经多轮尝试找到解决方案后,git reset 回到干净代码库,把方案作为清晰指令重新喂给 AI。
5. 编写测试
LLM 擅长写测试但默认倾向低层级单元测试。Tom 更推荐高层级集成测试:模拟用户点击流程,端到端验证功能。测试套件的核心价值在于捕获 LLM 的"副作用"——它在修复 A 时可能毫无理由地改动 B。
6. LLM 不只用于编码
Tom 用 Claude Sonnet 3.7 配置 DNS 和 Heroku 托管(DevOps);用 ChatGPT 生成 Favicon 图标,Claude 写一次性脚本裁剪成多个尺寸。AI 成了他的设计师和运维工程师。
7. Bug 修复策略
- 第一反应:直接把错误信息粘贴回 LLM。
- 更复杂的 Bug:让 LLM 先思考三四种可能原因再写代码。每次修复失败后先
git reset再重新开始。 - 如果搞不定:添加日志。
- 如果依然不行:换模型(Claude Sonnet 3.7、OpenAI 系列、Gemini)。
- 找到根源后:先
git reset清除所有尝试,再在干净代码库上给出精确修复指令。
8. 为 LLM 编写指令文件
无论是 Cursor Rules、Windsurf Rules 还是 Claude 的 CLAUDE.md,有创始人写了数百行指令给 AI 编码代理,效果显著提升。
9. 文档管理
把相关 API 文档全部下载到项目目录子文件夹中,然后在指令里告诉 LLM"实现这个之前先去读文档"——准确度远高于让 AI 代理读取在线文档(MCP 服务器太重)。
10. 复杂功能的实现策略
在一个完全干净的独立代码库中做参考实现,或从 GitHub 下载已有的参考实现,然后让 LLM 参照它在主项目中重新实现——效果出奇地好。
11. 小文件与模块化架构
保持文件小而模块化。Tom 预测未来会更多转向服务化架构,让 LLM 在清晰的 API 边界内工作。
12. 选择合适的技术栈
Rails 等 20 年历史的成熟框架因有大量一致、高质量的训练数据,AI 表现惊艳。相比之下,Rust 或 Elixir 因在线训练数据较少,AI 表现较差——但可能很快改变。
13. 截图与语音输入
大多数编码代理支持粘贴截图(展示 UI Bug 或设计灵感)。语音方面,Tom 使用 Aqua(一家 YC 公司),输入速度约每分钟 140 词,是打字的两倍。
14. 频繁重构
代码跑通、测试就位后,可放心重构。请 LLM 识别代码库中重复或适合重构的部分。不要让文件长达数千行。
15. 持续实验
每个新模型发布都试用,在调试、长期规划、功能实现、重构等不同场景下比较表现。目前 Gemini 在全代码库索引和制定实施计划方面领先,Sonnet 3.7 在实际编写代码变更上最强。GPT-4.1 问太多问题、实现出错次数太多——但下周再试可能又不一样。
可执行建议
- 选定工具后先写计划:与 LLM 协作撰写 Markdown 项目计划,逐步按章节实施。
- 每次新功能前确保 Git 干净:出问题时果断
git reset --hard回到已知可工作状态。 - 编写集成测试:让 LLM 写高层级端到端测试,而非低层级单元测试。
- 遇到 Bug 先粘贴错误信息:不要手动解释,直接粘贴服务器日志或浏览器控制台报错。
- Bug 修复失败后先 git reset 再重试:不要在失败基础上累积层级。
- 搞不定就换模型:Claude、OpenAI、Gemini 各有所长。
- 为 LLM 编写指令文件:搜索网上最佳实践,写数百行指令可显著提升效果。
- 下载文档到本地:让 LLM 读本地文档比在线访问准确得多。
- 保持文件小而模块化:趋向服务化架构。
- 代码跑通后频繁重构:测试会捕获回归。
- 持续实验新模型:最前沿每周都在变。
重要例子 / 公司案例
- Tom 本人的副项目:用 Vibe Coding 构建多个副项目,验证了方法论的有效性。
- YC Spring 批次创始人:分享了双 IDE 并行、先架构再编码、测试驱动等实战经验。
- Aqua:YC 公司,提供语音转录输入服务,Tom 用其完成了本篇演讲稿。
关键证据
- "Vibe Coding 是一项可以通过学习和实践显著提升的技能——就像一两年前的提示工程。"
- "让 LLM 遵循专业软件工程师的工作流程。"
- "Git 是你最可靠的朋友。不要犹豫使用
git reset --hard。" - "反复用多个 Prompt 修补会让 LLM 积累层层垃圾代码,而非真正理解根因。"
- "LLM 经常在修复 A 的时候毫无理由地改动 B 的逻辑。"
- "把 AI 当新编程语言——必须给出极其详细和完整的上下文。"
- "Rails 有大量成熟的约定,绝大多数 Rails 代码库看起来非常相似——这意味着网上有大量一致、高质量的训练数据。"
- "最前沿的变化几乎以周为单位。"
涉及概念
- vibe-coding / Vibe Coding
- ai-coding / AI 编码
- prompt-engineering / 提示工程
- integration-tests / 集成测试
- unit-tests / 单元测试
- version-control / 版本控制
- git-reset / Git 重置策略
- modular-architecture / 模块化架构
- service-based-architecture / 服务化架构
- mcp-server / MCP 服务器
- reference-implementation / 参考实现
- codebase-indexing / 代码库索引
涉及人物
- Tom — YC 合伙人,主讲人
- YC Spring 批次多位创始人 — 分享实战经验
涉及公司
- Y Combinator — 主办方
- Cursor — AI IDE 工具
- Windsurf — AI IDE 工具
- Replit — 推荐给新手的 AI 编码工具
- Lovable — 推荐给新手的 AI 编码工具
- Aqua — YC 公司,语音转录输入工具
- Claude / Anthropic — LLM 提供商
- OpenAI / ChatGPT — LLM 提供商
- Google / Gemini — LLM 提供商
可沉淀到哪些主题页
- vibe-coding-best-practices — Vibe Coding 最佳实践
- ai-coding-tool-comparison — AI 编码工具比较
- git-workflow-for-ai-coding — AI 编码的 Git 工作流
- testing-strategies-for-ai-code — AI 生成代码的测试策略
- llm-instruction-files — LLM 指令文件
- tech-stack-for-ai-coding — 适合 AI 编码的技术栈选择
不确定事项
- 完整视频 URL(仅从封面图推断 YouTube ID 为 BJjsfNO5JTo;Evidence pending)
- 逐句时间戳信息缺失(Evidence pending)
- Tom 的全名未在 raw 文件中明确给出(Evidence pending)
- 各 YC 创始人的具体姓名和公司名(Evidence pending)
- Aqua 公司的具体信息(Evidence pending)
Change Log
- 2026-06-30:初始创建,基于 raw 文件结构化整理