成为Apache顶级项目核心贡献者是一种什么样的体验?
編輯 | Sai
視頻 | 二叉樹團隊
幾年前,國內(nèi)對開源的認知是:我們做不了開源,我們創(chuàng)新力不夠。那時候國產(chǎn)開源項目要進 Apache?想也別想!而現(xiàn)在 Apache 里面的國內(nèi)開源項目一只手都數(shù)不過來。這里是二叉樹第四季,我們跟你聊聊開源這件事兒,本期嘉賓是一位 Apache 基金會頂級項目里的核心貢獻者,他來聊聊成為核心貢獻者是一種什么樣的體驗。??
“什么時候去做件大事吧!”
比如:成為 Apache 基金會頂級項目里的一位核心貢獻者。
這是一種什么樣的體驗?
下面且聽 Apache Flink 項目 Committer、Jark's Blog 的博主——伍翀(花名:云邪)的分享。
剛剛進入阿里的前半年,云邪是失落而迷茫的。
大學時代的云邪在各方面都非常優(yōu)秀:功課做得好,導師很器重,涉獵過前端、PHP、Ruby、Spark 等技術(shù),做過幾個網(wǎng)站賺外快,搭過論壇,還做過一個頗為受歡迎的開源博客主題 Jacman,在 Github 收獲了 900 多個 star。
簡而言之,是一位學霸。
“后來到研究生畢業(yè)的時候,我被阿里巴巴的技術(shù)氛圍所深深吸引,期望著加入一個技術(shù)殿堂般的團隊。”
2015 年,云邪進入了阿里的實時計算團隊,準備要一展身手、做一番重要的貢獻。
但是在大公司里,個人更多的是充當著螺絲釘。阿里是個臥虎藏龍的地方,身邊有很多特別優(yōu)秀的小伙伴。半年的時間很快過去,云邪覺得自己沒有達到心中預期的成績,失落感也就隨之而來。
同樣在 2015 年,Apache Flink 正式升級成為 Apache 基金會頂級項目。早在研究生階段就研究過 Spark 的云邪,對 Flink 項目并不陌生。這是大數(shù)據(jù)領(lǐng)域一個新興的明星項目,跟實時計算有密切的關(guān)系。技術(shù)嗅覺告訴他,這可能會是未來大數(shù)據(jù)技術(shù)的發(fā)展方向。
有一天,云邪找到他的主管,說:
“我想去研究 Flink。我覺得我們團隊需要有一個人去研究這個方向。”
主管很支持,并且設定了一個目標:
“一年成為 committer。”
英文直接翻譯過來成為中文,committer 的意思是“做過承諾的人”。在一個開源項目里,往往有一個核心的開發(fā)者或者開發(fā)團隊來把握整個項目的發(fā)展策略,其他人來給這個項目貢獻代碼之后,由這個核心團隊來審查,決定是否合并。項目越龐大、越重要,貢獻的人越多,這個核心的團隊就越重要。
在開源項目的團隊里,很多決策是基于“信任”機制。一般的開發(fā)者來貢獻代碼,就是一個貢獻者(contributor)。每一個貢獻上來的代碼經(jīng)過代碼審查,經(jīng)過探討與修改,符合項目發(fā)展方向的就被合并入主線。當一位貢獻者做過很多貢獻,核心團隊的大部分人認為這是一位很靠譜的貢獻者,懂得為自己的投入做出承諾,則該貢獻者會被認可成為一位 committer。
一般而言,這是一個相對漫長的過程。項目越是重大,被認可成為 committer 的難度就越大,因為需要獲得更多人、更深的信任。
“你從一個對 Flink 一無所知的小白,要成為一個 commiter,中間還是有很多困難要跨過去的?”
“嗯,當時也沒有想很多,其實當時這個目標還是設的挺膽大的。”
“后來我就開始研究 Flink 的源碼,大概花了兩三個月的時間,把 Flink 的核心源碼都看了一遍,一邊看代碼一遍寫博客。” 這些博客文章后來也都成了國內(nèi)學習 Flink 的優(yōu)質(zhì)材料。
那個時候,Flink 社區(qū)里國內(nèi)的參與者還比較少。
“你還記得你提交的第一個 patch 嗎?”
“我當時提交的第一個 patch 是 fix 了一個非常簡單的 bug,就是打印的日志里面的一個單詞寫錯了。然后當時提交上去,很快,當天,社區(qū)的人就幫我 review 了,之后就進入了 master 的分支。雖然它是一個非常小的改動,但是你就覺得你終于進到社區(qū)里面去了,你的名字、你的郵箱就顯示在了他那個倉庫的 contributor 列表里。”
“這件事情就能讓你高興好久。”
隨著提交的次數(shù)越來越多,社區(qū)里的人開始注意到云邪,后來的一次線下技術(shù)交流中,Flink 的創(chuàng)始人、dataArtisans CTO —— Stephan 做了技術(shù)分享和交流,云邪也有幸參與了,這是云邪第一次與這個層面的技術(shù)大牛零距離接觸。
“Stephan 先生是我的偶像:)”
“那次就突然發(fā)現(xiàn),原來在郵件列表接觸的技術(shù)大牛,在線下是這么的平易近人!這讓我對社區(qū)產(chǎn)生了更大的興趣。”
“后來又有一次技術(shù)交流的時候,他還能夠認得我,這件事情我還是高興挺久的。”
“后來這一年你大概提交了多少次?”
“提交了大概有五六十次,總共有上萬多行代碼,最大的一個有五六千行。最大的一個來來回回討論了很久,在郵件列表里面來來回回有上百次的討論,最后進去了,也是比較開心。”
"2017 年春節(jié)的時候,我收到了社區(qū) committer 的邀請信。"
“你覺得成為 committer 對你來說最大的收獲是什么?”
“我覺得成為 committer 最大的收獲是這個過程中你學到的東西。社區(qū)里面有特別多的大牛,社區(qū)的代碼規(guī)范要求也比較高,在這個過程中,你提交的每一個代碼都有那么多牛人來指導你,來糾正你的設計,那對你其實是非常寶貴的財富。你這一段時間堅持下來,成為了一個 committer,你再回過頭來做一些其他的事情,去做一些其他的設計的時候,你會更加有信心。”
“你覺得作為一個軟件工程師最高的狀態(tài)是怎樣的?”
“就像 Linus 一樣,把開源寫代碼當作是人生的一種樂趣,而不是一個謀飯碗的東西,我覺得是非常非常幸福的。”
現(xiàn)在的云邪,也已經(jīng)進入一個為社區(qū)里面的新人傳授布道的新角色。12 月 20 日 -21 日,云邪將在 Flink Forward China 2018 (Apache 基金會官方授權(quán),國內(nèi)首次 Apache Flink 頂級峰會)帶來主題演講。借著這個機會,他也希望邀請更多人來一起關(guān)注 Flink,一起參與到 Flink 項目的貢獻工作當中。
“開源更多是一種責任。社區(qū)對你的認可,是希望你能夠?qū)ι鐓^(qū)有更多的貢獻,能夠幫助社區(qū)更多的去成長。“
“中國的 committer 越來越多,當然也是一件好事了!”
總結(jié)
以上是生活随笔為你收集整理的成为Apache顶级项目核心贡献者是一种什么样的体验?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面试java后端开发之后的一些感受
- 下一篇: Gartner:2019年七大AI科技趋