Item 39: Go Over Your Code and Reasoning with a Colleague#

Rubber Duck Technique#

Rubber duck technique 可能是本書中最有效的技術之一。它的做法是向別人解釋你的程式碼如何運作。通常在解釋到一半時,你就會驚呼:「等等,問題就在這裡!」

這不是因為你犯了愚蠢的錯誤——而是因為向別人解釋程式碼時,你啟動了大腦的不同部分,從而發現了問題。在大多數情況下,你的同事扮演的角色很小——向一隻橡皮鴨解釋問題同樣有效。

Code Review#

你也可以更正式地請同事 review 你的程式碼。在 code review 中,同事會仔細檢查程式碼的各個面向:

  • Code style 和 commenting
  • API 使用方式
  • 設計邏輯錯誤

一些組織甚至將 code review 作為將程式碼整合到 production branch 的先決條件。像 Gerrit 和 GitHub 的 code commenting 功能等工具可以幫助追蹤和記錄 review 意見的處理情況。

Code review 中的禮儀很重要:不要把評論當作人身攻擊,而要視為改進程式碼的機會。即使某個評論是錯的,也代表你的程式碼不夠清晰。如果你請別人 review 你的程式碼,你也應該主動 review 他們的。

Role Playing#

對於多方參與的演算法(如通訊協定),可以透過角色扮演來除錯:

  • 你和同事各扮演協定中的一方
  • 輪流嘗試執行破壞該協定
  • 傳遞實體物件(如 “edit” token)來輔助模擬

這個方法在 securityhuman-computer interactionworkflows 等領域特別有效。

重點回顧#

  • 向橡皮鴨(或任何人)解釋你的程式碼,啟動不同的思考模式
  • 積極參與 code review 實踐,既 review 別人也被 review
  • 用角色扮演來除錯多方參與的問題