如何选择开源库?

发布于 2024-09-04 07:20:28 字数 1431 浏览 5 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

阳光的暖冬 2024-09-11 07:20:28

我不太用 Java 编程,但我确实需要寻找 C++ 和 Python 的库,它们是我的支柱。

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

  1. 该项目的文档记录如何?只是API文档吗?有样品吗?它们是被记录下来还是只是被吐出来?有教程吗?
  2. 最后一个稳定/不稳定/测试版本是什么时候?版本控制日志是否表明项目中的活动? (Google 代码项目在页面右侧有一个指示器,显示项目活动)他们的邮件是列出活跃的?很多人提出问题并且问题得到解答吗?开发人员是否在他们的邮件列表上进行讨论?
  3. API 符合您的喜好吗?这既是个人喜好的问题,也是客观衡量的问题。举个例子,对于 C++ GUI,有些人更喜欢 wxWidgets 的 API,而有些人更喜欢 < a href="http://qt.nokia.com" rel="noreferrer">Qt 更多,并且有些人在每个方面都更有生产力,但也有充分的理由客观地相信为什么一个人是比其他 API 更好。
  4. 该项目“有名”吗?这有点不确定,因为它依赖于群体思维,但根据项目的“著名”、“知名”或“广泛使用”程度来考虑项目是有一定优点的。它很有帮助,因为这通常是可靠性的指标(强调通常,即并不总是)。社区可能会更加活跃、知识渊博。您可以利用可能已经熟悉这些 API 的现有程序员并雇用他们或招募他们等。例如,我认为除了总体上相当优秀之外,很多人都会选择 Lucene 作为他们的文本搜索系统,因为它的使用非常广泛。
  5. 该项目的成熟度如何?是阿尔法版吗?贝塔?预发布?有时你会发现一个你真正喜欢的图书馆,但它非常原始。根据您的项目的性质,您可能需要重新考虑使用它。

话虽如此,通常来说,寻找优秀 Java 库的好地方可能是来自 Apache 的项目以及 Google

这就是我现在所拥有的一切。加少许盐服用。如果我还有其他要添加的内容,我将编辑这篇文章。

希望这有帮助!

I don't program in Java much but I do need to hunt down libraries for C++ and Python, which are my mainstays.

I think some criteria you can apply to stuff you find on Google or community sites like SO and java.net include the following:

  1. How well documented is the project? Is it just API documentation? Does it have samples? Are they documented or just spat out? Are there tutorials?
  2. When was the last stable/unstable/testing release? Do version control logs indicate activity in the project? (Google Code projects have a indicator on the right side of the page which shows project activity) Are their mailing lists active? Do a lot of people ask questions and questions get answered? Are developers talking on their mailing lists?
  3. Is the API to your liking? This is both a matter of personal preference and objective measuring. As an example, for C++ GUIs, some people like the API of wxWidgets more, whereas some people like the API of Qt more, and there are people who are more productive in each, but there are also good reasons to believe objectively why one is better than the other API-wise.
  4. Is the project "famous"? This is kind of iffy because it relies on groupthink, but there is some merit to considering projects based on how "famous" or "well-known" or "widely-used" they are. It helps because this is normally an indicator of reliability (emphasis on normally, i.e. not always). The communities will probably be more active and knowledgeable. You can tap onto existing programmers who are already probably familiar with these APIs and hire them or recruit them, etc. For example, I suppose that other than being generally quite good, a lot of people go for Lucene as their text search system because it is very widely used.
  5. How mature is the project? Is it in alpha? Beta? Pre-release? Sometimes you find a library you really like but it's very raw. Depending on the nature of your project, you may want to reconsider using it.

All that said, generally good places to find good Java libraries are probably projects from Apache and those published by Google.

This is all I have for now. Take them with a pinch of salt. If I have anything else to add I will edit this post.

Hope this helps!

坠似风落 2024-09-11 07:20:28

我很少需要额外的“通用”库。如果这就是你所追求的,你可能会关注 Apache 的东西——有一些像这样的团体通常做得很好,但是大多数东西你可以在像这样的通用库中获得,你可以自己编写您可以尽快学会使用他们的东西。

有时我需要一个特定的库,例如 SNMP 库或其他东西来提供特定的服务——这些实际上是需要的,因为重写它们是令人望而却步的。正确选择这些更重要,但通常没有那么多可供选择,如果你不这样做,同事几乎肯定会有一些经验或意见。

像这样的研究应该成为每个项目的预定部分——应该在项目的早期阶段确定进行研究的必要性。

I rarely need additional "Generic" libraries. If that's what you are after you might keep an eye on the Apache stuff--there are a few groups like that that just do generally good work, but most of the stuff you could get in a general library like that you can write yourself just as quickly as you can learn to use their stuff.

Occasionally I need a specific library like an SNMP library or something to provide a specific service--these are actually NEEDed because rewriting them would be prohibitive. These are much more important to choose correctly, but generally there aren't so many to choose from and a co worker will almost certainly have some experience or opinions if you don't.

Researching stuff like this should be a scheduled part of every project--the need to do the research should be identified in the early phases of the project.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文