2010-05-16 43 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