开源中同行评审的力度如何?

尚无读者喜欢这篇文章。
User experience vs. design

Opensource.com

虽然代码审查在专有软件开发公司中很常见,但开源软件开发的性质通常使得标准化的代码评估难以实现。因此,开源社区中成功的行业领导者或项目经理经常采用同行评审技术作为其开发周期中质量控制的标准。

一个标准的开源同行评审流程的例子始于软件作者将其代码和文档提交到其项目的邮件列表。然后,其他贡献者和项目经理会对其进行检查;社区和作者之间会讨论潜在的问题和改进,然后更改才会被接受或拒绝。GitHub 使用版本控制软件 Git 提供了一个简化的系统,项目经理可以在其中监督其源代码,同时仍然允许代码审查。由于其易用性,GitHub 已成为版本控制和代码审查的热门托管平台,截至 2011 年,已向该站点上传了超过 2,000,000 个存储库。

虽然开发人员可以使用一些工具来进行质量控制,但较小项目的代码审查技术的水平经常被忽视,这导致了混乱和未经检查的补丁发布。更成熟的开源项目不太容易出现这些问题,因为他们的开发人员可以使用明确的指南。即使较小的开发团队确实采用了软件同行评审,结果也几乎不统一。正如 Peter Rigby 在他的论文“开源软件项目中的同行评审:参数、统计模型和理论”中所述,“我们发现 OSS 同行评审是由被授权的专家异步进行的,他们专注于其专业领域内的更改。审阅者针对小的更改提供及时、定期的反馈。描述性统计清楚地表明,OSS 评审与传统的检查截然不同。”

有证据表明,同行评审可能是发现软件缺陷最有效的方法。在《代码大全》中,作者 Steve McConnell 指出,代码审查在确定软件故障方面的有效性比标准单元测试高出 30% 到 35%。开源开发为项目新成员提供的一个优势是,审查代码对于不熟悉的开发人员来说是一种轻松的方式,可以同时在一个项目中变得高效,并在社区文化中赢得认可。这还使得项目整体知识能够在程序员团队中传播,而不会稀释社区的优先事项。

开源开发团队需要专注于改进其同行代码审查方法,或开始制定软件评估程序。幸运的是,有很多关于此活动的文档可供参考。有关软件同行评审的重要性和改进的文章是非常好的资源;我个人喜欢的一篇是:同行代码审查的 11 个最佳实践,作者是 SmartBear Software。这是一篇关于基本软件同行评审原则的简短总结。虽然这篇文章并没有特别深入地探讨代码评估指南的具体细节,但它确实提供了一个简短的“经验法则”原则列表,以指导开发人员采用更精简和有用的代码审查技术。

随着开源软件越来越成为专有软件的流行替代方案,产品背后的开发能力必须得到改进,以提高社区的可靠性。采用更充分和标准化的同行代码审查技术的团队生产的软件会产生更用户友好和可靠的程序。确保标准化质量控制方案所需的时间是值得拥有更完善的产品的。

标签
User profile image.
Eden 是一名软件开发人员,专注于 Web 开发,常驻伦敦。她是开源软件的倡导者,并喜欢积极为开源社区做出贡献。

7 条评论

在我看来,随着正式的“协作”工具和托管服务的采用,外部人员的同行评审变得*越来越困难*。
大约在 20 年前,我通过向驱动程序的作者邮寄 uuencoded 补丁和问题的简短描述,修复了 Linux 内核驱动程序中的一个错误。我还向当时领先的 vi 克隆版本的作者建议了一个功能(鼠标集成),他实现了它。(Vim 在几个月后采用了它,命令是::set mouse=a)
我今天不知道如何完成这些事情中的任何一件。甚至不知道如何找到方法。您是否尝试过修复 Firefox 中的错误,甚至只是得到确认?
也许开源开发人员只是在防御垃圾邮件和破坏者,但他们为外部审阅者设置了过去不存在的障碍。如果您想知道为什么 shellshock 和 heartbleed 花了这么长时间才被报告和修复,就从这里开始。

将“the Linux kernel driver”改为“a Linux device driver”

回复 ,作者:访客 (未验证)

我百分之百同意您的观点。我认为开发人员需要扩大他们目前的代码编辑方法,不仅在公司内部,而且还要面向公众。如果他们害怕破坏者,他们需要聘用更高效的错误报告版主,而不是让公众保持沉默。我知道问题在于资金,但与大多数开源项目一样,有人愿意为此事业贡献他们的空闲时间。

回复 ,作者:访客 (未验证)

我百分之百同意您的观点。我认为开发人员需要扩大他们目前的代码编辑方法,不仅在公司内部,而且还要面向公众。如果他们害怕破坏者,他们需要聘用更高效的错误报告版主,而不是让公众保持沉默。我知道问题在于资金,但与大多数开源项目一样,有人愿意为此事业贡献他们的空闲时间。

回复 ,作者:访客 (未验证)

有趣的文章!Google Analytics 的开源分析平台替代方案 Piwik 正在考虑对大多数贡献(包括来自核心团队成员的贡献)进行预合并代码审查:https://github.com/piwik/piwik/issues/6916

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.