當前位置:
首頁 > 科技 > Apache頂級開源項目是怎樣煉成的?國內開發者應該如何借鑒?

Apache頂級開源項目是怎樣煉成的?國內開發者應該如何借鑒?

作者 | Justin Mclean

出處 |  阿里巴巴中間件

近日,Apache 孵化器主席、Apache 基金會成員、Dubbo & RocketMQ 等開源項目的導師 Justin Mclean 來到阿里巴巴西溪園區,與眾多開發者分享了如何打造一個 Apache 頂級項目,以及項目孵化過程會遇到的一些盲點和挑戰。現場為英文分享,本文在分享的基礎上做了些內容擴展,感謝阿里巴巴高級技術專家千臂對本文的校對和在內容上的貢獻。

Justin Mclean Bio:

Apache 孵化器主席,Apache 孵化器 PMC,Apache 軟體基金會成員,獨立程序員,30 年 + 編程經驗。包括 Dubbo 在內的多個 Apache 項目的導師,參與審核了 350+ Apache 孵化器項目的發布。

1

為什麼郵件列表仍是最主要的溝通方式?

Apache 是目前全球最大的軟體基金會,其第一個項目是 Apache Httpd Server,大家用過的諸多項目,例如 Dubbo, Log4j, Maven, RocketMQ 和 Tomcat 等,均孵化自 Apache。

中文名:Apache 軟體基金會 

英文名:Apache Software Foundation 

英文簡稱:ASF

ASF 正式創建於 1999 年,主要是為公眾提供有用的免費軟體,並為軟體開發者社區提供支持和服務,它的創建者是一個自稱為 Apache 組織的群體。

早在 1995 年,Apache 組織的成員聚集在一起,在美國伊利諾伊大學超級計算機應用程序國家中心開發的 NCSA HTTPd 伺服器的基礎上開發與維護了一個叫 Apache 的 HTTP 伺服器。

早期,NCSA HTTPd 伺服器是一個叫 Rob McCool 的程序員開發的,但是後來慢慢失去了興趣,導致這個功能強大又好用的伺服器沒人維護。於是一些愛好者和用戶就自發開始維護起來,並不斷改善功能、發布版本。為了更好的進行溝通,組織中的一位成員創建了一個郵件組,把維護工作高效的組織起來,並把這個軟體叫 Apache 伺服器。這也是為什麼 Apache 的所有項目至今仍然以郵件列表作為溝通的主要方式。

Apache 的命名來源於北美當地一支名叫 Apache 的印第安部落,這支部落以高超的軍事素養和超人的忍耐力著稱,19 世紀後半期對侵佔他們領土的入侵者進行了反抗。為了對這支部落表示敬仰,就取了這個名字。但這裡還流傳著一個小故事,說是在 NCSA HTTPd 基礎上,大家都通過打補丁不斷在修改這個軟體,被戲稱為 A Patchy Server,和 Apache Server 讀音很像。

Apache 官網開源項目列表

後來,隨著商業需求的增多,圍繞 Apache HTTP 伺服器的項目越來越多,也有一些外部組織開始捐獻項目給 Apache,以促進項目發展。為了讓這些外部項目能順利進入到 Apache,Apache 於 2002 年創建了 Incubator(孵化)項目。經過 20 多年的發展,截止 2018 年,ASF 已擁有 194 個頂級項目,54 個孵化項目,6500+ 位 committers,700 位基金會成員,196 位 PMC,50 個 podlings。其中,由中國開發者主導的項目,有 RocketMQ,WeeX,ECharts 和 Skywalking 等。

2

ASF 都有哪些成員?

參與 Apache 項目社區活動的人,一般分為以下幾類:



  • 直接用戶 User:

    通過使用社區的項目構建自己的業務架構的開發者都是 Apache 的用戶;


  • 貢獻者 Contributor:

    部分用戶在使用 Apache 某個或多個項目的過程中,遇到問題,自己通過分析調試找到解決方案,並提交給項目組,最終被接受,這些用戶就是 Apache 的貢獻者;


  • 提交者 Committer:

    貢獻多了,經過 PMC 的提議和投票,就會成為 Committer,Committer 即意味著正式加入 Apache,擁有 Apache 個人帳號以及相應項目的寫許可權;


  • PMC:

    Committer 再往上走就是 PMC,這個是由現有 PMC 成員提名產生的。

此外,ASF 還有 21 位創始成員,和一個 Board Member Team,主要負責基金會各類章程的制定和運作。

特別要強調的是 Project Management Committees,即 PMC,每個項目從孵化階段開始就會有 PMC,主要負責保證開源項目的社區活動都能運轉良好,這裡運轉的機制就是 The Apache Way。

3

什麼是 The Apache Way?

