宝玉的分享 09月17日
驾驭 AI 编程伙伴的实用指南
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

与 AI 结对编程能极大提升开发效率,但同时也带来挑战。本文采访多位创始人,总结出一套 AI 协作编程指南。核心在于规划流程、善用版本控制、构建测试框架、高效修复 Bug、优化 AI 工具配置、化整为零开发复杂功能、选择合适的技术栈,以及探索 AI 在编码之外的妙用。通过这些方法,开发者可以更有效地驾驭 AI,实现效率与质量的双重提升,并与 AI 一同持续进步。

📝 **明确规划与流程控制**:与 AI 高效协作始于清晰的路线图。建议首先与 AI 共同制定详尽的实施计划,并进行评审精简,控制项目范围,采用“小步快跑,增量实现”的策略,并及时追踪进度和频繁提交代码,确保每个可运行部分都得到有效管理。

🛡️ **强化版本控制与测试**:Git 是 AI 编程中的“后悔药”,应将其奉为圭臬,从干净的起点开始,果断重置出错状态,避免问题滚雪球。测试框架,特别是高层级端到端集成测试,是防止 AI “好心办坏事”的护栏,应优先编写,并作为前进的依据。

🛠️ **精细化 Bug 修复与工具优化**:面对 Bug,应善用错误信息,让 AI 辅助分析原因,并在修复尝试失败后重置代码。同时,通过创建指令文件、本地文档、多工具协作等方式优化 AI 工具配置,充分发挥其在代码生成、DevOps、设计辅助等方面的潜力。

🧩 **模块化开发与技术栈选择**:开发复杂功能时,应将其“化整为零”,创建独立原型,明确边界,并采用模块化架构。技术栈的选择至关重要,成熟、拥有大量惯例的框架(如 Ruby on Rails)AI 理解更深,模块化代码更易于 AI 处理,避免“万行神文件”。

与 AI 结对编程,就像是拥有了一位虽然才华横溢、但偶尔会“走神”的实习生。它能在一小时内帮你完成过去需要一周才能搞定的工作,但有时也会在你项目的核心代码里悄悄埋下一个“惊喜”。

那么,如何才能驾驭好这位强大的编程伙伴呢?我们采访了多位利用 AI 编码的创始人,总结出了这套实用的“AI 协作编程指南”。

规划流程

好的开始是成功的一半。别指望“凭感觉编程” (Vibe Coding) 能带你走向成功。与 AI 高效协作的第一步,是制定一个清晰的路线图。

    制定周详计划: 首先,和你的 AI 助手一起,在 Markdown 文件里写一份详尽的实施计划。

    评审与精简: 审视这份计划,删掉不必要的部分。如果某个功能过于复杂,果断地将其标记为“暂不开发”。

    控制项目范围: 单独开辟一个“未来想法”区域,把暂时不做的好点子都放进去,这能帮助你保持专注。

    小步快跑,增量实现: 按部就班,一部分一部分地去实现,不要试图一口气吃成个胖子。

    追踪进度: 每当一个部分成功实现后,让 AI 将其标记为“已完成”。

    频繁提交: 在进入下一个环节之前,确保每个能正常工作的部分都已提交到 Git。

版本控制策略

当你的 AI 伙伴开始“自由发挥”时,版本控制系统就是你最可靠的后悔药。

    将 Git 奉为圭臬: 不要完全依赖 AI 工具自带的撤销功能,Git 才是你的生命线。

    从干净的起点开始: 每开发一个新功能,都确保你的 Git 工作区是干净的。

    果断重置: 如果 AI 开始“天马行空”,让代码变得一团糟,别犹豫,立即使用 git reset --hard HEAD 命令回到上一个正常的状态。

    避免问题滚雪球: 一次又一次失败的尝试,只会在错误的代码上堆砌更多错误的代码。

    清爽地实现: 当你最终找到解决方案后,先重置代码库,然后在一个干净的版本上重新、清爽地实现它。

测试框架

和 AI 协作时,测试不仅是保证质量的手段,更是防止它“好心办坏事”的护栏。

    优先进行高层级测试: 相比单元测试,优先编写端到端的集成测试。

    模拟用户行为: 通过模拟真实用户在网站或应用中的点击操作来测试功能。

    捕获“回归”问题: 大语言模型 (LLM) 常常会在修改代码时,无意中破坏一些不相关的功能。测试能帮你及时发现这些问题。

    先测试,再前进: 在开始下一个新功能之前,确保所有现有的测试都能通过。

    用测试作为护栏: 一些创始人建议,可以先编写测试用例,这能为 AI 的工作提供清晰的边界和目标。

