06

理解与校验 AI 的回复

⏱️ 10分钟

理解与校验 AI 的回复

AI 给出的代码不等于“可上线”。学会阅读、质疑、校验,才能真正让 AI 成为可靠的搭档。

先读结构再看细节

  • 关注函数签名、依赖、边界处理,先判断是否契合当前项目。
  • 标记不确定的地方(类型、接口、异常处理),准备追问。

让 AI 自检

请检查你生成的代码可能失败的场景,列出 3 个潜在问题并给出修复建议。
如果存在性能隐患或未处理的异常,请一并指出。

把“质检”交还给 AI,可以快速发现遗漏点。

要它写用例

为上面的函数写 4 个单元测试,覆盖空输入、重复输入、非法输入、正常路径。
使用项目里已有的测试框架(Jest/Vitest)。

让 AI 给出测试,有助于验证理解是否一致。

当回答含糊时

  • 要求“重新给出逐行解释,并标注关键变量的含义”。
  • 如果上下文不够,补充文件片段或接口定义,再让它修订代码。
  • 让 AI 输出一步步的运行轨迹(输入 → 预期输出 → 真实输出),快速定位偏差。

练习

把上一章的“去重排序”函数回复拿出来,让 AI 写一组测试并解释时间复杂度;再让它评估是否有更简洁的实现,并说明取舍。

📚 相关资源

❓ 常见问题

关于本章主题最常被搜索的问题,点击展开答案

AI 给的代码到底要从哪里开始读?

先读结构再读细节:(1) 函数签名 —— 入参、返回值、type 是否符合项目约定;(2) 依赖 —— 有没有引入新包、有没有 import 错路径;(3) 边界处理 —— 空输入 / null / 异常分支怎么处理。这三点过关再读实现细节。先看实现等于一上来就被局部细节绑架,反而忽略掉"方向是不是错了"。

怎么让 AI 自己检查自己写的代码?

直接发指令:"请检查你刚生成的代码可能失败的 3 个场景,列出问题并给出修复建议;如果有性能隐患或未处理的异常,一并指出。"AI 对自己输出的反思能力比我们想得高,能找出 60-70% 的明显遗漏。这一步几乎零成本,比你自己一行行盯有效得多 —— 把"质检"环节再交回 AI 一次。

为什么让 AI 写测试是验证理解一致性的好办法?

因为测试是"AI 怎么理解你的需求"的可执行版本。例:让它为 dedup 函数写 4 条用例 —— 空输入、重复输入、非法输入、正常路径,用项目里已有的 Jest/Vitest。如果 AI 写的测试和你脑子里的预期对不上,说明 prompt 没传达清楚需求,比看实现代码更早暴露分歧。

AI 回答含糊或绕弯时该怎么追问?

三个有效追问句式:(1)「请逐行解释,标注关键变量的含义」—— 强迫 AI 把每行讲清;(2)「输出运行轨迹:输入 → 预期输出 → 真实输出」—— 用具体数据替换抽象描述;(3) 补 file 片段或接口定义再让它修订 —— 含糊往往是 context 不够。三招按顺序试,比反复问"你确定吗"管用。

AI 说"这段代码可以工作"我应该信吗?

不能信。AI 没有运行环境,"可以工作"是模式匹配的判断,不是验证结果。规则:每段非平凡代码都必须真跑一次 —— 跑测试、跑 lint、手测关键路径,至少 3 选 1。"看着像对"和"真的对"在 AI 时代差距比以前更大,因为 AI 输出的代码语法层面很少出错,错往往藏在边界和集成处。