微信号:iProgrammer

介绍:最有影响力的程序员自媒体,关注程序员相关话题:IT技术、IT职场、在线课程、学习资源等.

经典:小黄鸭调试法,每个程序员都要知道的

2016-10-05 21:12 程序员的那些事

(点击上方公众号,可快速关注)


花了一下午(或一天)在试图解决某个 Bug,后来才知道解决方案很简单,当时就是没有想到。


有个同事正好路过,看到你愁眉苦脸的,问你“怎么了呀?”


“噢,是这样的。我遇到了一个问题,点击这个控件的时……” 当你正准备和同事详细解释的时候,突然灵光一现,你话都没说完,就中断了和同事的倾诉,继续干活了。


同事微微一笑,又走开了。他并没有怪你。


「程序员的那些事」主页君相信大家都有类似的经历。遇到 Bug/问题被卡住了,拉个人过来,和他 blablabla 讲了一通,很多时候中途你就找到了解决办法。


有时候,并不一定要和人倾诉,还可以像其他东西倾诉,强迫自己把遇到的问题,详细地解释出来(一定要说出来)。


其实呢。这种方法,有一个术语:小黄鸭调试法(Rubber Duck Debugging)。


维基百科有解释:小黄鸭调试法是软件工程中使用的调试代码方法之一。就是在程序的调试、纠错或测试过程中,耐心地向小黄鸭解释每一行程序的作用,以此来激发灵感。


名称由来


此概念是参照于一个故事。故事中程序大师随身携带一只小黄鸭,在调试代码的时候会在桌上放上这只小黄鸭,然后详细地向鸭子解释每行代码。(引自维基百科)


(大家可以看下图。鸭子真不少呢。)



演化


这种方法流传开后,很多程序员效仿,开始拿其他玩具,比如手办。喜欢二次元的,还会拿初音哈。或者是其他公仔呀。如下图。



下面是「程序员的那些事」主页君给大家找的一些国外网友分享的图






遇到问题时,如果您的工作台上也有倾听的玩具或小东西,不妨拍个照,发给主页君哦。


对了,主页君经常被同事拉过去当“小黄鸭”。哈哈哈哈哈。如果你也遇到问题,推荐大家试试这个方法。:)


关注「程序员的那些事」

看更多精选文章

↓↓↓

 
程序员的那些事 更多文章 20 亿行的代码库,谷歌如何管理? 哪个蠢蛋写的烂代码? 一大波能和女朋友一起学习编程技能的游戏 国庆充电:一天能学会的实用 IT 技能有这些 国庆读经典:每位程序员必读的书单
猜您喜欢 产品经理最重要的能力 Android 开发绕不过的坑:你的 Bitmap 究竟占多大内存? 大数据解析“世界杯之魔咒” 大话插件 - 启动插件Activty (一) C语言文件读写文件尾多出一个字符的原因分析过程和解决过程