小黄鸭调试法-程序猿修炼之道
什么是小黃鴨調試法
小黃鴨調試法(又稱橡皮鴨調試法,黃鴨除蟲法)是軟件工程中使用的調試代碼方法之一。此概念是參照于一個來自《程序員修煉之道》書中的一個故事。傳說中程序大師隨身攜帶一只小黃鴨,在調試代碼的時候會在桌上放上這只小黃鴨,然后詳細地向鴨子解釋每行代碼。
小黃鴨調試法適用場景
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:這個鍋我不接,有人改了代碼。
總結
小黃鴨調試法實則是通過對著小黃鴨自言自語來整理程序猿思路,從而達到山窮水盡疑無路,柳暗花明又一村的豁然開朗之境。相較于摳頭調試法和啃手指調試法可以更高效、更健康的發現和解決問題,建議程序猿們多加練習和實踐,早日成為程序大師。
總結
以上是生活随笔為你收集整理的小黄鸭调试法-程序猿修炼之道的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV图像处理专栏十七 | 清华大
- 下一篇: 对抗生成网络(GAN)学习笔记