就像我們加入一家公司需要了解這家公司的文化一樣,參與 Apache 開源項目之前,我們也需要需要了解 ASF 的文化,這個文化就稱為 The Apache Way。



  • 公益使命 - Charity:

    ASF 是公益組織,使命是為全世界提供有用的軟體,並且全部免費。取之有道,用之有方。


  • 實用主義 - Pragramtic:

    相比 GPL,Apache License 有更廣泛的用戶基礎,有人的地方就有規矩,但社區沒有死板的規定,只有 guideline 幫助大家發展項目。No one is the Boss.


  • 社區勝於代碼 - Community:

    把項目構建出來這不是開源,去構建社區才是真正的開源。對社區而言,一切都是圍繞代碼而生,無代碼則社區不復存在。在代碼之上,則是如何做事、如何待人、如何決策的理念體現,一個健康的社區遠比優秀的代碼重要。如果代碼奇爛無比,社區可以重寫,但社區有了問題,代碼即便再好,最終也會付之東流。More resources than a company.


  • 公開透明與共識決策 - Open&Consensus:

    所有的決定,不管是技術 feature、發展方向,還是版本發布等,都應該被公開討論,而形式就是郵件列表,這些討論過程和結論都會被永久存檔。而討論的過程,就是大家自由發表意見的過程,最終通過投票,以比較民主的方法來做集體決定。If it doesn"t happen on email, it doesn"t happen.


  • 任人唯賢 - Merit:

    特彆強調一點,貢獻絕不僅僅是代碼,貢獻可以是很多方面,還包括修正中英文文檔,提交 PR,總結經驗分享到社區等等。Those that have proven they can do, get to do more.

4

開發者如何參與社區貢獻


  1. 第一步是先訂閱開發郵件組,以 Dubbo 為例,具體步驟可以參考這裡:


  2. 學習中英文文檔,進行修正或優化,提 PR。有疑問的地方,可以 E-mail 到郵件組或提 issue,官方開發者的回復通常會比 Google 或 StackOverFlow 里找到的答案更全面和準確。


  3. 如果你正在使用某個開源項目,可以將實踐經驗總結出來,寫篇 blog,分享到社區。真實的案例總是最具有說服力的。


  4. 參與 issue 和 PR 的解決,回答用戶的問題、PR 的 review。Good first issue 以及 Help wanted 的 issue,總有一個適合你。


  5. 如果你想深入學習 Dubbo-rpc 框架,UT 是一個非常好的開始,完善和補充現有的 UT,一邊學習一邊貢獻,何樂而不為?


  6. 發現了 bug,報 issue,通過自己的努力最終解決了,提一個 issue,first-contributor 並不是那麼難,拼寫錯誤也算哦。


  7. 如果你發現一個可以幫助用戶更方便地使用 Dubbo,無論是開發、測試、調試、mock 還是其他工具,都可以貢獻到 Dubbo 生態中來。


  8. 最後社區非常歡迎大家通過郵件提想法,也歡迎大家多討論,你會發現,技術變牛的同時,英文也變的 666 了。

5

開源項目晉級之路

進? Apache 分為三個階段,準備階段、孵化階段和畢業階段。

準備階段:

找到願意幫助孵化的導師(通常是 3 位),向 Apache 提交進?孵化的申請,經過導師們討論並投票(獲得多數票即可通過),通過後進?就可以孵化了。

孵化階段:

分為兩大環節,第?個環節是公司和個人簽署協議向 Apache 移交代碼和知識產權。第二個環節是在導師的指導下按照 Apache 的規範,搭建開源項目的官網,在社區發布項目新版本並優化 build 流程,引入 committers 構建基於項目的開發者生態,逐步將生態做大。

畢業階段:

如果最終通過了成熟度評估,就可以順利畢業成為 Apache 的頂級項目了。

最後,當一位開發者提問 Justin,如何晉級成一位頂級程序員?他給出了這樣的答案:


  • 敢於試錯,不要擔心犯錯,這是寶貴的經歷,但要從中汲取經驗避免第二次犯錯;


  • 積极參加到開源社區,在社區可以鍛煉自己的思考能力和解決問題的能力,同時,可以認識很多志同道合的朋友,這是技術能力以外更重要的財富;


  • 髮型不重要。

6

友情推薦

阿里巴巴中間件團隊,是國內為數不多的極具技術挑戰性的團隊之一,依託於阿里巴巴集團的巨大流量和海量數據,以及集團對系統穩定性的高要求,使得團隊有機會去面對一個又一個的技術難題,創造一個又一個的技術奇蹟。我們是一群不安於現狀且喜歡折騰的人,未必很資深但是很執著、充滿熱情。大家來自五湖四海,到這裡一起解決技術難題,提升系統性能,完成業務突破,構建新的應用,玩轉技術、業務、數據和無線。我們在這裡發聲,在這裡互動,還有服務開發者的中間件小姐姐,更有不定期福利放出。公眾號:阿里巴巴中間件。


今日薦文

點擊下方圖片即可閱讀


GitHub 年度報告出爐!









現在,人工智慧和機器學習正在改變並塑造軟體的未來。軟體工程師正在進入這一領域,創造新的角色,例如機器學習工程師。

什麼時候應該使用機器學習演算法?什麼時候規則引擎是正確的方法?我們邀請到了來自 Google、BAT、360、京東、美團、小米等 40+ 一線 AI 技術專家,給大家帶來關於機器學習、知識圖譜、搜索推薦、計算機視覺、NLP 等熱門方向的最新落地案例,給你帶來更開闊的技術視野。

AICon 大會 8 折售票

火熱進行中,團購更優惠。點擊「

閱讀原文

」了解更多詳情!如有任何問題,可諮詢票務小姐姐:18514549229[微信同號]

我在等一個贊,或許下一個贊,能夠完成我的KPI~

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 InfoQ 的精彩文章:

從業務出海到架構升級,你的技術跟上業務發展了嗎?
秒開!深藏功與名的優質前端竟是它

TAG:InfoQ |