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)來輔助模擬
這個方法在 security、human-computer interaction 和 workflows 等領域特別有效。
重點回顧#
- 向橡皮鴨(或任何人)解釋你的程式碼,啟動不同的思考模式
- 積極參與 code review 實踐,既 review 別人也被 review
- 用角色扮演來除錯多方參與的問題