一名開源小白的Apache成長自述
今天收到了來自Apache Vote我成為Serviceomb專案Committer的郵件,代表自己的貢獻得到了充分的肯定;除了感謝團隊的給力支援,我更希望將自己的成長經歷——如何踐行Apache Way的心得介紹給大家,讓大家愛上Apache開源社群,也能和我一樣成長為自己喜愛專案的Committer。
根據個人貢獻獲得價值(Government By Merit)
回憶我剛參與ServiceComb專案,面對上萬行的存量程式碼,總覺得無從下手,甚至認為開源社群高手如雲,如果沒有深厚且對口的技術功底,還是不要來摻和了。
在這個困難而關鍵的時候,社群導師給了我明確的指導——不要怕,從小事做起,不要“善小而不為”
cse.xxx
配置項和servicecomb.xxx
配置項要具備等同效果,經過一番努力,成功Merge PR ;之後我又接下另一個簡單任務,增加一個Annotation用於支援Json String作為請求引數……Apache Way非常看重個人貢獻,沒有貢獻,一切無從談起,與開源軟體同行,不僅看你獲得了多少,更要堅持長期貢獻,這是它與商業軟體最大的不同。貢獻並不區分大小,無論是增加重大特性,還是小小的改進、Bug Fix和修訂文件錯誤,這些同樣是專案茁壯成長的關鍵。
實際上大多數開源愛好者都是從修訂文件錯誤開始的
總之堅持下來,個人積累的貢獻慢慢變厚,獲得Apache的認可自然水到渠成。
社群驅動(Community)
參與社群是技術成長最快的方式之一,Follow Apache社群的方式有和;從看大家討論(討論郵件一般會使用[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,當然,完成這個新特性的過程中Committer和其他開發者給予了很多支援,所以,請大膽的提交你的第一個PR,成為一名Contributor吧。
民主,開放和透明(Consensus, Open and Transparency)
在Apache社群裡投票至關重要,你可以感受到你的建議將被充分重視,我很喜歡這種參與感;大家的討論和建議也完全公開透明,並且能夠長時間通過郵件列表查詢到,溝通效率非常高。所以大家多多參與,一定能收穫驚喜,從萬能的社群裡尋找自己想要的答案,請記住,當你對某個問題產生困惑,即使是強大的StackOverflow也不會有原作者的答覆更為準確。
我可以做哪些貢獻
你想快速上手,可以在JIRA列表中認領newbie的任務。
你熱愛寫作,ServiceComb更是歡迎你來補充文件,將ServiceCenter的英文文件翻譯成中文或許是個不錯的上手選擇[7]。
寫在最後
最後,我想說從一名開源小白成長為Apache Committer並不是無比艱難又遙不可及的事情,只需要日積月累的在社群中投入一點業餘時間,就能夢想成真。當然最好找到自己感興趣的社群,這會讓這段旅途更加愉快,也能交到更多志同道合的的朋友。廣告時間:我所在的Apache ServiceComb(incubating)正持續招募貢獻者,非常歡迎大家加入,讓我們一起構建更好的微服務框架,點選瞭解更多。