一名開源小白的Apache成長自述

一名開源小白的Apache成長自述

今天收到了來自Apache Vote我成為Serviceomb項目Committer的郵件,代表自己的貢獻得到了充分的肯定;除了感謝團隊的給力支持,我更希望將自己的成長經歷——如何踐行Apache Way的心得介紹給大家,讓大家愛上Apache開源社區,也能和我一樣成長為自己喜愛項目的Committer。


根據個人貢獻獲得價值(Government By Merit)

回憶我剛參與ServiceComb項目,面對上萬行的存量代碼,總覺得無從下手,甚至認為開源社區高手如雲,如果沒有深厚且對口的技術功底,還是不要來摻和了。在這個困難而關鍵的時候,社區導師給了我明確的指導——不要怕,從小事做起,不要“善小而不為”。於是我靜下心來,在Jira上尋找最簡單的任務,主動請纓的第一個任務是支持配置兼容,具體需求是cse.xxx配置項和servicecomb.xxx配置項要具備等同效果,經過一番努力,成功Merge PR ;之後我又接下另一個簡單任務,增加一個Annotation用於支持Json String作為請求參數……

Apache Way非常看重個人貢獻,沒有貢獻,一切無從談起,與開源軟件同行,不僅看你獲得了多少,更要堅持長期貢獻

,這是它與商業軟件最大的不同。貢獻並不區分大小,無論是增加重大特性,還是小小的改進、Bug Fix和修訂文檔錯誤,這些同樣是項目茁壯成長的關鍵。

實際上大多數開源愛好者都是從修訂文檔錯誤開始的,例如改正錯別字、格式不正確以及訂正描述等等,我對ServiceComb的理解也絕大多數來自這方面的工作;這樣不但能夠在閱讀文檔的過程中更快的瞭解技術細節,也比較容易入手做出貢獻。

總之堅持下來,個人積累的貢獻慢慢變厚,獲得Apache的認可自然水到渠成。


社區驅動(Community)

參與社區是技術成長最快的方式之一,Follow Apache社區的方式有訂閱郵件列表[1]加入Gitter聊天室[2];從看大家討論(討論郵件一般會使用[Discussion]開頭),到回答大家的問題(回覆郵件和發送Gitter聊天),相信用不了多久你就能收穫頗豐,並冒出自己的想法,邁出第一步提交第一個PR也就不難了。

ServiceComb作為一個微服務一站式解決方案,融合侵入式、非侵入式場景並支持多語言,解放開發者,幫助用戶和開發者將企業應用輕鬆微服務化和上雲;大家在這裡討論的話題、發起的投票、以及提交的代碼,無不與微服務密切相關。在這個社區中我不但學習到了知識,完成了開源(也包含微服務)小白的蛻變,還進一步接受了開源的洗禮——前輩指導我進步,我將所學傳遞給新人;這個過程中我結識了很多新朋友,大家互通有無,不但極大的開闊了視野,也提高了自己的社交能力。

Apache開發者來自全球,社區大多都是用英文來交流。通過閱讀英文資料,使用英文在Gitter[2]上與開發人員直接交流,通過英文郵件來探討問題,在不知不覺中自己的英文水平也大大提高了。


協作開發(Collaborative Development)

這也是我極力推薦參與開源社區開發的重要原因之一,當你提交PR後,無論代碼有多麼爛,你總能收穫寶貴的Comments

,不花錢獲得編程大師的指點——教你怎麼寫出優秀的代碼,這是多麼合算的買賣!

我在參與ServiceComb社區前,只知道Java基本語法,IDE不熟練(之前一直是用VS寫C#,不使用Eclipse和IntelliJ IDEA),不會Git,不懂Maven,還能有更糟糕的起點嗎:)

不用擔心,社區會指導你。我前文提到的第一個簡單的任務,花費了將近一週時間,被打回來了四五次後才被Merge;一個PR收穫60+ Comments也是家常便飯。這個過程中我的Java水平成長得飛快,不久後就能獨立承擔新特性的設計和開發——Metrics[3],當然,完成這個新特性的過程中Committer和其他開發者給予了很多支持,所以,請大膽的提交你的第一個PR,成為一名Contributor吧。


民主,開放和透明(Consensus, Open and Transparency)

在Apache社區裡投票至關重要,你可以感受到你的建議將被充分重視,我很喜歡這種參與感;大家的討論和建議也完全公開透明,並且能夠長時間通過郵件列表查詢到,溝通效率非常高。所以大家多多參與,一定能收穫驚喜,從萬能的社區裡尋找自己想要的答案,請記住,當你對某個問題產生困惑,即使是強大的StackOverflow也不會有原作者的答覆更為準確

寫在最後,我想說從一名開源小白成長為Apache Committer並不是無比艱難又遙不可及的事情,只需要日積月累的在社區中投入一點業餘時間,就能夢想成真。當然最好找到自己感興趣的社區,這會讓這段旅途更加愉快,也能交到更多志同道合的的朋友。


我可以做哪些貢獻

你想快速上手,可以在JIRA列表中認領newbie的任務[4]。

你規劃能力強,可以在郵件列表裡為ServiceComb的發展出謀劃策[5];

你擅長設計,可以為ServiceComb的網站和VI提出自己的意見[6];

你熱愛寫作,ServiceComb更是歡迎你來補充文檔,將ServiceCenter的英文文檔翻譯成中文或許是個不錯的上手選擇[7]。


寫在最後

最後,我想說從一名開源小白成長為Apache Committer並不是無比艱難又遙不可及的事情,

只需要日積月累的在社區中投入一點業餘時間,就能夢想成真。當然最好找到自己感興趣的社區,這會讓這段旅途更加愉快,也能交到更多志同道合的的朋友。


[1] http://servicecomb.incubator.apache.org/cn/developers/subscribe-mail-list/

[2] http://servicecomb.incubator.apache.org/cn/developers/use-gitter/

[3] http://servicecomb.incubator.apache.org/cn/users/metrics-in-1.0.0-m1/

[4] https://issues.apache.org/jira/browse/SCB-655?jql=project%20%3D%20SCB%20AND%20labels%3Dnewbie

[5] https://www.mail-archive.com/[email protected]/msg03298.html

[6] http://servicecomb.incubator.apache.org/

[7] https://github.com/apache/incubator-servicecomb-service-center/tree/master/docs


廣告時間:我所在的Apache ServiceComb(incubating)正持續招募貢獻者,非常歡迎大家加入,讓我們一起構建更好的微服務框架。


分享到:


相關文章: