2010-05-16 80 views
1

我以前就想過這個話題,而這個話題經常讓我遠離開源項目。最近DotNetPanel已將其名稱更改爲WebSitePanel,並且已開放源代碼。傳言工廠正在推測微軟正在落後於此。開源代碼完整性 - 質量保證如何工作?

我的問題(多部分)非常簡單。有人可以向我解釋質量保證在開源項目中的作用嗎?開放源代碼時,封閉的應用程序如何才能「只有更好」?如果有太多開發者爲項目貢獻(可能是壞的)代碼,那麼「廚房裏的廚師太多」理論不適用嗎?

+0

我最大的擔心是當一個蹩腳的開發人員向SVN提交一些隨機垃圾,並且其他人將其拖入其存儲庫。 – 2010-05-16 01:31:35

+0

主觀性,爭議性和不重視。也許像社區wiki一樣可以保存。 – bmargulies 2010-05-16 02:26:01

+0

這種主觀的,爭論性的或不適當的?作爲一名軟件開發人員,我正在尋找關於FOSS項目QA的準確答案,因爲它們與我自己的開發和業務有關。 – 2010-05-16 02:46:42

回答

2

這太開放了。我會盡力回答。

  • 首先,關於開源代碼的質量最大的參數幾乎無關貢獻代碼的人,更多的是與人查看代碼。例如。如果尋找bug的人組成5個項目開發者和2個QA部門人員(隨機選擇一個例子),這個級別的關注很容易被開發人員關注代碼的10秒,100秒或1000秒打敗,具體取決於項目的使用和流行度。

    如果您認爲這不會發生在現實生活中,那麼您的個人軼事 - 我親自檢查 - 至少在表面上 - 我在代碼中使用的幾乎每個CPAN模塊的代碼。如果我發現,積極報告任何錯誤問題。

  • 二,潛在的測試者池。顯然,FOSS代碼有更多的用戶(因爲可能由於價格或哲學上的異議而在封閉源代碼版本中進行擴展的人被添加到池中) - 而後者可能被自行選擇爲合格的測試人員和開發人員。

  • 第三,一個好的自由/開源軟件項目有高質量的開發者或團隊,他們的工作就是整合代碼並確保其質量。主要差異實際上有利於FOSS模型 - 與商業公司相比,潛在客戶沒有時間壓力,因此有更多機會投入儘可能多的時間來確保質量,代碼評審等。

  • 最後但並非最不重要的是,您似乎在假設任何人在專有代碼庫上工作都會自動提供對該項目沒有壞處的代碼的情況下運行?如果是這樣,你可能會誤認爲 - 這是來自那些在公司門口工作的專業開發職業生涯接近100%的人。

只給這個味道,我個人,正如我所說,在企業專有軟件的工作,從來沒有與FOSS項目(部分是由於缺乏時間)以外的其他測試,並根據需要報告bug相關通過我自己的用法,只使用FOSS的東西出於實際的原因(質量/功能)而不是哲學的東西。

+0

所以基本上是其他用戶發現錯誤和缺陷。因此,添加模塊的初始SVN提交可能會非常糟糕,但是隨着更多人想要使用它(並發現進程中的錯誤),該模塊會獲得更多關注,從而使問題浮出水面並得到解決? – 2010-05-16 01:31:05

+0

@rockinthesixstring - 首先,在閱讀初始版本後,我添加了更多的原因;其次,假設沒有項目負責人/調解人是其中的一種模式。看起來真正優秀的人通常確實有這些,而不是Joe Random Check -iner的無政府狀態,而不管他們想要的代碼是什麼。以gcc,Linux,Mozilla,gpsd或Perl爲例。 – DVK 2010-05-16 01:35:33

+0

當你說「第三,一個很好的FOSS項目有高質量的首席開發人員或團隊」時,我的問題是......一個主要開發人員如何將盡可能多的時間投入到FOSS以至於他們可以投入商業項目?至少在商業項目中,鉛可以得到報酬。 – 2010-05-16 01:38:50

2

請常識。如果你下載了一個隨機的人發佈到一個不受控制的僞造的代碼,那麼你正在運氣。在相信它之前,你最好非常小心。另一方面,考慮來自項目的代碼,該項目具有10年的記錄和一套完整的內部控制和程序(例如,Apache Xerces)。你知道更多的關於它的出身和內容,你知道的關於你得到的二進制文件,哦,微軟或者Sun。你可以採取或離開'很多眼球'的論點。如果您可以閱讀整個電子郵件存檔並查看所有源歷史記錄,則可以自行判斷。如果你知道這個軟件包的使用非常廣泛,那麼你就有信任所有在你之前進行過評估的人。

許多着名的FOSS項目都是由支付給他們工作的人填充,只是爲了折騰另一個事實。大量的非FOSS是由過度勞累,超負荷,欠薪的開發者創造的,他們沒有時間和資源來完成他們最好的工作。

+0

我同意100%的常識座右銘。我只是想弄清楚它是如何工作的。由於它是「開放」源代碼,我想知道是否有任何一夜飛行的開發人員可以爲代碼做出貢獻,或者如果在提交前確保完整性,在此過程中是否有檢查中止。 – 2010-05-16 02:49:34

+2

具體回答:對於大多數開源項目,只有有限數量的人(核心開發人員)實際上擁有對代碼的寫入權限。但任何人都可以製作自己的本地副本,並根據需要更改本地副本。如果他們做了一些有用的修改,比如修復一個bug,他們可以創建一個修補程序,將其發送給核心開發人員,並要求他們將這些修改應用到代碼中。當核心開發人員注意到某人屢次作出有用的貢獻時,他們可能會提供該人員訪問「守則」的權限。 – 2010-05-16 03:21:44

+0

Damn @David ..這就是我正在尋找的答案。 – 2010-05-16 03:24:54