原文:Rubber Duck Debugging,作者:Kolade Chris

作为一个软件开发者,你可能遇到过你的代码不能按预期工作的情况。

这可能是因为你犯了一个错,你没有足够注意,或者你不确定某些东西是如何工作的。

当你的代码不能工作时,这很令人沮丧——但唯一要做的是找到使你的代码不能工作的bug。这些 bug 的出现是因为计算机需要你在说它的语言时尽可能的精确。

你可以用一种方法来寻找你的代码中的错误,那就是小黄鸭调试法。

那么,什么是小黄鸭调试法?它是如何工作的?这就是你将在这篇文章中理解的问题。

为什么程序员要使用小黄鸭?

很多人看到程序员桌子上的橡皮小黄鸭,可能会认为它是一个玩具或一个无关紧要的装饰。

实际上,小黄鸭是一种帮助程序员解决问题的工具。程序员向小黄鸭解释他们代码中的问题——通常称为 bug,然后小黄鸭帮助他们找到解决 bug 的方法。

这是因为向别人解释问题有助于你更好地理解问题,并找到解决问题的办法。它允许你从一个新的角度看问题,抓住你第一次可能错过的东西。

为了更好地理解小黄鸭调试法的概念和它背后的想法,请确保你将这篇文章读完。

什么是小黄鸭调试法?它是如何工作的?

小黄鸭调试法最初是来自安德鲁-亨特和大卫-托马斯在 1999 年写的《务实的程序员》一书中的一个故事。

这个故事描述了一个程序员如何带着一只橡皮鸭子,在遇到错误的时候逐行向它解释他的代码。

跟一个没有生命的物体谈论你的代码中的错误可能听起来很傻,但它在程序员中非常流行,因为它很有效。

在小黄鸭调试法中,你不仅仅是逐行向橡皮鸭子解释代码,你还要告诉鸭子你到底想做什么,以及你对代码的目标。

当你向橡皮鸭子解释关于代码的一切时,你就更有可能发现隐藏在那里的错误。

我们中的一些人曾经遇到过这样的情况:我们遇到了一个问题,决定向一个朋友解释这个问题,甚至在我们没有向那个朋友解释完这个问题的时候,就得到了解决方案。

通过向一个无生命的物体如橡皮鸭子解释你代码中的错误,你不需要打扰任何人。你也可以用宠物或其他无生命的物体代替橡皮鸭。

什么是小黄鸭理论?

小黄鸭调试法背后的想法是:当程序员被 bug 拖住时,将代码逐行向橡皮鸭子解释。

把这种方法想象成一个过程,即你打出一条要在社交媒体上发布的信息,在发布前大声读出来。这可以帮助你发现其中的排版和语法错误。同样的事情也适用于向橡皮鸭子解释你的代码。

当你遇到 bug 时,你向橡皮鸭子逐行解释代码,bug 的解决方案往往就会出现在那里。

最后的思考

为了有效地解决问题和学习任何东西,你需要谈论它和教别人使用它。小黄鸭调试法可以帮助你修复错误,因为当你谈论一个问题并教授它时,往往可以找到解决方案。

多年来,小黄鸭调试法一直是软件开发人员解决问题的主要方式。据一些程序员说,当他们得到一份新工作时,他们甚至会得到橡皮小黄鸭作为欢迎礼的一部分。

当然,并不是橡皮鸭子告诉你如何修复这些错误。相反,你要通过逐行讨论你的代码所做的事情来弄清楚如何修复这些错误。

小黄鸭调试法不仅可以用于编程中,你也可以在生活的其他方面使用这种方法。