与 AI 结对编程,就像拥有了一位才华横溢却偶尔“走神”的实习生。它能在一小时内完成过去需要一周的工作,但有时也会在核心代码里埋下“惊喜”。
如何驾驭这位强大的伙伴?以下是多位创始人总结出的实用“AI 协作编程指南”。
规划流程
- 制定周详计划:先和 AI 在 Markdown 文件里写下实施计划。
- 评审与精简:删掉不必要的部分,把复杂功能标记为“暂不开发”。
- 控制范围:设立“未来想法”区,集中注意力。
- 小步快跑:分阶段实现,避免一次性上全部功能。
- 追踪进度:完成部分后标记“已完成”。
- 频繁提交:确保每个能正常工作的部分都提交到 Git。
版本控制策略
- Git 是生命线:不要依赖工具的撤销功能。
- 干净起点:每开发新功能前保持 Git 工作区干净。
- 果断重置:代码混乱时立即执行
git reset --hard HEAD。 - 避免雪球效应:别在错误代码上继续堆砌。
- 清爽实现:找到方案后,从干净版本重新实现。
测试框架
- 优先高层测试:注重端到端的集成测试。
- 模拟用户行为:通过模拟真实点击操作来验证功能。
- 捕获回归问题:避免 AI 修改代码时破坏其他功能。
- 先测试,再前进:新功能前确保现有测试通过。
- 测试即护栏:先写测试用例,给 AI 明确目标。
高效修复 Bug
- 善用错误信息:直接把错误日志交给 AI。
- 先分析再修复:让 AI 提出可能原因,再动手。
- 失败即重置:每次失败后回到干净代码再试。
- 添加日志:帮助理解代码运行。
- 切换模型:一个模型卡住时换另一个。
- 清爽修复:找到根源后在干净版本中实现修复。
AI 工具优化
- 创建指令文件:如
cursor.rules、claude.md。 - 本地文档:下载 API 文档放在项目中。
- 多工具协作:结合 Cursor、Windsurf 等。
- 各取所长:前端快速用 Cursor,复杂任务用 Windsurf。
- 货比三家:生成多个方案,择优采用。
复杂功能开发
- 独立原型:在新代码库中构建核心原型。
- 提供范例:让 AI 学习已能运行的示例。
- 明确边界:保持 API 一致,内部灵活调整。
- 模块化架构:清晰边界的服务式架构优于庞大 monorepo。
技术栈的选择
- 成熟框架更佳:如 Rails 拥有更多惯例与训练数据。
- 训练数据关键:新兴语言如 Rust、Elixir 支持稍弱。
- 模块化优先:拆分文件利于理解与处理。
- 避免巨型文件:单文件数千行会成为噩梦。
编码之外的妙用
- DevOps 自动化:配置服务器、DNS、托管。
- 设计辅助:生成 favicon 等设计元素。
- 内容创作:产品文档与营销文案。
- 私人教师:让 AI 逐行解释代码。
- 利用截图:调试界面或借鉴设计。
- 语音输入:工具如 Aqua 提高输入效率。
持续改进
- 定期重构:完善测试后可大胆频繁重构。
- 发现改进:让 AI 提出可优化部分。
- 紧跟潮流:尝试新模型,了解进展。
- 认识特长:不同模型适合不同任务。
感谢分享