之前听过一个说法,叫“男养猫,女养狗,程序员养小黄鸭”。
一开始还不能理解,鸭子叫起来嘎嘎的特别吵,又喜欢到处乱跑,怎么看都跟程序员合不来。
直到我听说了小黄鸭调试法。
此黄鸭非彼黄鸭
很多程序员都遇到过这样的情况:程序出了bug,辛苦了半天也找不到问题所在,然后随便和周围的人聊几句或者跟产品经理撕一会儿逼,中途突然茅塞顿开,瞬间找到问题所在。
这有点类似于做题或写文章时,思路突然堵塞了,这时候如果跟人讨论或者闲聊,思维被打开后,一下子就找到了解决问题的方法。
但是问题在于:你不能保证每次改不好bug的时候周围都有人,也不能保证周围的人愿意听你blabla讲个半天。
所以,小黄鸭调试法就应运而生了。
小黄鸭调试法(RubberDuck Debugging)这个概念出自《程序员修炼之道》一书中的一个案例,说是某个程序大师喜欢随身携带一只小黄鸭,每次调试代码时就把小黄鸭放在桌子上,然后一行一行地向小黄鸭复述每一行代码,直到整个人豁然开朗,气冲丹田,如醍醐灌顶。最后突然发现:bug原来就在那里!
至于为什么要选小黄鸭,小七觉得主要有两个原因:一是因为小黄鸭外表可爱,颜色又比较醒目,有助于集中注意力。二是因为你压力大的时候还能用它来发泄一波(反正也捏不烂)。
不过,小黄鸭的真正作用还是让人有一个单方面的交流对象。debug最有效的途径是理清思路,这需要在调试代码时一行一行地反复检查,说白了就是自己解释给自己听。但是如果没有交流对象的话,这种行为就变成了单纯的自言自语了。所以,小黄鸭其实只是一种形式,它存在的意义只是让你在自查代码时不那么尴尬。
搞清楚了这种方法的本质,那么小黄鸭也就不是唯一的选择了。
你可以选择仙人掌debug法:
image.png
豹力debug法:
高达debug法:
初音未来debug法:
婴儿debug法:
一边阐述代码,一边观察实际情况,两者之间一旦出现不协调,就很容易找到问题所在,因此,小黄鸭调试法虽然看起来有点不着边际,但实际上确实十分实用的方法。
对了,狗年快要过去了,要不拿出镜子,试试单身狗调试法?
网友评论