程序员找bug的秘密武器,居然是浴室常用的橡皮鸭子!

程序员最大的烦恼是什么?无非就是因为在编程的过程中一个又一个bug的出现。

也许你会为了找代码里的bug,困在代码的世界里几个小时甚至几天的时间。

在被bug日复一日困住的同时,程序员为了保住最后的头发,所以他们找了一种找bug的秘密武器——Rubber Duck Debugging,橡皮鸭调试法(又名:小黄鸭调试法)。
在这里插入图片描述
“橡皮鸭调试法”并不是指橡皮鸭成精了,能自己找bug哦!它要是成精能自己找bug了,那估计这个世界就没我们程序员什么事了!

这个方法是指程序员们向鸭子们解释代码,在解释代码的过程中可以帮助程序员发现代码中的问题,更容易找到解决方法。

“我自己是一名从事了5年前端的老程序员,辞职目前在做讲师,今年年初我花了一个月整理了一份最适合2019年学习的web前端干货,从最基础的HTML+CSS+JS到移动端HTML5到各种框架都有整理,送给每一位前端小伙伴,web前端学习群957389100,这里是小白聚集地,欢迎初学和进阶中的小伙伴。"

“橡皮鸭调试法”,这个方法在调试界是很出众的,实施起来相当方便和简易,几乎可以随时随地地实验,几乎不需要借助任何的软件和硬件的支持,你甚至可以把你的程序打印出来,在纸面上进行调试。
在这里插入图片描述
那么,具体是怎么操作的呢?

Rubber Duck Debugging网站很认真的给出了用橡皮鸭找bug的详细过程。

首先,你得有一只鸭子,而且还是一只橡皮鸭子。只有有了一只橡皮鸭子,你才能继续下一步。

当你有了橡皮鸭子之后,你需要把鸭鸭郑重地放在桌上,跟人家鸭鸭说清楚,并且可以的话,你想用人家检查一下代码。

然后,你就可以跟鸭鸭解释,你的代码本来应该是做什么的,然后深入细节,逐行解释你的代码。

以上就是整个用鸭鸭找bug的流程啦!
在这里插入图片描述
其实,这个原理在于,你在解释的过程中,你会告诉鸭鸭你的下一步是做什么,一条一条的理清自己的思路,你会意识的你现在做的并不是你实际要做的东西。

这样,你就能知道你的问题出在哪,bug就这样被找见啦~

而这个时候的鸭鸭,依然平静着坐在你的桌前,静静的与你分享找到bug的喜悦,为保住你仅剩的头发感到欣慰。
在这里插入图片描述
注意!在紧急情况下,是可以用你的同事代替鸭子的。当然,在通常情况下,大家还是更倾向把错误告诉鸭鸭,而不是同事。

在网上也有网友现身说法,告诉我们这件事的可行性。

你们回复可能是觉着程序员对着鸭子说话很好笑,而我回复是因为想到一个画面很好笑。想象一下,一个程序员正解释着自己的代码,解释到bug的时候猛地发现了自己错误的地方,然后激动地用手勒着鸭鸭的脖子狂喊“为什么居然犯了这个简单的错?!”“我是不是瞎了?!”
在这里插入图片描述
底下还有程序员回复:
在这里插入图片描述
作为程序员,我可以很负责任地告诉你,确实是这样没有错了。因为大家找出bug的时候比较激动,我们班都不让带鸭子了,大家找到bug的时候一激动,就是把鸭鸭抛起来或者摔墙上。

而且越来越多的人出现在回复里,来说明用橡皮鸭子来找bug是程序员杰一件很普遍的事情。
在这里插入图片描述
我以前在一家创业公司工作,在你刚入职的时候,拿到的一系列东西里,就包括一只橡皮鸭子。我们公司还有个大一点的鸭子,专门为了更难的问题准备的。有时候可能一个鸭子不够,你还得借你邻桌同事的鸭子来解决问题。

有一次,有个问题我们一只琢磨不出来,所以我们就把鸭子都召集起来,在鸭鸭之神的保佑下,我们才顺利的相处解决办法来。

这些鸭鸭救了很多人的命,像它们这样的英雄是应该得到尊敬的。
在这里插入图片描述
事实上,我用橡皮鸭子来写作。解释我现在正在做的事,我预期目标,以及我从A点达到B点的不同方法。除了这些,还有很多不同的问题,在我跟鸭子解释为什么我能或者不能去做这些事的时候,我都会顺利地找到解决问题的办法。我爱橡皮鸭理论。
在这里插入图片描述
前程序员,证明鸭鸭找bug确实是真的,我们办公室没有鸭子,所以我邻桌的程序员,就会像用鸭子那样来用我。(只是解释用,不会扔哦。)很多次,我都会听到邻桌幽幽地飘来一句“你能变一会鸭子吗?”

很多小伙伴可能会疑惑,为什么跟橡皮鸭解释会这么有用呢?

livejournal网站上的一位网友给出了自己的答案。

“我觉得,把你存在的问题变成口头上的询问,会让你的大脑换个角度去考虑问题。你把问题转变一下,从回答问题的人的角度来看问题,就能让你的大脑设身处地地为回答问题的人着想。”

在你盯着一行行代码试图找出bug的时候,你还是创造这些代码的程序员思维。

而你在跟鸭鸭对话,一问一答之间,你就会跳出写代码的程序员思维,从回答问题的角度来考虑,以旁观者的视角就更容易找出bug啦~

最后也别忘了跟帮助你的鸭鸭说一声谢谢哦。

猜你喜欢

转载自blog.csdn.net/weixin_44330260/article/details/86002281
今日推荐