name: vibe-coding description: 有效AI辅助软件开发的方法论。在帮助用户使用AI编码助手构建软件、调试AI生成代码、规划AI实现功能、管理AI工作流中的版本控制,或当用户提到"氛围编码"、Cursor、Windsurf或类似AI编码工具时使用。提供规划、测试、调试和迭代LLM辅助编写代码的策略。
氛围编码方法论
利用AI编码助手有效构建软件的实用策略。
规划过程
从与AI合作撰写详细的实施计划开始,使用markdown文件。
范围管理:审查并精炼计划——删除不必要的项,标记复杂功能为“不做”,并保留单独部分用于稍后实现的想法。这防止范围蔓延并保持专注。
渐进实施:逐部分工作,而不是一次性构建所有内容。在成功实施后让AI标记部分为完成,并在移动到下一部分前将每个工作部分提交到git。
可视跟踪进度:使用待办事项列表、markdown检查列表或内联状态标记,以便您和AI都能看到完成和剩余的工作。这防止重新实现已完成工作并保持会话专注。
版本控制策略
Git是您的安全网——不要仅仅依赖AI工具的回滚功能。
清洁状态原则:每个新功能以清洁git状态开始。当遇到困境时,如果AI走错路,使用git reset --hard HEAD。多次失败尝试会创建层叠的糟糕代码,加剧问题。
清洁实现:当最终找到工作解决方案后,在几次尝试后,重置到清洁状态并重新实现。多次失败尝试创建层层糟糕代码——不要保留积累的混乱。已知良好解决方案的清洁重新实现比解开意大利面条代码更快且更可维护。
测试框架
优先端到端集成测试而非单元测试。专注于模拟用户行为——通过模拟有人点击网站或应用来测试功能。
回归预防:LLM经常对无关逻辑做出不必要更改。测试在这些回归复合之前捕获它们。
测试作为护栏:考虑从测试用例开始,为AI应该和不应该更改的内容提供清晰边界。在移动到下一个功能前确保测试通过。
有效bug修复
错误消息:简单复制粘贴错误消息通常足够AI识别和修复问题。
分析再编码:在跳转到实施前,请AI考虑多个可能原因。这防止追逐错误问题。
失败后重置:每次不成功的修复尝试后以清洁状态开始,而不是在损坏代码上叠加修复。
策略性日志:当bug不透明时添加日志语句以更好理解发生了什么。
切换模型:当一个模型卡在问题上时尝试不同AI模型。
AI工具优化
指令文件:在适当文件中(cursor.rules、windsurf.rules、claude.md)为您的AI编写详细指令。这提供项目特定上下文,提高输出质量。
本地文档:将API文档下载到项目文件夹。AI工具使用本地文档比从训练中回忆API细节更准确。
多工具使用:一些开发者同时在同一个项目上运行Cursor和Windsurf。Cursor在前端工作上往往更快,而Windsurf在复杂问题上思考更久。
比较输出:生成多个解决方案并选择最佳,而不是接受第一个输出。
复杂功能开发
独立原型:首先在清洁代码库中构建复杂功能,然后集成一旦工作。这隔离问题并使调试更容易。
参考实现:指向AI工作示例以遵循。现有代码模式提供具体指导。
清晰边界:保持一致的外部API,同时允许内部更改。具有清晰边界的基于服务的架构比单仓库更适合AI辅助开发。
技术栈考虑
成熟框架:Ruby on Rails和类似成熟框架因训练数据中20多年的一致约定而工作良好。
训练数据重要:较新语言如Rust或Elixir可能有较少训练数据,导致更多错误或过时模式。
模块化:小型模块化文件对人类和AI都更容易工作。避免有数千行的文件——它们超出上下文窗口并造成混淆。
超越编码
AI助手帮助不仅仅是编写代码:
- DevOps:配置服务器、DNS和托管
- 设计:生成favicon和其他设计元素
- 文档:起草文档和营销材料
- 教育:逐行解释实施
- 视觉输入:分享UI bug或设计灵感的截图
- 语音输入:如Aqua等工具支持每分钟140词输入
持续改进
定期重构:一旦测试就位,经常重构。请AI识别重构候选。
保持最新:尝试每个新模型发布。不同模型在不同任务上表现出色——实验找到最适合您用例的。