「橡皮鴨除錯法」源自《The Pragmatic Programmer》一書:當你卡住時,找一隻橡皮鴨(或任何無生命物件),逐行向它解釋你的程式碼邏輯。在向「不會打斷、不會評判」的聽眾講解過程中,你往往會自己發現邏輯漏洞。
操作步驟
- 準備一隻橡皮鴨(或筆、杯子、同事……)。
- 放在螢幕旁,面對你。
- 打開原始碼(螢幕或列印版皆可)。
- 逐行、逐邏輯向鴨子解釋:「這裡我打算……」、「這個迴圈處理……」——重點在闡述意圖,而非單純唸語法。
- 當解釋與實際碼出現落差時,Bug 就浮現了。
- 別忘了感謝鴨子!
為什麼有效?
「一旦問題被充分描述其細節,解決方案顯而易見。」
- 外化思維:將隱性假設轉為顯性語言,強迫大腦從「寫碼模式」切換到「檢視模式」。
- 降低認知負載:不需同時記住上下文與推導邏輯,語音輸出釋放工作記憶體。
- Code Review 的雛形:本質上是自我代碼審查,許多團隊將此形式化為「結對編程」或「Walkthrough」。
實務建議
- 沒有鴨子?對著同事、貓、甚至空氣講也行。
- 若找真人當「鴨子」,請對方只聽不講,避免過早干擾你的思路。
- 配合列印程式碼、手寫標註,效果更佳。
- 養成習慣:提交 PR 前先「對鴨講一次」。
總結
橡皮鴨法零成本、零工具、隨時可用。它不是「跟玩具說話」的怪癖,而是結構化思考的外化工具。下次卡關時,試著找隻鴨子——你會驚訝於自己其實早就知道答案。