小黄鸭调试法,他不是精神分裂!他只是在debug

许多程序员都有过这样的经历:花了一下午或一整天的时间,在试图解决某个Bug,但问题似乎很复杂,总是没有思路。拉个人过来(甚至可能完全不会编程的人),和他blablabla讲了一通,很多时候中途就自己找到了解决办法。

其实呢,这种方法,有一个术语:

小黄鸭调试法(RubberDuck Debugging)

小黄鸭调试法,他不是精神分裂!他只是在debug_第1张图片

小黄鸭调试法(又称橡皮鸭调试法,黄鸭除虫法)是软件工程中使用的调试代码方法之一。就是在程序的调试、纠错或测试过程中,耐心地向小黄鸭解释每一行程序的作用,以此来激发灵感。

Wiki地址:https://en.wikipedia.org/wiki/Rubber_duck_debugging

此概念是参照于来自《程序员修炼之道》书中的一个故事。故事中的程序大师随身携带一只小黄鸭,在调试代码的时候会把这只小黄鸭放在桌上,然后详细地向小黄鸭解释每行代码。直到突然间,感受到一股神奇的力量从丹田涌起,直冲天灵盖,Bug就在那里!

小黄鸭调试法,他不是精神分裂!他只是在debug_第2张图片

这样高深的技巧流传开后,也并不一定需要小黄鸭了。于是大家纷纷创新,发明了仙人掌Debug大法,喵喵Debug大法,初音Debug大法……


小黄鸭调试法,他不是精神分裂!他只是在debug_第3张图片
小黄鸭调试法,他不是精神分裂!他只是在debug_第4张图片

所以“小黄鸭”只是一个形式,其主要目的是要你把自己写的代码做“自查”,也就是自己解释给自己听。当然,为了不让你像个“精神分裂”的程序员,引入“小黄鸭”是很有必要的。

一边阐述代码的意图、一边观察它实际上的意图并做调试,这两者之间的任何不协调会变得很明显,并且更容易发现自己的错误。其真实的本质是Code

Review。

Oncea problem is described in sufficient detail, its solution is obvious.

在你身边找不到小黄鸭的时候,你可以找到你的同事、你的朋友,来做这个小黄鸭。当然,他们并不一定有小黄鸭好使,因为你的那些同事或朋友一定会在你解释的时候,随意地发表意见和看法……

小黄鸭调试法,他不是精神分裂!他只是在debug_第5张图片

2017年是中国的鸡年,各处早已是“小黄鸡”的世界了,商贩卖的、游客头上戴的都是“小黄鸡”。

小黄鸭调试法,他不是精神分裂!他只是在debug_第6张图片

“小黄鸡”我们走~准备开启“小黄鸡Debug大法”!

(你们桌前都有哪些小萌物呢?留言告诉我哦~我们一起Debug)

关注微信公众号众致科技(zzkj1888),微博众和联致科技股份有限公司,定时推送,福利互动精彩多!

武汉众和联致科技股份有限公司

运营人员:小艺

你可能感兴趣的:(小黄鸭调试法,他不是精神分裂!他只是在debug)