1. 程式人生 > >Spark 原始碼閱讀學習(一)

Spark 原始碼閱讀學習(一)

寫本文的目標就是立下 flag :好好研讀 Spark 原始碼,從 branch-0.7 這個分支開始。

如何通過閱讀原始碼提高自己

  • 大家都說要多讀優秀開源框架的原始碼,那麼怎麼讀呢?像 Apache Spark 在 GitHub 上有兩萬多個 commit,將原始碼匯入 IDEA 之後好多好多原始碼檔案,看著很絕望。
  • 後來我去看知乎上的如何去閱讀並學習一些優秀的開源框架的原始碼?,很多優秀的回答核心思想都是說要看開源框架早期的程式碼。其中有個回答是這樣說的:從第一個commit讀起來,而不是最後一個。 真的是一語中的。

選擇 Spark 的早期版本進行閱讀

  • 自從學習了從專案早期程式碼讀起來後,我下意識以為越早期的越好,就去 GitHub 上看分支號。最早期的分支是 branch-0.5,也就是版本號為 0.5 的程式碼;然後就下載下來看了一下。嗯,我不是通過切分支看的,而是通過下載zip包。只有 800 多個 commit ,程式碼好少,真應了那句:“偉大的專案不是一開始就很偉大,而是越來越偉大”。但是有個非常大的問題,0.5 版本的程式碼沒有 maven 管理依賴,同時代碼之間的依賴也不能方便跳轉(也有可能是在下的開啟姿勢不對)。
  • 然後為了找個更加方便閱讀的,就去查了一下哪個版本開始有 maven 管理依賴,是 0.7 開始。於是從現在開始認真研讀 0.7 的程式碼。(flag 已立)

Spark 的第一個 commit

  • 既然有人說要從第一個 commit 開始讀起來,那 Spark 的第一個 commit 是什麼呢?同時怎麼才能從 GitHub 上翻到第一個 commit。
  • 在SF上有個提問:如何快速檢視github上的第一次commit。然後我就根據指點成功翻到了 Spark 的第一個 commit。
https://github.com/apache/spark/commit/df29d0ea4c8b7137fdd1844219c7d489e3b0d9c9

結束語

這是一個開始!