我如何选择开源项目

今天早些时候有人在推特上发送了一张图片。 它的标题类似于“如何选择开源项目”之类。 它显示了流程图。 第一个决策点是:这是一个Apache项目。 如果是,那么创建者建议不要使用该项目。 我看着这张图片,心想:哇,什么东西完全胡扯。

是的,过去曾进行过一些讨论。 Apache有害吗? 还是不是 ? 有些人似乎忘记了GitHub是一个工具。 Apache Software Foundation是一个社区。 该工具和社区都有其优点和缺点。 但是您无法将它们进行1:1比较。 您是否曾经尝试过与github伙伴见面? 结识ASF家伙并一起喝啤酒的可能性确实很高。

开源项目不仅仅是其工具集。

但是这篇文章不是关于更好的东西,github或ASF。 关于它的讨论已经很多了(废话太多了)。 真正令我感到困扰的是,人们似乎在选择开源项目之后使用了这些项目。

这是我的个人清单,之后我选择项目。 请随时通过电子邮件或评论将您的建议发送给我,并且不要忘了对此信息+1

该项目是否正在积极开发?

查看项目的源代码浏览器。 最后一次提交何时发生? 如果最近有一个,是否仅接触自述文件或代码已更改? 六个月以上没有看到更新的项目要么非常非常稳定(不太可能),要么不再感兴趣。

还有更多的人在发展吗?

单人秀有时可能会起作用,但是如果有很多人在从事一个项目,那么不可能修复紧急错误。 只有一个人在项目后面,您需要等待修复,直到他从假期回来。

有什么支持吗?

您可以遵循的Twitter帐户并没有真正的支持。 您可以发送要点,好的,但是您不能期望深入的答复。 甚至Stackoverflow还不够。 Stackoverflow很好,但是有时您需要直接与开发人员联系。 嘿,有时候您刚开始时会遇到一个愚蠢的问题,因此,您可能会因此而感到沮丧。

有知识产权许可吗?

源代码从哪里来? 来自作者? 真? 如果作者偷了怎么办? Apache Software Foundation具有在此处保护用户的机制。 在GitHub上还不清楚。 但是,即使有些公司可能会(也可能不会)关心这一点。 例如。 Twitter支持Bootstrap.io。 我的猜测是该软件具有干净的IP。
仅在知道软件来源的情况下,我才尝试使用软件。 这包括许多来自ASF的软件,一些Github或其他软件,例如jQuery.org。
人们很好吗?

当我使用开源时,创建者成为我的队友。 我通常会从我使用的大多数项目中查看源代码。 我想看一眼。 有时我有问题。 我不想在一个充满白痴或自我主义者的团队中工作。 如果人们很好,我使用它的可能性就会增加。

方法

项目如何开发以及如何进行质量控制? 例如,在Apache Commons,周围有很多人在看每个组件的每一个变化。 如果我们不应该放弃对JDK 1.3的支持,有时会进行冗长的讨论。 我们现在是否应该更改接口–它会破坏向后兼容性。 Commons提供了各种工具来检查二进制兼容性,错误释放等。 持续集成有助于保持质量。 最后,需要投票表决才能释放,每个选民都要检查。 要在ASF上发布一个发行版并不容易,有时需要5个或更多发行候选版。 我已经看到了GitHub上的项目也是如此。

有发行吗?

GitHub上的某些项目不发布。 他们要求您签出源代码并在更改时进行更新。 哇,这是真正的障碍物。 我想要测试的软件,我想要发行号。 敏捷开发很容易变成敏捷混乱。

人们在谈论吗?

如果我从未听说过软件并且没有人谈论它,那么我会小心。 这确实意味着如果您遇到问题,没有其他人可以为您提供帮助。

有文件吗?

文件? 完成? 可读吗? 有例子吗? 如果是,那就好。 如果没有,请走开。 如果开发人员不关心文档,那么他们对社区就没有真正的兴趣。 好的代码本身就是文件。 对。 但是当我在时间压力下无法阅读所有内容。

有社区吗?

该项目只是一个“我们停下来弄一个修复程序”小组,还是一个真正的社区? 社区具有团体效应的好处。 如果有些东西闻起来很讨厌,他们可能会叉。 如果“停止”组中出现问题,该组将死亡。

有一个头吗?

如果项目有1000个分支,而其中的许多更改在主干中找不到,那么我应该选择哪个? 更好的是一种版本控制系统。 我不在乎Apache Software Foundation的是Mercural和Bitbucket,Git和Github还是SVN。 在大多数情况下,我只是一个用户,f ** k,开发人员花费了很多时间,我留给他们他们如何开发! 重要的是,我必须拥有一个真实,酷炫的官方资源。

供应商

谁在运行项目? 是一个供应商吗? 有很多供应商吗? 还是个人的集体? 当项目仅由一个供应商支持时,我会非常小心。 如果是Bootstrap(Twitter),我不在乎。 这个项目很棒,但是很小,如果几天之内出现问题,我可以代替。 如果涉及到JBoss(红帽),我会更加谨慎。 当时,JBoss的策略已经赢得了一些批评。 在这种情况下,我希望使用Apache Geronimo 。 这是另一个JEE容器。 在ASF,人们承诺而不是公司。 即使有些公司付钱给提交人全职工作在项目上(例如使用OpenOffice.org),总会有很多其他人可以继续工作,以防万一。 ASF喜欢在他们的项目中拥有丰富的提交者。

执照

许可证是否清晰易懂? 源代码中是否有一个LICENSE文件? 我更喜欢AL2.0许可证(或类似的许可证,例如MIT),因为我可以用它做任何想做的事情。 我做了很多开源工作,但是老实说,有时候我需要出售我的软件,对于AL等人来说效果最好。 没有命名许可证,或者具有复杂的“双重许可证”模型或类似GPL的许可证的项目通常对我不可用。

致谢

感谢Simone TripodiMaurizio Cucchiara对这篇文章的宝贵反馈。

别忘了分享!

参考: 我是如何从我们的JCG合作伙伴 Christian Grobmeier的PHP und Java Entwickler博客中选择开源项目的


翻译自: https://www.javacodegeeks.com/2012/10/how-i-select-open-source-projects.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值