核心觀點#

身為爵士樂手,作者不只是「聽」音樂——他是在研究音樂。古典作曲家、小說家、詩人、雕塑家都從研究大師的作品中學習。軟體開發者也應該閱讀和研究既有的優秀程式碼,站在巨人的肩膀上。

關鍵概念#

  • 閱讀程式碼即學習:Design patterns 只涵蓋了程式碼閱讀能帶來的學習中很小的一部分。其他程式設計師如何解決演算法問題?如何命名變數和函式?如何處理跨平台通訊?這些都能透過閱讀既有程式碼來學習。
  • 用他人的程式碼反思自己:就像聽 John Coltrane 的錄音讓作者意識到自己的不足,閱讀優秀開發者的程式碼能帶來類似的謙卑效果,同時發現你從未想過的解法。
  • 培養自己的風格:透過大量閱讀不同風格的程式碼,你會逐漸發展出自己獨特的軟體開發風格,就像藝術家透過研究前人作品形成自己的風格。
  • 知道什麼已存在:閱讀程式碼的附帶好處是了解既有的程式庫和解決方案,避免重複造輪子。

Open source 軟體提供了幾乎無限的程式碼可供研究。挑選好的專案深入閱讀——也可以從壞的程式碼中學到「不該做什麼」。

行動建議#

  1. 挑選一個 open source 專案,像讀書一樣閱讀它。做筆記,寫評論並發表。找出至少一個可用的技巧,以及一個要加入「不該做的事」清單的壞習慣。
  2. 找一群志同道合的人,每月聚會一次,每次由一個人選出 2-200 行程式碼來研究討論,分析背後的設計決策。