一. 故事背景
曾经某一年的春节期间,有11只鸭子突然让大家操碎了心......原来是春节期间,某网友家养了6只鸭子,每天上午9点半左右,邻居家的5只鸭子都会准时地在他家门口等候,雷打不动。
这些鸭子们每天都会默契地相约一起外出游玩,然后在夜晚降临的时候又一起乖巧的回家休息。你会发现这些鸭子们不光可以吃,原来还这么可爱,但你知道吗?我们写代码的程序员和鸭子也有一些渊源呢。什么?难道程序员和鸭子还有关系?难道程序员下班了还要做鸭?
别乱想哦!今天壹哥是给大家讲述程序员与鸭子那些不得不说的事,并不是让你去做鸭。接下来壹哥会带你认识一只神奇的小鸭子,它可以帮助你从bug的迷惘中脱身而出哦。
二. 小黄鸭调试法
在我们程序员的世界中,其实也有一只”鸭子“深得人心,你知道吗?且来听壹哥给你讲一讲程序员们都熟悉的那只鸭子--”小黄鸭“。如果你没听过,那就跟我来了解一下什么是”小黄鸭调试法“吧!
小黄鸭调试法起源于鼎鼎大名的经典书籍《程序员修炼之道》。传说有一位出神入化的程序大师喜欢随身带一只小黄鸭子在身上,他在调试代码的时候会在桌上放上一只小黄鸭,碰见了bug或者问题,都会详细地向鸭子解释每行代码,然后很快就把问题给解决了。
这种方法流传开后,很多程序员开始效仿,开始拿出各自珍藏多年的其他玩具,比如手办啊、初音啊、公仔啊、范冰冰版的女朋友啊...
这些程序员自从用了这些各种稀奇古怪的手办之后,从此写代码再也不腰酸腿疼脑袋疼了,头发也不掉了,bug也能很快的解决了。这么神奇吗?难道这只小黄鸭有这么大的魔力?它背后隐藏着什么样的原理呢?
三. 小黄鸭调试法原理
其实很多程序员,包括很多其他的脑力劳动者,都有过类似的经历。当我们遇到一个Bug或疑难问题被卡住,迟迟没有解决思路,最后都要脑袋炸掉的时候,有的人就放弃不搞了,然后就摔门出去逛大街了,或者有时随便拉个人过来,和他 blablabla 讲一通。
很多时候我们给别人讲着讲着,就有可能突然灵光一闪,一下子就找到了解决办法。这其实背后隐藏的原理也很简单,就是通过做另一件事情来打乱现在无法走出的困境,从而走出原有的思维陷阱,抽身而出。
而这个时候,我们其实并不一定要和一个真正的人进行倾诉,还可以向其他某种物品进行倾诉。强迫自己把遇到的问题,详细地解释出来(一定要说出来),在你讲解倾诉的过程中,解决问题的灵感可能就来了。这种方法,在编程世界里有一个专门的术语,就是”小黄鸭调试法(Rubber Duck Debugging)"。
壹哥发誓,这个概念不是我瞎编的,维基百科有解释哦:
小黄鸭调试法是软件工程中使用的调试代码方法之一。就是在程序的调试、纠错或测试过程中,耐心地向小黄鸭解释每一行程序的作用,以此来激发灵感。
四. 小黄鸭调试步骤
那这个“小黄鸭调试法”具体该怎么用呢?其实很简单,步骤如下:
首先找一只玩偶鸭子或其他任何东西或人,至于你怎么找到,办法有很多,可以去借、去偷、去抢、去买、去自己制作……反正你要搞到一个鸭子;
然后把这个玩偶鸭子放在你的面前,标准做法是放在你的桌子上,电脑显示器旁边,或是键盘边,反正是你的跟前,面朝着你;
然后,找到你代码中解决不了的bug;
对着那只鸭子,把你产生bug的代码,一行一行地,耐心地向这只鸭子解释。记住,这是解释,你需要认真地出你的想法、思路、步骤等;
当你向这只始终保持沉默的鸭子解释代码的过程中,你会发现你的想法、观点、或思路,可能和实际的代码发生了偏离,于是你就可能突然就找到了代码中bug产生的原因了,从而想出解决办法;
最后,你还要脸皮厚一点,对同事投来的看精神病人的目光直接选择无视即可。
只要你按照壹哥上面说的步骤去做,神功即可大成!切记切记!!!
*威哥Java学习交流Q群:691533824
加群备注:CSDN推荐