开源项目什么时候可以投入生产?


16

当您找到一个新的开源库/项目时,在将其合并到您的源库中之前要先看什么标准。

  • 您需要回答法律问题吗?

  • 您是否在寻找一定的发展速度?

  • 社区嗡嗡声是否足够好?

  • 如果您是项目中的一员,您的决定会改变吗?

  • 域或代码的复杂性是否会改变您的思考方式?

Answers:


19

这是我关于项目成熟度的清单:

该项目是否已达到最初的里程碑?

如果未达到其自我描述的初始里程碑,我将避免添加任何代码。我不建议您始终信任声称其项目已准备就绪的开发人员,并且始终尝试评估此类声明,但是,当她告诉您不这样做时(例如将软件标记为0.x版),您绝对应该信任她。 alpha,beta,候选发布者等等。

有足够的文件吗?

一个完美的项目将提供:

  • 完整的用户指南和示例
  • 集成/扩展指南(如果是库)
  • API文档
  • 完整记录的源代码
  • 公共问题跟踪器

开发人员是否仍致力于该项目?

您永远无法确定开发人员在将来是否会保持承诺,除非这当然是基金会/公司支持的项目。但是您几乎可以始终通过检查以下内容来判断它们是否立即提交:

  • 最近的提交活动
  • 最新功能(不仅是错误修复)
  • 最近的文档活动(文档更新,博客文章等)

第二代开发人员是活跃的开发人员,他们在最初的里程碑之后就参与其中,这也是项目成熟度的一个良好指标。

开发人员可及吗?

  • 他们会回应错误吗?
  • 除了通用的问题跟踪器,他们还提供其他联系方式吗?这是清单上的次要项目,但对于单个开发人员项目,在“丢失开发人员的情况”之类的情况下,替代的联系方式可能会有所帮助。

现在,对于您更具体的问题:

速度

在一个带有公共问题跟踪器的项目中,我肯定会检查一下解决问题所需的时间。当然,速度并不总是意味着质量,因此我可能会解决一些封闭的问题,挑选一些我认为重要的问题,并评估开发人员的响应时间和质量。

许可证兼容性

至于法律问题,如果您不能百分百确定自己对开源项目的使用与其许可证兼容,请不要在代码库中集成开源项目。如有疑问,您可以随时询问项目的开发人员,甚至在这里询问。

社区炒作

您应该始终评估炒作。来自其他开发人员的建议几乎总是可以很好地表明项目的成熟度。

除许可证兼容性外,清单上的每个项目都是可选的。我已经在代码中集成了很多无效的或未记录的项目,它始终取决于您的特定需求以及您如何看待自己的代码的演变。


3

除了Yannis Rizos所说的答案外,如果可能的话,我会在短边或测试项目中尝试一下。这样,您就可以在遇到任何重要问题之前熟悉产品的怪癖。该项目不应太小,因为这将使过多的代码库无法开发。试一试,看看是否可以轻松完成所需的操作。如果您在文档的帮助下无法独自使用基础知识,或者对项目社区有一个或两个问题,那么您可能要考虑使用更合适的受支持的代码库。如果初步测试适合您,则可以开始实际使用它。过去,我不得不处理这个问题,在头两次之后,我将自己的新规则定为测试新事物,然后再投入生产,

BP明智的做法:在没有某种形式的准备/学习阶段的情况下,切勿引入新内容。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.