顶尖孵化器 Y Combinator 总结的vibecoding核心指南,开发者必收藏
规划流程
— 制定全面计划:首先与 AI 合作,在 Markdown 文件中编写详细的实施计划。
— 审查与优化:删除不必要的项目,如果功能过于复杂则标记为“暂不实现”(won’t do)。
— 控制范围:保留一个单独的区域存放“后续想法”,以保持专注。
— 增量实施:逐个部分进行,而不是试图一次性构建所有内容。
— 跟踪进度:成功实施后,让 AI 将相应部分标记为“已完成”。
— 定期提交:在进行下一部分之前,确保每个可用的部分都已提交到 Git
版本控制策略
— 严格使用 Git:不要仅仅依赖 AI 工具的撤销功能。
— 保持初始状态纯净:每个新功能都应从一个干净的 Git 状态开始。
— 陷入困境时重置:如果 AI 开始天马行空(goes on a vision quest),使用 git reset –hard HEAD。
— 避免问题累积:多次失败的尝试会造成层层叠加的劣质代码。
— 净室实现:当你最终找到解决方案时,重置并以干净的方式重新实现它。
测试框架
— 优先考虑高级别测试:专注于端到端集成测试,而不是单元测试。
— 模拟用户行为:通过模拟用户点击浏览网站/应用来测试功能。
— 捕获回归问题:大型语言模型(LLM)常常会对不相关的逻辑进行不必要的更改。
— 测试通过后再继续:在开发下一个功能前,确保所有测试都通过。
— 使用测试作为护栏:一些创始人建议从测试用例开始,为 AI 提供清晰的边界。
有效的 Bug 修复
— 利用错误信息:通常只需将错误信息复制粘贴给 AI 就足够了。
— 编码前先分析:要求 AI 思考多种可能的原因。
— 失败后重置:每次不成功的修复尝试后,都从一个干净的状态重新开始。
— 实施日志记录:添加策略性日志,以更好地理解程序运行情况。
— 切换模型:当一个 AI 模型卡住时,尝试使用不同的模型。
— 净室实现:一旦确定了修复方案,就重置并在干净的代码库上实施它。
AI 工具优化
— 创建指令文件:在相应的文件(如 cursor.rules, windsurf.rules, claude.md)中编写详细的指令。
— 本地化文档:将 API 文档下载到你的项目文件夹中,以确保准确性。
— 使用多种工具:一些创始人会在同一个项目上同时运行 Cursor 和 Windsurf。
— 工具专业化:Cursor 在前端方面更快,Windsurf 更擅长处理长任务。
— 比较输出:生成多种解决方案,并选择最佳方案。
复杂功能开发
— 创建独立原型:首先在干净的代码库中构建复杂功能的原型。
— 使用参考实现:向 AI 指明可用的示例,让其参照。
— 清晰的边界:保持外部 API 一致,允许内部实现发生变化。
— 模块化架构:具有清晰边界、基于服务的架构优于单体仓库(monorepos)。
技术栈考量
— 成熟的框架表现更优:Ruby on Rails 凭借 20 年的惯例积累而蓬勃发展。
— 训练数据至关重要:较新的语言(如 Rust、Elixir)可能拥有较少的训练数据。
— 模块化是关键:小文件对人类和 AI 都更易于处理。
— 避免大文件:不要让文件增长到数千行。
编程之外
— DevOps 自动化:使用 AI 配置服务器、DNS 和托管服务。
— 设计辅助:生成网站图标(favicon)和设计元素。
— 内容创作:起草文档和营销材料。
— 作为教育工具:要求 AI 逐行解释其实现。
— 使用截图:通过视觉方式分享 UI 错误或设计灵感。
— 语音输入:像 Aqua 这样的工具可以实现每分钟 140 个单词的输入
持续改进
— 定期重构:一旦测试就位,就应频繁进行重构。
— 发现机会:请求 AI 推荐可以重构的对象。
— 保持更新:尝试每一个新发布的模型。
— 识别优势:不同的模型擅长处理不同的任务。