神奇的「小黃鴨調(diào)試法」
2023-07-14 00:05 作者:Crossin的編程教室 | 我要投稿
大家好,歡迎來到 Crossin的編程教室 !
在程序員界流傳著一個神秘debug方法,叫做“小黃鴨調(diào)試法”(Rubber DuckDebugging)。
就是這樣的:

不好意思,放錯圖了,是這樣的:

沒錯,就是這個小黃鴨。
什么意思?什么意思?就是說,當(dāng)你被一段代碼整不會了,怎么看也看不出問題出在哪里的時候。你可以對著一只小黃鴨,一行一行解釋你的代碼。不僅解釋代碼的功能,你最好還要告訴鴨子你到底想實現(xiàn)什么目標(biāo),以及你打算通過什么樣的方法實現(xiàn),為什么要這么實現(xiàn)等等。當(dāng)你說著說著說著,哎,突然你就明白問題在哪了。就是這么的神奇。
這可不是我瞎掰的,這個方法已經(jīng)得到了大量程序員親身實踐的驗證。
為什么會有這種神奇的效果?
從原理上來說,這大概是因為:當(dāng)我們被程序中的bug卡住的時候,如果繼續(xù)沿著原有的思路去尋找答案,一時很容易陷入到自我的思維誤區(qū)之中而無法察覺。但當(dāng)你不得不向另外一個人或者物體去解釋你的代碼時,就不得不重新整理思路、轉(zhuǎn)換角度,更加全面地審視代碼,從而看到一些不一樣的細(xì)節(jié)。
而且這招還不僅僅是對編程有用,其他問題也一樣有效。你有沒有這樣的經(jīng)歷,有人跑過來找你問個問題,然后他開始吧啦吧啦講他的問題,講到一半突然:“哎呀,我明白了!”然后留下一臉懵逼的你在原地。這個時候,其實你就已經(jīng)在不知情的情況下,當(dāng)了一次小黃鴨。
所以,其實是不是“小黃鴨”并不重要,重要的是一個表述的對象。下次你寫代碼遇到bug的時候,也可以來試試看這個小黃鴨調(diào)試法。