如何选择开源库?

时间:2010-06-02 18:19:32

标签: java open-source

当我们每个人用java编程时,他需要一个库(一些罐子)来完成他的工作。 所以当这个程序员找到他需要的一些库时。他怎么能找到最好的这些图书馆?

感谢。

2 个答案:

答案 0 :(得分:4)

我不是用Java编写的,但我确实需要搜索C ++和Python的库,这些是我的主要支持。

我认为您可以应用于在Google或SO和java.net等社区网站上找到的内容的一些标准包括以下内容:

  1. 该项目有多少记录?它只是API文档吗?它有样品吗?他们是记录在案还是只是吐出来的?有教程吗?
  2. 最后一次稳定/不稳定/测试版本是什么时候?版本控制日志是否表示项目中的活动? (Google Code projects在页面右侧有一个指示器,显示项目活动)他们的邮件列表是否有效?很多人会问问题和问题得到解答吗?开发人员是否在谈论他们的邮件列表?
  3. 您喜欢API吗?这既是个人偏好又是客观衡量的问题。作为一个例子,对于C ++ GUI,有些人更喜欢wxWidgets的API,而有些人更喜欢Qt的API,并且有些人在每个人中都更有效率,但也有人有充分的理由客观地相信为什么一个比其他API更好。
  4. 该项目是“着名的”吗?这有点不确定,因为它依赖于集体思考,但是根据它们是如何“着名的”或“众所周知的”或“广泛使用的”来考虑项目有一些优点。它有帮助,因为这通常是 可靠性指标(强调通常,即并非总是如此)。社区可能会更积极,更有知识。你可以利用已经熟悉这些API的现有程序员,雇用他们或招募他们等等。例如,我认为除了一般都很好之外,很多人都会以Lucene作为他们的文本搜索系统,因为它被广泛使用。
  5. 项目有多成熟?它是alpha吗?测试版?预发行?有时你会找到一个你真正喜欢的图书馆,但它非常原始。根据项目的性质,您可能需要重新考虑使用它。
  6. 总而言之,找到优秀Java库的一般好处可能是来自Apache的项目和Google发布的项目。

    这就是我现在所拥有的一切。带上一小撮盐。如果我还有其他要添加的内容,我将编辑此帖子。

    希望这有帮助!

答案 1 :(得分:1)

我很少需要额外的“通用”库。如果这就是你的目标,你可能会关注Apache的东西 - 有一些像这样的团体只做一般的好工作,但你可以在一般的图书馆得到的大部分东西,你可以写自己只是尽可能快地学会使用他们的东西。

偶尔我需要一个像SNMP库这样的特定库来提供特定的服务 - 这些实际上是需要的,因为重写它们会让人望而却步。正确选择这些更为重要,但通常没有太多可供选择,如果不这样做,同事几乎肯定会有一些经验或意见。

研究这样的事情应该是每个项目的预定部分 - 应该在项目的早期阶段确定进行研究的需要。