AI 协作开发:把大模型变成结对程序员而不是代笔
横切全部路线的 AI 协作指南:教练四角色、提示词结构、AI 代码审查清单、测试兜底与安全边界,附「让 AI 出题不代写」的学习纪律。
前置知识
学习目标
读完本文你将能够:
- 用「教练四角色」组织 AI 参与学习的边界:出题、点评、答疑、复盘,而不代写核心练习;
- 写出结构完整的工作提示词:上下文、约束、验收三段式;
- 用审查清单处理 AI 生成的代码,做到「读不懂的不合并」;
- 说出三类不该交给 AI 的事,以及为什么。
预计 30 到 45 分钟。本篇不绑定任何特定 AI 产品——工作流与纪律是通用的。
1. 你现在要解决什么问题
两个正在发生的真实场景:
场景一:你让 AI 生成了一段排行榜代码,能跑。三周后需求变了,你打开这段代码——完全看不懂当时 AI 为什么这么写,改不动,只能再让 AI 生成一遍。你拥有了一段自己无法维护的代码。
场景二:你在学变量与循环,卡住了,让 AI 直接给答案。五秒钟后你「会了」——然后面试白板题上,一个字都写不出来。
AI 不会让「不会编程的人」变成工程师,但会让「会编程的人」效率翻倍。区别就在协作方式:把 AI 当教练和结对评审,而不是当代笔。
2. 最小可运行示例:一次合格的 AI 协作
任务:给已有的记账程序加「按用途筛选合计」功能。一次合格的工作流长这样:
第一步,给上下文与约束(三段式提示词):
【上下文】这是我的记账脚本(贴出 ledger.py 全文),数据是 JSON 存的记录列表,
每条记录形如 {"purpose": "午饭", "amount": 25}。
【约束】Python 3.12+ 标准库;不改已有函数的签名;新增函数需要 docstring。
【验收】新增 filter_and_sum(records, keyword) 函数:返回用途包含 keyword 的记录
合计金额;keyword 匹配不到任何记录时返回 0。先只写函数与两个测试用例,不要改主流程。第二步,AI 返回代码后,执行审查清单(见第 4 节),然后自己跑一遍验收。
第三步,让 AI 扮演评审员:「这是我的实现(贴出),请指出与你的方案的差异,以及我的版本有哪些你没考虑到的边界」——让 AI 评论你的代码,比让它写代码学习价值高一个量级。
3. 发生了什么:为什么这套流程有效
三段式提示词的本质是把「帮我写个功能」这种彩票式提问,变成工程委托:上下文消灭猜测、约束锁定方案空间、验收把「写完了」变成「测试通过才算完」。它和真实工作中给同事提需求是同一种能力——练习它就是在练工程沟通。
而「让 AI 先只写测试」隐藏着一个重要的学习设计:测试是需求的可执行形式。自己想清楚验收条件(哪怕由 AI 帮你形式化),实现才不会跑偏;这个习惯直接迁移到 测试基础 的修 bug 先写复现测试。
4. 核心概念:AI 代码审查清单
AI 生成的每一行代码,合并前过一遍这六问:
- 我能逐行解释它吗?——这是唯一的一票否决项。解释不了就追问 AI 直到能解释,或扔掉重写;
- 边界齐吗?——空输入、零、负数、超长文本、None/undefined,AI 最爱省略的恰恰是这些;
- 错误处理在吗?——网络、文件、用户输入三条线上有没有 try/except 或等价物;
- 依赖合理吗?——AI 喜欢顺手引第三方库解决标准库就能干的事;每个 import 都要问一句「标准库没有吗」;
- 过时了吗?——AI 训练数据有截止时间,API 签名、默认行为要对照官方文档核验(各模块文档的「官方文档」一节就是干这个的);
- 风格一致吗?——与项目现有命名、缩进、模块组织一致;AI 的默认风格不等于你项目的风格。
六问全过,再跑测试,再提交。流程和审查人类同事的代码完全一样——这正是重点:AI 的产出按同事标准验收,不按魔法标准豁免。
5. 修改实验
- 把第 2 节的提示词删掉「验收」一段再发给 AI,对比返回结果——体会验收缺失时代码「跑通了但不知道对不对」的状态;
- 拿一段你自己以前写的代码,让 AI 扮演资深评审提三条改进意见,逐条判断是否接受(不接受也是有效结论,写下一句理由);
- 让 AI 给 变量与常量 的知识点出 5 道预测题,自己做,再让 AI 批改——这就是教练角色的标准用法。
6. 常见错误与调试实录
错误一:「AI 说的就是对的」。AI 会一本正经地编造不存在的 API 参数与版本特性,术语叫幻觉。防线只有一条:版本与 API 事实必须回到官方文档核验,AI 的回答只能当线索。
错误二:「把密钥贴给 AI」。.env、数据库密码、API key 出现在提示词里,等于发给了第三方服务。规则与 .gitignore 同源:敏感信息永远不进任何外部工具,调试时用占位符替换。
错误三:「学习阶段全托管」。核心练习(预测题、修 Bug 题、挑战题)自己不写,学习闭环就断了——你获得的不是能力,是「看过答案」的记忆。纪律:本仓库文档的练习在对照答案前不求助 AI;项目代码可以 AI 结对,但每一行要过第 4 节的六问。
错误四:「AI 代码免测」。生成的代码和人写的代码一样会错,而且错得更隐蔽(边界、时序、环境假设)。它必须走与人工代码完全相同的路:跑一遍、补测试、过审查。
7. 实际项目中的使用场景
- 读懂陌生仓库:把项目结构与关键文件喂给 AI,让它生成「入口在哪、数据怎么流」的导览,再用真实阅读验证——企业模拟测试(见 总览)的第一步提速器;
- 代码评审陪练:提交前让 AI 以 lint + 评审双视角过一遍,再自己修;
- 学习计划:让 AI 根据你的路线生成每周自测题,固定每周一次复盘对话;
- 文档与提交信息:README 草稿、commit message 润色——低风险高收益的 AI 用武之地。
8. 小练习
预测题:不运行,判断这三种提示词哪个最可能得到可用代码——「帮我写个爬虫」「用 Python 标准库写一个抓取某公开页面标题的脚本,带超时与错误处理,Python 3.12」「帮我写个爬虫抓天气」——并说出判断依据。
修改题:把你最近一次向 AI 的提问改写成三段式(上下文/约束/验收),重新提问,对比两次回答的质量差异,写三行结论。
修 Bug 题:让 AI 生成一个「统计字符串中每个单词出现次数」的函数(故意不加约束),找出它没处理的三个边界(提示:空串、大小写、标点),自己补齐并用断言验证。
挑战题:用三段式提示词 + 审查六问,让 AI 协助你给记账程序(第二门语言体验 的项目)加一个「月度统计」功能。全程记录:你追问了几次、审查拦下了几个问题——这份记录就是你与 AI 的真实协作画像。
9. 什么时候应该 / 不应该用 AI
应该:解释概念的不同角度、评审与出题、样板代码起步、陌生代码导览、文档与提交信息、重复性改造。
不应该:核心练习代写(学习闭环会断)、未核验的事实直接采用(幻觉风险)、敏感信息入提示词(安全红线)、看不懂的代码直接合并(维护权拱手让人)。
10. 与之前和之后的知识的关系
- 往前:学习方法论 的四问与三问决策法是本文工作流的雏形;每条就业路线(前端到游戏)的阶段计划都假定 AI 协作贯穿全程;
- 往后:测试基础 的「先写验收测试」让 AI 委托从口头约定升级为机器可查;各技术模块的「官方文档」一节是本文「核验」纪律的常备工具箱。
11. 官方资料
- 各技术的官方文档入口集中在对应模块的 module.json 与文档末尾,核验从这里开始;
- 提示词工程没有官方标准——一切以「验收是否可执行」为质量判据,警惕任何把提示词神秘化的课程。
12. 自我检查
- 能不查资料写出三段式提示词并说出每段的作用;
- 能背出审查六问,并解释为什么「读不懂的不合并」是一票否决;
- 能说出三类不该交给 AI 的事与各自的原因;
- 已经在某个练习或项目里跑完一次完整的「委托-审查-测试」循环。
本章总结
AI 协作的专业形态是工程委托:三段式提示词锁定期望,审查六问守住质量,测试兜底验证结果,敏感信息与核心练习是两条不可让渡的红线。用这套纪律,AI 放大的是你的能力;没有它,AI 放大的是你的依赖。
下一步
带着这套工作流回到你选定的 就业路线:路线计划里的每个检验项目,都是一次完整的 AI 结对练习。