成爲Apache頂級項目核心貢獻者是一種什麼樣的體驗?

「何時去作件大事吧!」前端

好比:成爲 Apache 基金會頂級項目裏的一位核心貢獻者。app

這是一種什麼樣的體驗?ide

下面且聽 Apache Flink 項目 Committer、Jark's Blog 的博主——伍翀(花名:雲邪)的分享。學習


剛剛進入阿里的前半年,雲邪是失落而迷茫的。大數據

大學時代的雲邪在各方面都很是優秀:功課作得好,導師很器重,涉獵過前端、PHP、Ruby、Spark 等技術,作過幾個網站賺外快,搭過論壇,還作過一個頗爲受歡迎的開源博客主題 Jacman,在 Github 收穫了 900 多個 star。網站

簡而言之,是一位學霸。spa

「後來到研究生畢業的時候,我被阿里巴巴的技術氛圍所深深吸引,指望着加入一個技術殿堂般的團隊。」翻譯

2015 年,雲邪進入了阿里的實時計算團隊,準備要一展身手、作一番重要的貢獻。設計

可是在大公司裏,我的更多的是充當着螺絲釘。阿里是個臥虎藏龍的地方,身邊有不少特別優秀的小夥伴。半年的時間很快過去,雲邪以爲本身沒有達到心中預期的成績,失落感也就隨之而來。日誌


一樣在 2015 年,Apache Flink 正式升級成爲 Apache 基金會頂級項目。早在研究生階段就研究過 Spark 的雲邪,對 Flink 項目並不陌生。這是大數據領域一個新興的明星項目,跟實時計算有密切的關係。技術嗅覺告訴他,這可能會是將來大數據技術的發展方向。

有一天,雲邪找到他的主管,說:

「我想去研究 Flink。我以爲咱們團隊須要有一我的去研究這個方向。」

主管很支持,而且設定了一個目標:

「一年成爲 committer。」


英文直接翻譯過來成爲中文,committer 的意思是「作過承諾的人」。在一個開源項目裏,每每有一個核心的開發者或者開發團隊來把握整個項目的發展策略,其餘人來給這個項目貢獻代碼以後,由這個核心團隊來審查,決定是否合併。項目越龐大、越重要,貢獻的人越多,這個核心的團隊就越重要。

在開源項目的團隊裏,不少決策是基於「信任」機制。通常的開發者來貢獻代碼,就是一個貢獻者(contributor)。每個貢獻上來的代碼通過代碼審查,通過探討與修改,符合項目發展方向的就被合併入主線。當一位貢獻者作過不少貢獻,核心團隊的大部分人認爲這是一位很靠譜的貢獻者,懂得爲本身的投入作出承諾,則該貢獻者會被承認成爲一位 committer。

通常而言,這是一個相對漫長的過程。項目越是重大,被承認成爲 committer 的難度就越大,由於須要得到更多人、更深的信任。

「你從一個對 Flink 一無所知的小白,要成爲一個 commiter,中間仍是有不少困難要跨過去的?」

「嗯,當時也沒有想不少,其實當時這個目標仍是設的挺膽大的。」

「後來我就開始研究 Flink 的源碼,大概花了兩三個月的時間,把 Flink 的核心源碼都看了一遍,一邊看代碼一遍寫博客。」 這些博客文章後來也都成了國內學習 Flink 的優質材料。

那個時候,Flink 社區裏國內的參與者還比較少。


圖片

「你還記得你提交的第一個 patch 嗎?」

「我當時提交的第一個 patch 是 fix 了一個很是簡單的 bug,就是打印的日誌裏面的一個單詞寫錯了。而後當時提交上去,很快,當天,社區的人就幫我 review 了,以後就進入了 master 的分支。雖然它是一個很是小的改動,可是你就以爲你終於進到社區裏面去了,你的名字、你的郵箱就顯示在了他那個倉庫的 contributor 列表裏。」

「這件事情就能讓你高興很久。」

隨着提交的次數愈來愈多,社區裏的人開始注意到雲邪,後來的一次線下技術交流中,Flink 的創始人、dataArtisans CTO —— Stephan 作了技術分享和交流,雲邪也有幸參與了,這是雲邪第一次與這個層面的技術大牛零距離接觸。

「Stephan 先生是個人偶像:)」

「那次就忽然發現,原來在郵件列表接觸的技術大牛,在線下是這麼的平易近人!這讓我對社區產生了更大的興趣。」

「後來又有一次技術交流的時候,他還可以認得我,這件事情我仍是高興挺久的。」

「後來這一年你大概提交了多少次?」

「提交了大概有五六十次,總共有上萬多行代碼,最大的一個有五六千行。最大的一個來來回回討論了好久,在郵件列表裏面來來回回有上百次的討論,最後進去了,也是比較開心。」


圖片

"2017 年春節的時候,我收到了社區 committer 的邀請信。"

「你以爲成爲 committer 對你來講最大的收穫是什麼?」

我以爲成爲 committer 最大的收穫是這個過程當中你學到的東西。社區裏面有特別多的大牛,社區的代碼規範要求也比較高,在這個過程當中,你提交的每個代碼都有那麼多牛人來指導你,來糾正你的設計,那對你實際上是很是寶貴的財富。你這一段時間堅持下來,成爲了一個 committer,你再回過頭來作一些其餘的事情,去作一些其餘的設計的時候,你會更加有信心。」

「你以爲做爲一個軟件工程師最高的狀態是怎樣的?」

「就像 Linus 同樣,把開源寫代碼看成是人生的一種樂趣,而不是一個謀飯碗的東西,我以爲是很是很是幸福的。」

如今的雲邪,也已經進入一個爲社區裏面的新人傳授佈道的新角色。12 月 20 日 -21 日,雲邪將在 Flink Forward China 2018 (Apache 基金會官方受權,國內首次 Apache Flink 頂級峯會)帶來主題演講。藉着這個機會,他也但願邀請更多人來一塊兒關注 Flink,一塊兒參與到 Flink 項目的貢獻工做當中。

「開源更可能是一種責任。社區對你的承認,是但願你可以對社區有更多的貢獻,可以幫助社區更多的去成長。「

「中國的 committer 愈來愈多,固然也是一件好事了!」

相關文章
相關標籤/搜索