高效修复 Bug

当 Bug 出现时,别单打独斗,让 AI 帮你分析。

    善用错误信息: 很多时候,你只需要把完整的错误信息直接复制粘贴给 AI,它就能给出解决方案。

    先分析,再动手: 在急于写代码修复之前,先让 AI 分析并列出几种可能导致 Bug 的原因。

    失败后就重置: 每次修复尝试失败后,都回到干净的代码状态再进行下一次尝试。

    添加日志: 在关键位置添加日志记录,能帮你和 AI 更好地理解代码的实际运行情况。

    切换模型: 如果一个 AI 模型卡住了,不妨换个别的模型试试,也许会有意想不到的效果。

    清爽地修复: 和开发新功能一样,一旦找到 Bug 的根源,就重置代码,然后干净利落地实现修复方案。

AI 工具优化

工欲善其事,必先利其器。充分配置你的 AI 工具,能让协作效率更上一层楼。

    创建指令文件: 在项目里创建专门的指令文件(比如 cursor.rules, windsurf.rules, claude.md),把详细的指令和规范写在里面。

    本地文档: 把需要用到的 API 文档下载到项目文件夹里,这能让 AI 的回答更加准确。

    多工具协作: 有些创始人甚至会在同一个项目上同时运行 Cursor 和 Windsurf 这样的不同工具。

    各取所长: 通常,Cursor 在处理前端任务时速度更快,而 Windsurf 更擅长处理耗时较长的复杂任务。

    货比三家: 让不同的工具生成多种解决方案,然后挑选出最好的那一个。

复杂功能开发

面对复杂的大型功能,关键在于“化整为零”。

    创建独立原型: 先在一个全新的、干净的代码库里,把复杂功能的核心部分构建成一个独立的原型。

    提供参考范例: 指向一个已经能正常工作的代码示例,让 AI 学习和模仿。

    明确边界: 保持外部 API 的一致性,允许 AI 在内部自由修改和重构。

    模块化架构: 基于服务的模块化架构,由于其边界清晰,比庞大的单体仓库 (monorepo) 更适合与 AI 协作。

技术栈的选择

你的技术选择,会直接影响 AI 的发挥。

    成熟框架表现更佳: 像 Ruby on Rails 这样拥有 20 年发展历史和大量惯例的框架,AI 对其理解更深。

    训练数据是关键: 像 Rust、Elixir 这样的新兴语言,由于可供 AI 学习的公开代码较少,AI 的表现可能会稍逊一筹。

    模块化是王道: 把代码拆分成更小的文件,不仅方便人类阅读,也更容易让 AI 理解和处理。

    避免“万行神文件”: 不要让单个文件膨胀到数千行,这会成为你和 AI 的噩梦。

编码之外的妙用

AI 的能力远不止写代码。

    DevOps 自动化: 让 AI 帮你配置服务器、DNS 和托管服务。

    设计辅助: 用 AI 生成网站图标 (favicon) 和其他设计元素。

    内容创作: 帮你起草产品文档和市场营销文案。

    你的私人教师: 让 AI 逐行解释它生成的代码,帮助你学习和理解。

    利用截图: 遇到界面 Bug 或想借鉴某个设计时,直接把截图发给 AI。

    语音输入: 借助像 Aqua 这样的工具,你可以用每分钟 140 个单词的速度通过语音输入指令,比打字快得多。

持续改进

与 AI 的合作是一个不断磨合、共同进步的过程。

    定期重构: 当你建立起完善的测试体系后,就可以大胆地、频繁地进行代码重构。

    发现改进机会: 主动询问 AI,让它帮你找出代码中可以重构优化的部分。

    紧跟潮流: 每个新模型发布后都去试试,了解最新的技术进展。

    认识模型特长: 不同的模型有不同的“性格”和擅长的领域,学会在合适的任务中选择合适的模型。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

AI编程 结对编程 开发效率 版本控制 测试 AI工具 AI collaboration coding efficiency version control testing AI tools
相关文章