小黄鸭调试法
小黄鸭调试法,又称橡皮鸭调试法、黄鸭除虫法(Rubber Duck Debugging)是可在软件工程中使用的一种调试代码的方法。方法就是在程序的调试或测试过程中,操作人耐心地向小黄鸭解释每一行程序的作用,以此来激发灵感与发现矛盾。
名称由来
此概念是参照于一个故事。故事中程序大师随身携带一只小黄鸭,在调试代码的时候会在桌上放上这只小黄鸭,然后详细地向鸭子解释每行代码。[1]
许多程序员都有向别人提问及解释编程问题的经历,而对象甚至可能是完全不懂编程的人。而就在解释的过程中,程序员可能就发觉了问题的解决方案。一边阐述代码的意图,一边观察它实际上的行为并做调试,两者间的任何不协调都会变得更明显,使人更容易发现错误所在。[2]如果没有玩具小鸭,操作人也可以向其他任何东西倾诉,比如桌上的盆栽、键盘及滑鼠等。
流行文化
“ | Insights are often found by simply describing the problem aloud. | ” |
——Duck,Quack Overflow |
2018年4月1日愚人节当天,问答网站Stack Exchange推出了名为“呱呱叫溢出(Quack Overflow)”的功能:一个小黄鸭形象会从网页右下方冒出来,它会倾听用户的想法,并尝试给出解决方案。实际上,这个小黄鸭形象会看起来在思考并且尝试以文字回应,但最后只会以“呱呱”的鸭子叫声来回应用户。Stack Exchange宣称这一功能与小黄鸭调试法有关。[3]不过一些用户在看到这个小黄鸭形象时,以为是恶意软件的结果,没有意识到这是一个愚人节玩笑。[4]
参见
参考资料
- ^ The Pragmatic Programmer: From Journeyman to Master. Addison Wesley. [2013-09-16]. ISBN 978-0201616224. (原始内容存档于2015-09-27). p. 95, footnote.
- ^ Baker, SJ, The Contribution of the Cardboard Cutout Dog to Software Reliability and Maintainability, [2013-09-16], (原始内容存档于2013-10-05).
- ^ Stack Exchange has been taken over by a rubber duck!. Meta Stack Exchange. 2018-03-31 [2018-04-01] (英语).
- ^ Purushothaman, Praveen Kumar. Quack Overflow - Stack Overflow's take on April Fool!. Adventures (Blog). 2018-03-31 [2018-04-01]. (原始内容存档于2018-03-31) (英语).