談學習:讀源碼

小弟交日報,說看backbone和underscore的源碼看不懂,我回了郵件給他,摘錄於此,表達我對「讀源碼」這種行爲的見解。框架


我不同意新人以「讀源碼」的方式進行學習,由於相比於看文檔、看範例、實操開發,「讀源碼」的效率實在過低了。學習

這是有緣由的:backbone

  1. 對於大部分新人來講,多半「單看每一個字都認識,全放到一塊兒就不知道啥意思了」……速度上不去,只能看懂「How」,無從知曉「Why」。最後雖然知道原做者用的A方法、B方法、C方法,但到實戰的時候,仍是不知道怎麼作。
  2. 流行的庫和框架,大都經歷過數年的升級演變,甚至幾千次提交,和早年剛出現時相比面目全非,邏輯也再也不是淺顯易見的。「讀源碼」不包含演進的過程,上來就是別人提煉過、推導過的精髓,更加難以理解。
  3. 讀源碼」難以獲取成就感,由於成果難以衡量,里程碑難以界定,學到多少東西更是隻有本人知道。把這個當某天的內容報告給領導,等於明確表示本身工做量不飽和,極可能招致領導的不滿。

源碼徹底不應讀麼?天然不是。那麼何時讀呢?當技術精進到必定程度,或者業務詭異到必定程度,咱們天然會遇到前人沒有遇到過的問題;或者發現文檔中語焉不詳的地方。這個時候只能經過閱讀源碼找答案,並且這個時候讀源碼也是很合理高效的。由於:開發

  1. 極可能讀源碼是惟一途徑。
  2. 帶着問題去讀,目標集中,效率會很高。已經知道了「Why」了,只關心「How」。
  3. 解決目標問題的過程當中,可能學到不少以前不知道的東西。
相關文章
相關標籤/搜索