如何高效的學習開源專案?

weixin_34337265發表於2018-10-13

前言

一個好的開源專案可以提高我們的開發效率,同時它也是一個很好的學習資源,參照大牛的編碼風格和原理實現可以幫助我們養成良好的編碼習慣,學習到優秀的程式碼實踐。那麼我們應該如何高效的學習開源專案呢?

學習方法

學習學習再學習,好的學習方法可以讓我們事半功倍,我經過長期對開源專案的學習,總結出了一套學習開源專案的方法----自頂向下,大致思路就是先掌握基本的功能、原理和關鍵設計之後再去看原始碼---看原始碼的目的是為了學習其程式碼的寫作方式以及關鍵技術的實現

細分的話可以分為五個步驟:

step1-安裝

通過安裝獲取以下關鍵資訊:

  • 這個系統的依賴元件,而依賴的元件是系統設計和實現的基礎
  • 安裝目錄也可以提供一些使用和執行的基本資訊
  • 系統提供了哪些工具方便我們使用
step2-執行

特別關注:命令列和配置檔案

主要提供了兩個關鍵資訊,得以讓我們窺視系統內部執行機制和原理:

  • 系統具備哪些能力
  • 系統將會如何執行
step3-原理研究

專門針對原理進行系統性研究

怎樣才算系統性呢?

主要體現在如下幾個方面:

  • 關鍵特性的基本實現原理
  • 優缺點對比分析

原理研究的手段:

  • 通讀專案的設計文件
  • 閱讀網上已有的分析文件
  • Demo 驗證
step4-測試
step5-原始碼研究

原始碼研究的主要目的是學習原理背後的具體編碼如何實現,通過學習這些技巧來提升我們自己的技術能力

帶著明確目的去研究原始碼,做到有的放矢,才能事半功倍,這也是原始碼研究要放在最後的原因。

這五個步驟的難度是逐漸遞增的,一般我們只需要掌握前面三個步驟就可以掌握一個開源專案了,後面兩個步驟等學有餘力再花精力去學習。不要貪多求快,與其學習若干個開源專案,不如先將一個開源專案搞通透,隨著學習的開源專案越來越多,會發現學習起來越來越快,因為很多開源專案的原理實現是有相同部分的,當然這都是需要花大精力去完成的。

學如逆水行舟,不進則退,作為技術人,技術就是我們的屠龍刃,技術就是我們的過橋梯,可以幫助我們實現人生的夢想,以術證道,掌握人生的智慧,才能讓我們活得更加灑脫。

相關文章