小黄鸭调试法-程序猿修炼之道

什么是小黄鸭调试法

小黄鸭调试法(又称橡皮鸭调试法,黄鸭除虫法)是软件工程中使用的调试代码方法之一。此概念是参照于一个来自《程序员修炼之道》书中的一个故事。传说中程序大师随身携带一只小黄鸭,在调试代码的时候会在桌上放上这只小黄鸭,然后详细地向鸭子解释每行代码。

小黄鸭调试法适用场景

example A

程序猿A:又报错了,明明代码看起来没问题啊。。。
程序猿B:敲键盘。
程序猿A:明明什么都没做,怎么就报错了呢?
程序猿B:你在讲鬼故事吗?
程序猿A:帮我看一下,这里哪出现了问题?
程序猿B:这写的啥啊?
程序猿A:balabala,哦!我知道了。。。

example B

程序猿A:这又是个什么报错,这一串英文是什么鬼。
程序猿B:(我是一只小黄鸭,我不会说话)
程序猿A:(抠头皮)
程序猿B:(我是一只小黄鸭,我不会说话)
程序猿A:(吃手指)
程序猿B:(我是一只小黄鸭,我不会说话)
程序猿A:百度……半小时后
程序猿B:找到错误了吗?
程序猿A:你来帮我看一下,我先这样,再这样,然后这样,没问题啊,怎么就报错了。
程序猿B:你在说啥?
程序猿A:就是balabala,bilibili,我知道了!!!

小黄鸭调试法先决条件

由以上例子可以得知程序猿B从头到尾只是一个工具人,并没有什么作用。
这只是个名字,一个代号。你可以叫程序猿B,我也可以叫程序猿B,他们都可以。
因此万物皆可为程序猿B,那么小黄鸭也可以。
所以只需要有一只小黄鸭即可触发小黄鸭调试法的充分不必要条件
所以只需要有一只小黄鸭即可触发解决问题的必要不充分条件

得出公式:
codeMonkeyA me = new codeMonkeyA();
codeMonkeyB yellowDuck = new codeMonkeyB();
while(!problem.isSolve){
me.say();
yellowDuck.silent();
}
return problem.isSolve;

小黄鸭调试法最佳实践

  • 获取一只小黄鸭
    – channelA:点外卖送一只
    – channelB:淘宝买一只
    – channelC:生日礼物收到一只
    – channelD:new一只小黄鸭

小黄鸭调试法-程序猿修炼之道_第1张图片

  • 遇到问题,对着小黄鸭(工具鸭)balabala
    – methodA:肉眼看代码balabala
    – methodB:一边debug,一边balabala
    – methodC:一边抠头,一边balabala

  • 灵光一闪,问题解决
    – situationA:我知道了,原来是这样。
    – situationB:卧槽,这真是一个大坑。
    – situationC:这个锅我不接,有人改了代码。

总结

小黄鸭调试法实则是通过对着小黄鸭自言自语来整理程序猿思路,从而达到山穷水尽疑无路,柳暗花明又一村的豁然开朗之境。相较于抠头调试法啃手指调试法可以更高效、更健康的发现和解决问题,建议程序猿们多加练习和实践,早日成为程序大师。

你可能感兴趣的:(小黄鸭调试法-程序猿修炼之道)