17|三轮迭代法:澄清 → 生成 → 自检与修复
本篇目标:告别“抽卡式”编程。不要指望 AI 一次就给你完美代码。学会这“三板斧”,你的代码通过率将从 30% 提升到 90%。
一、为什么“一杆进洞”很难?
很多新手喜欢这样用 AI:
- 扔给它一个巨大的需求(“帮我写个贪吃蛇”)。
- 拿到代码,运行,报错。
- 再扔给它报错(“报错了,修一下”)。
- 再运行,还报错。
- 怒骂:“AI 真笨!”然后放弃。
真相:连真人都很难一次写对几百行代码,何况是靠概率预测的 AI?
解法:把“一次性生成”拆解为“三轮对话”。
二、第一轮:澄清(Clarification)—— 别急着写
在 AI 开始写任何一行代码之前,先让它复述你的需求,并追问它不懂的地方。
Prompt 模板:
我想做一个 [简短描述你的需求]。
在你写代码之前,请:
- 复述你对任务的理解。
- 列出你计划使用的技术栈。
- 最重要:如果有任何不清楚的地方,请向我提问,直到你完全明白为止。
效果:
AI 可能会问:“贪吃蛇是网页版还是 Python 本地版?要计分吗?蛇撞墙是死还是穿墙?”
这时候你才发现:“哎呀,我忘了说要网页版了!”
这一轮对话,帮你省去了后面推倒重来的 1 个小时。
三、第二轮:生成(Generation)—— 分步执行
需求对齐后,让 AI 开始写。但别让它直接吐几百行代码(容易中断,容易逻辑混乱)。让它先写伪代码/计划,再写真代码。
Prompt 模板:
很好,你的理解是对的。请按以下步骤执行:
- 先输出项目的文件结构树。
- 用自然语言描述核心逻辑(伪代码)。
- 最后,生成完整的、可运行的代码文件。
效果:
AI 会先画出:
snake_game/
index.html
script.js
style.css
你一看:“不对,我要的是单文件 HTML。”
你可以立刻叫停:“停!合并成一个 index.html 文件。”
这一轮,帮你在代码成型前纠正架构错误。
四、第三轮:自检(Self-Correction)—— 自己找茬
拿到代码后,不要直接运行。让 AI 自己先检查一遍。
这是利用了 LLM 的一个特性:它的“鉴赏能力”通常高于“创作能力”。 它可能写不对,但它能看出哪里不对。
Prompt 模板:
在我运行之前,请你作为“资深 QA”审查你刚才写的代码:
- 有没有逻辑漏洞?(比如蛇头撞到蛇身)
- 有没有未处理的边界情况?(比如输入为空)
- 有没有安全隐患?
如果有,请指出并提供修复后的代码。
效果:
AI 经常会惊呼:“啊!我忘了处理蛇吃到食物后长度 +1 的逻辑。这是修复后的版本…”
这一轮,帮你消灭了 80% 的低级 Bug。
五、实战演示:写一个“图片批量压缩工具”
Round 1: 澄清
User: “我要写个 Python 脚本,压缩文件夹里的图片。”
System: “收到。请问:1. 压缩率要多少?2. 原图要覆盖吗?3. 只处理 JPG 还是所有格式?”
User: “压缩到 50%,保留原图(存到 output 文件夹),处理 JPG 和 PNG。”
Round 2: 生成
User: “请按这个需求生成代码。先列出步骤。”
AI: “计划:1. 创建 output 目录。2. 遍历文件。3. 用 Pillow 库压缩。4. 保存。这是代码…”
Round 3: 自检
User: “检查一下,如果 output 文件夹已经存在且里面有同名文件,会报错吗?”
AI: “你说得对!现在的代码会直接报错。我加一个 exists_ok=True 和文件名自动重命名逻辑(如 img_1.jpg)。这是更新后的代码…”
本篇产出:三轮对话 SOP 卡片
把这张卡片贴在你的屏幕旁边,每次做复杂任务时,按顺序出牌。
| 轮次 | 目标 | 你的指令 (Prompt 关键词) | AI 的动作 |
|---|---|---|---|
| 1. 澄清 | 对齐需求 | “复述你的理解”, “向我提问”, “不要写代码” | 确认需求,查漏补缺 |
| 2. 生成 | 产出代码 | “先列计划”, “文件结构”, “Step-by-step” | 规划架构,生成代码 |
| 3. 自检 | 消除 Bug | “作为 QA 审查”, “检查边界情况”, “修复它” | 自我反思,优化代码 |
练习题:修复“贪吃蛇”的 Bug
背景:AI 给你写了个贪吃蛇,但是蛇吃食物不长身体。
错误做法:直接把代码扔回去说“不对”。
正确做法(请尝试写出 Round 3 的 Prompt):
“请审查
eatFood函数。逻辑似乎有问题:当蛇头坐标等于食物坐标时,只加了分,没有把蛇身长度列表snakeBody增加一个元素。请修复这个问题,并确保新长出来的身体在蛇尾位置。”
下一步:掌握了三轮对话,你已经能搞定大部分中型任务了。但如果我们要处理更专业的编程场景——比如Debug(修 Bug)、Refactor(重构)、Test(写测试),有没有更专门的 Prompt 技巧?下一章我们将为你提供一套代码任务专用提示卡。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)