YC推出Vibe Coding经验《如何从Vibe编程中获得最大收益 》

YC的 Vibe Coding 经验是基于 YC 的视频《How To Get The Most Out Of Vibe Coding | Startup School》整理而来,由YC合伙人Tom Blomfield分享,是基于人工智能(AI)工具如Claude CodeWindsurf和Aqua进行软件开发的新方式。通过这种方法,AI能编写全栈应用程序,通过粘贴错误信息调试代码,成为开发过程中的真正合作伙伴。Tom提供了完整的指南,帮助开发者通过vibe coding提高开发速度和效率。

核心内容

规划过程

  • 创建全面计划:首先与AI合作编写详细的实施计划,保存在Markdown文件中。
  • 审查和完善:删除不必要的项目,标记过于复杂的功能,以便后续处理。
  • 保持范围控制:为后续的想法保留单独的部分,以便保持当前项目的专注度。
  • 增量实施:分部分逐步实施计划,不是一次性构建所有内容。
  • 跟踪进度:让AI在成功实施后标记部分为完成。
  • 定期提交:确保每个工作部分都提交到Git,以便在移动到下一个部分之前能进行版本控制。

版本控制策略

  • 严格使用Git:不要完全依赖AI工具的回滚功能,始终从干净的Git状态开始每个新功能。
  • 从干净开始:每个新功能都从干净的Git状态开始,以便在AI偏离轨道时可以回滚。
  • 遇到问题时重置:如果AI在某个任务上陷入困境,使用git reset --hard HEAD来重置。
  • 避免累积问题:多次失败的尝试会积累坏代码,因此需要避免。
  • 清洁实施:当你最终找到解决方案时,重置且纯净代码中实施它。

测试框架

  • 优先考虑高级测试:关注端到端集成测试,不是单元测试。
  • 模拟用户行为:通过模拟用户点击来测试功能,确保它们按预期工作。
  • 捕捉回归:LLM可能会对不相关的逻辑进行不必要的更改,需要测试捕捉这些回归。
  • 测试前进行:在移动到下一个功能之前确保测试通过。
  • 使用测试作为护栏:从测试用例开始提供清晰的边界,确保功能的正确性。

有效修复bug

  • 利用错误消息:直接将错误消息复制粘贴到LLM,通常足以识别和修复问题。
  • 分析前编码:让AI考虑多种可能的原因,再编写代码。
  • 失败后重置:每次失败尝试后从干净状态开始,避免积累坏代码。
  • 实施日志记录:添加策略性日志能更好地理解发生的事情。
  • 切换模型:尝试不同的AI模型,看看哪个更适合当前任务。
  • 清洁实施:在干净的基础上修复精确的错误,避免积累不必要的代码。

AI工具优化

  • 创建指令文件:为AI编写详细的指令,使它更好地理解你的意图。
  • 本地文档:下载API文档到项目文件夹,LLM能更准确地访问和使用。
  • 使用多个工具:同时运行多个AI工具,如Cursor和Windsurf,以提高效率。
  • 工具专业化:根据工具的强项选择使用,例如Cursor适合前端工作,Windsurf适合更长时间的思考。
  • 比较输出:生成多个解决方案并选择最佳,以确保代码质量。

复杂功能开发

  • 创建独立原型:在干净的代码库中构建复杂功能,以便更好地控制和测试。
  • 使用参考实现:指向AI的工作示例,以便它有明确的实现方向。
  • 清晰的边界:保持外部API一致,允许内部更改,保持代码的灵活性。
  • 模块化架构:服务基础架构具有清晰的边界,更适合大型项目。

技术栈考虑

  • 成熟的框架:如Ruby on Rails因其一致的约定而表现良好,适合AI开发。
  • 训练数据重要:新语言可能训练数据较少,要选择有大量训练数据的语言可能更有利。
  • 模块化是关键:小文件和模块化文件易于工作,有助于保持代码的清晰和可维护性。
  • 避免大文件:避免数千行代码的文件,提高代码的可读性和可维护性。

超越编码

  • DevOps自动化:使用AI配置服务器、DNS和托管,提高部署效率。
  • 设计协助:生成设计元素,如favicons和其他设计组件。
  • 内容创建:起草文档和营销材料,以支持项目的推广。
  • 教育工具:逐行解释实现,帮助团队成员更好地理解代码。
  • 使用截图:分享UI错误或设计灵感,以便更好地沟通和协作。
  • 语音输入:使用工具如Aqua进行语音输入,提高输入效率。

持续改进

  • 定期重构:测试到位后,频繁重构代码,保持代码的清晰和可维护性。
  • 识别机会:让AI找到重构候选,提高代码质量。
  • 保持最新:尝试每个新模型发布,以利用最新的技术。
  • 识别优势:不同模型在不同任务上表现出色,需要识别、利用这些优势。

视频地址

  • 官方视频地址:https://www.youtube.com/watch?v=BJjsfNO5JTo