Apache 的開源社區法則

jopen 9年前發布 | 9K 次閱讀 Apache

原文  http://www.geekpark.net/topics/212444


編者注: Apache 軟件基金會總裁 Ross Gardler 在開源社舉辦的活動「社區重于代碼」上,闡述了 Apache 的開源社區法則。

Apache 軟件基金會管理著上百個開源項目,其中最出名的莫過于 1995 年開發出的 Web 服務器軟件 Apache。在 Apache 社區中規模位居前九的項目都是由非營利性組織進行管理的。

在 Ross Gardler 看來,Apache 社區一直維持著「社區重于代碼」的理念。

默認共識和時光機理論

Apache 的開源社區法則 (Apache 軟件基金會總裁 Ross Gardler)

在 Apache 整個社區中決策是通過達成共識來制定的,而非投票機制,因為投票機制很可能誘發分裂。這種做法被稱為「默認共識」:默認大家都是為了社區共同利益進行代碼修改。

當然,要多方達成共識非常耗時,不得不經歷聽取意見、討論意見最后爭論的過程。

在 Apache 開源社區中還遵循著名為「時光機」的理論:對某行代碼有自己的修改意見,你可先去修改,如果大家仍不滿意修改后的結果,則集體回歸到前一個版本的代碼中。

所有爭論最終都要回到代碼,由于使用的是同樣的編程語言,開發人員不會受到自然語言的限制。

借鑒于物種進化的代碼管理法則

Apache 開源社區借用了新物種進化過程來管理開源社區的代碼分歧。

Apache 的開源社區法則

隨著軟件不斷的趨異,共享的代碼便會越來越少。因為一個軟件不可能滿足所有用戶的需求,所以開發者會根據自己的個性化需求,在同一個代碼的基礎上,開發出不同軟件。

但從 Apache 基金會的角度看,只有在同一方向上繼續共享代碼才是最優過程。假設在社區中有兩個方案,A 方案有更高的執行效率,但 B 方案靈活性更高。選擇 A 還是 B ?無休止的爭論只是浪費時間。

Apache 基金會認為兩者進行合并或者代碼自身會說話。

如果社區在此過程中不加以干預,兩種軟件會越行越遠,直到它們所擁有的代碼基礎或者代碼庫已經不再可能融合。

有時候 A 和 B 永遠無法再被融合。這種現象也可以接受,比如用戶界面,不同的用戶希望有不一樣的表現形態。但在這種情況下,A 和 B之前共享的代碼可以持續進行合作和創新。

當然自然融合的時間會比較長,例如阿里去年 10 月基于 Apache storm 開發出了 Jstorm。但 Jstorm 是用 Java 編寫的,Apache Storm 用的是 Clojure 。目前兩者繼續存在分歧。

Apache 強調的是賦予人們使動的關系,而非上下級的命令指揮。從而建設一個范圍盡可能廣并且多元化的社區,孕育創新。

</span></article></div>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!