小黃鴨除錯法
小黃鴨除錯法,又稱橡皮鴨除錯法、黃鴨除蟲法(Rubber Duck Debugging)是可在軟體工程中使用的一種程式碼除错的方法。方法就是在程式的除錯或測試過程中,操作人耐心地向小黃鴨解釋每一行程式的作用,以此來激發靈感與發現矛盾。
名稱由來
此概念是參照於一個故事。故事中程式大師隨身攜帶一隻小黃鴨,在程式碼除錯的時候會在桌上放上這隻小黃鴨,然後詳細地向鴨子解釋每行程式碼。[1]
許多程式設計師都有向別人提問及解釋程式設計問題的經歷,而對象甚至可能是完全不懂程式設計的人。而就在解釋的過程中,程式設計師可能就發覺了問題的解決方案。一邊闡述程式碼的意圖,一邊觀察它實際上的行為並做除錯,兩者間的任何不協調都會變得更明顯,使人更容易發現錯誤所在。[2]如果沒有玩具小鴨,操作人也可以向其他任何東西傾訴,比如桌上的盆栽、鍵盤及滑鼠等。
流行文化
「 | Insights are often found by simply describing the problem aloud. | 」 |
——Duck,Quack Overflow |
2018年4月1日愚人節當天,問答網站Stack Exchange推出了名為「呱呱叫溢位(Quack Overflow)」的功能:一個小黃鴨形象會從網頁右下方冒出來,它會傾聽使用者的想法,並嘗試給出解決方案。實際上,這個小黃鴨形象會看起來在思考並且嘗試以文字回應,但最後只會以「呱呱」的鴨子叫聲來回應使用者。Stack Exchange宣稱這一功能與小黃鴨除錯法有關。[3]不過一些使用者在看到這個小黃鴨形象時,以為是惡意軟體的結果,沒有意識到這是一個愚人節玩笑。[4]
參見
參考資料
- ^ The Pragmatic Programmer: From Journeyman to Master. Addison Wesley. [2013-09-16]. ISBN 978-0201616224. (原始內容存檔於2015-09-27). p. 95, footnote.
- ^ Baker, SJ, The Contribution of the Cardboard Cutout Dog to Software Reliability and Maintainability, [2013-09-16], (原始內容存檔於2013-10-05).
- ^ Stack Exchange has been taken over by a rubber duck!. Meta Stack Exchange. 2018-03-31 [2018-04-01] (英語).
- ^ Purushothaman, Praveen Kumar. Quack Overflow - Stack Overflow's take on April Fool!. Adventures (Blog). 2018-03-31 [2018-04-01]. (原始內容存檔於2018-03-31) (英語).