暗无天日

=============>DarkSun的个人博客

TIL: AI 时代的橡皮鸭调试

读到 opensourceforu 的一篇文章1,提醒我一个容易忘记的事:调试效率的关键不是工具多强,而是你能不能把问题解释清楚。

橡皮鸭调试法

"橡皮鸭调试"(Rubber Duck Debugging)这个名字来自 The Pragmatic Programmer (1999 年)这本书:程序员桌上放一只橡皮鸭,卡住的时候就对着鸭子逐行解释代码。很多时候解释到一半,自己就发现问题了。

这个现象其实大家都不陌生。你肯定经历过:写了半天邮件描述一个 bug,写到一半突然想通了;或者在会议上给同事讲一个问题的来龙去脉,讲着讲着自己就意识到了错在哪。鸭子只是个象征,真正的机制是: 把模糊的想法变成清晰的表述,这个过程本身就是思考

为什么解释能帮你找到 bug?因为脑子里想的逻辑和嘴里说出来的逻辑不一样。脑子里你可以跳步、模糊处理、含糊带过;但要说给别人听,你就必须一步步走:输入是什么?然后呢?这个条件为什么需要?失败了怎么办?这些被跳过的"然后呢"往往是 bug 藏身的地方。另外,说出来的假设会变得可疑——"这个值不可能为 null"一旦说出口,你马上会意识到"等等,万一呢?"

AI 是一只会提问的鸭子

传统橡皮鸭是被动倾听者——你对着它说,它不回应。AI 不同,它可以主动提问:"你确定这个 API 调用不会超时吗?""如果输入是空列表会怎样?"

但用 AI 调试有一个陷阱:如果你直接把代码丢给 AI 说"帮我找 bug",你只是在用 AI 替你思考。短期内问题解决了,长期来看你的调试能力没成长。正确的用法是把 AI 当鸭子而不是当助手——你来解释,让它质疑你的逻辑。

一个实用的 prompt:

扮演一只橡皮鸭。不要直接给我解决方案。
听我解释代码逻辑,然后指出不清晰的地方、
遗漏的步骤或错误的假设。

这样 AI 会帮你发现思维盲点,而不是直接帮你填上。

为什么这个方法仍然重要

AI 工具越来越强,一键就能生成代码、定位错误。但软件质量的上限取决于你对问题的理解程度,而不是工具的能力。不管工具怎么进化,"解释清楚"这项能力永远是稀缺的——因为它的本质不是技术能力,而是把混乱的直觉变成有序的逻辑。

TIL 调试 AI