Tags 2025-05-03

YC Vibe Coding指南

阅读次数 13 评论数 0

YC Vibe Coding 指南

规划流程 (Planning process)

  • 创建全面计划: 首先与 AI 合作,在 Markdown 文件中编写一份详细的实现计划。
  • 评审与优化: 删除不必要的项;如果功能过于复杂,则标记为“不做”(won't do)。
  • 控制范围: 保留一个单独的部分记录“后续想法”(ideas for later),以保持当前工作的专注度。
  • 增量实现: 逐个部分进行开发,而不是试图一次性构建所有内容。
  • 跟踪进度: 在成功实现一个部分后,让 AI 将其标记为“完成”。
  • 定期提交: 在进入下一个部分之前,确保每个可工作的代码段都已提交到 Git。

版本控制策略 (Version control strategies)

  • 严格使用 Git: 不要仅仅依赖 AI 工具自带的回滚功能。
  • 保持干净的起点: 每个新功能都应从一个干净的 Git 状态开始。
  • 卡壳时重置: 如果 AI 开始“自由发挥”或进入错误方向(goes on a vision quest),果断使用 git reset --hard HEAD 回到上一个好的状态。
  • 避免问题累积: 多次失败的尝试会堆积层层难以处理的坏代码。
  • 干净地实现: 当你最终找到解决方案时,执行重置(reset),然后在干净的代码基础上重新实现它。

测试框架 (Testing framework)

  • 优先高级别测试: 重点关注端到端(end-to-end)集成测试,而非单元测试。
  • 模拟用户行为: 通过模拟用户点击浏览网站/应用的方式来测试功能。
  • 捕获回归问题: 大型语言模型(LLM)有时会对不相关的逻辑做出不必要的更改,测试有助于发现这些问题。
  • 先测试再前进: 在开始下一个功能之前,确保所有相关测试都能通过。
  • 将测试用作护栏: 一些创始人建议先编写测试用例,为 AI 的工作提供清晰的边界和约束。

高效修复 Bug (Effective bug fixing)

  • 利用错误信息: 通常,简单地将错误信息复制粘贴给 AI 就足以让它开始分析。
  • 编码前先分析: 要求 AI 考虑多种可能的 Bug 原因,而不要直接跳入尝试修复。
  • 失败后重置: 每次修复尝试不成功后,都应从干净的代码状态重新开始。
  • 实施日志记录: 在关键位置添加日志记录,以便更好地理解代码的实际运行情况。
  • 切换模型: 当一个 AI 模型卡住无法解决问题时,尝试换用其他模型。
  • 干净地实现修复: 一旦确定了正确的修复方案,重置代码库,然后干净地实施该修复。

AI 工具优化 (AI tool optimization)

  • 创建指令文件: 在特定文件(如 cursor.rules, windsurf.rules, claude.md)中为你的 AI 编写详细、清晰的操作指令。
  • 本地文档: 将项目所需的 API 文档下载到本地项目文件夹中,供 AI 参考以提高准确性。
  • 使用多种工具: 有些创始人会在同一个项目上同时运行 Cursor 和 Windsurf 等多种 AI 编程工具。
  • 工具专长: 了解不同工具的特点,例如 Cursor 可能在前端工作上稍快,而 Windsurf 的“思考”时间可能更长。
  • 比较输出: 让不同的工具或模型生成多个解决方案,然后从中挑选最好的一个。

复杂功能开发 (Complex feature development)

  • 创建独立原型: 对于复杂功能,先在一个隔离的、干净的代码库中构建原型。
  • 使用参考实现: 向 AI 提供一个或多个已有的、功能类似的有效代码示例,让它参照实现。
  • 清晰的边界: 保持模块或服务的外部 API 接口稳定一致,允许其内部实现自由更改。
  • 模块化架构: 基于服务的、具有清晰边界的架构比大型单体代码库(monorepo)更适合 AI 协作。

技术栈考量 (Tech stack considerations)

  • 成熟框架表现更佳: 像 Ruby on Rails 这样拥有长期(如 20 年)稳定约定和大量实例的框架,AI 通常处理得更好。
  • 训练数据很重要: 较新的语言(如 Rust 或 Elixir)可能因为训练数据相对较少,AI 的支持效果会打折扣。
  • 模块化是关键: 小而清晰的模块化文件对人类和 AI 都更易于理解和操作。
  • 避免大文件: 不要维护数千行代码的巨大文件。

编码之外 (Beyond coding)

  • DevOps 自动化: 使用 AI 协助配置服务器、DNS、托管服务等。
  • 设计辅助: 让 AI 生成网站图标(favicon)、logo 草图或其他设计元素。
  • 内容创作: 利用 AI 起草文档、用户手册、营销文案等。
  • 教育工具: 要求 AI 逐行解释某段代码的实现逻辑和原理。
  • 使用截图: 通过截图向 AI 展示 UI Bug 或提供设计灵感。
  • 语音输入: 探索像 Aqua 这样的工具,它们能以高语速(如 140 词/分钟)进行语音输入,提高交互效率。

持续改进 (Continuous improvement)

  • 定期重构: 一旦有了可靠的测试覆盖,就应该经常进行代码重构以改善质量。
  • 识别机会: 主动询问 AI,让它在代码库中寻找适合重构的部分。
  • 保持更新: 积极尝试每个新发布的 AI 模型或工具版本。
  • 认识优势: 了解并利用不同模型在不同类型任务上的特定优势。

0%