tags: AI,代码审查,Claude Code,开发效率,调试 category: 人工智能 type: original series: ai-embedded试试让 AI 审查另一个 AI 写的代码双窗口分工法一句话: 两个 AI 窗口分工——窗口 A 只审查代码不改一个字窗口 B 只管改代码按审查意见逐条修。分离后审查质量更高不会写着写着忘了审查改代码更快不用自己费脑子看逻辑上下文各自清爽。系列文章《AI赋能嵌入式开发》 — DeepSeek看图、AI当老师、AI审查代码、省Token技巧——用AI加速嵌入式开发 含一键部署提示词 一天学完15个源文件 ✅ 双窗口分工法 7条血泪经验为什么不用一个窗口做完一开始是一个窗口干两件事边写代码边审查。但人会偷懒——其实 AI 也会。代码越写越多上下文窗口里塞满了实现细节轮到审查的时候已经没精力仔细看了。结果审查变成了走过场。AI 扫一眼说看起来不错但其实三个变量命名不规范、两个地方缺少 NULL 检查、一个 Flash 写之前忘记关中断。把两个任务分开——一个只审不写一个只改不审——每个窗口的上下文都更干净。怎么分工窗口角色只做什么窗口 A审查窗口代码审查员读代码 → 对照编码规范逐条查 → 列出问题清单窗口 B修改窗口代码执行者收到问题清单 → 逐条修改 → 不改清单上没有的东西审查窗口不写代码修改窗口不审代码。就像工厂里质检和产线是两个岗位。实际操作第一步在审查窗口喂规范先把编码规范发给审查窗口让它记住 以下是我们团队的编码规范审查代码时对照这些规则 1. ISR 里不能有 Delay、printf、Flash 读写 2. 对外接口必须检查指针参数 NULL 3. 单函数 ≤ 200 行 4. 变量命名: g_ 全局, s_ static, p 指针... ...第二步把代码发给审查窗口 审查这个文件对照规范逐条列出所有问题审查窗口返回1. drv_dac.c:45 — SPI_Write 没有检查 pData 是否为 NULL 2. drv_dac.c:78 — ISR 内部调用了 printf 3. drv_dac.c:120 — 函数 230 行超过 200 行限制 4. mod_protocol.c:33 — 全局变量没有 g_ 前缀 5. drv_flash.c:56 — Flash 写之前没有关中断 ...第三步把问题清单发给修改窗口 以下是代码审查发现的问题逐条修改 [贴上审查窗口的问题清单] 规则 - 只改清单上的问题 - 不要顺手改别的东西 - 改完一条标注一条修改窗口逐条修完输出1. ✓ drv_dac.c:45 — 添加了 NULL 检查 2. ✓ drv_dac.c:78 — 移除 printf改为设置标志位 3. ✓ drv_dac.c:120 — 拆分为两个函数 ... 7 条全部修完实际效果对比维度单窗口双窗口审查覆盖率大概看一眼50% 的问题漏掉对照规范逐条查90% 覆盖上下文干扰写着写着就忘了要审查什么两个窗口各管各的互不污染修改质量可能顺手改坏了别的东西只改清单上的 限制了范围速度快但质量差多一轮对话往返但总时间更短联调时间少了真实案例最近审查一个 15 条指令的协议处理模块。单窗口模式大概看了 5 分钟说没问题。切换到双窗口模式审查窗口花了 10 分钟列出了问题清单帧头0x73 0x74写成了0x72 0x74命令 10 的地址字段返回错了两个字节6 个函数的注释不一致这些问题单窗口模式一个都没发现。不是因为 AI 不行——而是因为同一个窗口既要写代码又要审代码注意力被稀释了。改成双窗口后审查窗口不需要关心怎么改只需要问自己一个问题这块代码有没有毛病思维清晰了审查自然更深入。什么时候该用场景单窗口双窗口改一个变量名✓ 用单窗口新增一个功能模块100 行✓ 用双窗口改完代码提交前检查✓ 用双窗口接手别人的代码要理解✓ 用单窗口整个项目级别的规范审查✓ 用双窗口判断标准很简单如果审查需要对照清单逐条过就用双窗口。总结角色做什么不做什么审查窗口对照规范找问题不改代码修改窗口按清单逐条修不审代码不多改把质检和产线分开代码质量立竿见影。AI 帮你写代码的能力是一回事AI 帮你审查代码的能力是另一回事——两个都用起来才叫真正用好了 AI。实测对比单窗口审查: 遗漏率 ~50% | 双窗口分工审查: 遗漏率 10%有用的话点个收藏下次调试直接用。有问题欢迎评论区交流看到了都会回。下一篇《含一键部署提示词》——DeepSeek看图、AI当老师、AI审查代码、省Token技巧——用AI加速嵌入式开发