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

  • Post author:
  • Post category:其他




什么是小黄鸭调试法

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



小黄鸭调试法适用场景


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一只小黄鸭

在这里插入图片描述

  • 遇到问题,对着小黄鸭(工具鸭)balabala

    – methodA:肉眼看代码balabala

    – methodB:一边debug,一边balabala

    – methodC:一边抠头,一边balabala

  • 灵光一闪,问题解决

    – situationA:我知道了,原来是这样。

    – situationB:卧槽,这真是一个大坑。

    – situationC:这个锅我不接,有人改了代码。



总结


小黄鸭调试法

实则是通过对着小黄鸭自言自语来整理程序猿思路,从而达到山穷水尽疑无路,柳暗花明又一村的豁然开朗之境。相较于

抠头调试法



啃手指调试法

可以更高效、更健康的发现和解决问题,建议程序猿们多加练习和实践,早日成为程序大师。



版权声明:本文为qq_40359381原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。