foss测试
开源软件的使用已成为当今大多数人的生活方式。 对于大多数人而言,对开源项目的贡献使我们能够将视野扩大到日常工作之外的开发团队,并提供一种参与新的有趣领域的方式。 新项目每天都在开始:一些项目有大量的支持者并且具有很高的知名度,而另一些项目只有少数专门的开发人员试图解决本地问题。
开源项目托管在GitHub , SourceForge , Google Code , Launchpad , RubyForge和Codeplex等站点的全球许多不同的“伪造”中。
通过Linux基金会 , Apache基金会 , Eclipse基金会和Mozilla基金会等开源基金会 ,在本地存储库中托管了另一组高度可见,重要的项目。 可通过私有存储库(例如中央存储库)获得更多项目。 这些存储库一起提供了利用数十万个项目和数十亿行代码的绝佳机会。
但是,筛选许多存储库和项目可能是一个严峻的挑战。 此外,许多这些站点的噪声水平很高。 项目经常被废弃,变形为其他项目,分裂或以其他形式重生。 许多人每天都有活跃的团队在工作,而其他人则li行,死于漫长而缓慢的死亡。
去年下半年 ,我们对Ohloh.net上跟踪的大约550,000个项目进行了分析,以查看有多少项目处于“活跃”状态。 为了进行此分析,我们同时检查了提交和提交者。 这是我们发现的:
- 在Ohloh上有超过550,000个项目。
- 271,372个代码分析。
- 在过去2年内完成96,824次。
- 在过去的一年中有46,883次提交。
- 29,303,过去6个月内提交。
- 21,251,过去3个月内提交。
- 过去一个月提交12,870次。
- 过去一周提交5,629次。
- 过去一天提交1,224次
从图1中的图表形式来看,我们发现在过去12个月中,分析的项目中只有17.3%没有任何活动。
图1:最近12个月有活动的项目
此外,我们发现在这17.3%的项目中,只有一半的项目有两个或多个积极参与该项目的开发人员。 这意味着所有项目中约有8.5%仍在活动中, 如图2所示。
图2:过去12个月中仍处于活动状态的项目
在图3中检查了这些活动项目中使用的主要语言之后,我们看到Java继续领先。 也就是说,我们还发现较新的项目正在大量使用Python,PHP和JavaScript。
图3:领导者
从此分析中,我们可以看到,只有一小部分已创建的项目能够获得并维持长期的吸引力。 这似乎很明显,但是活动很重要。 没有活跃的项目团队,您几乎没有机会修复所依赖项目的错误。 因此,请务必检查您正在考虑使用的任何项目的活动级别。
寻找合适的项目
有这么多选择,找到一个可以帮助您进行下一个开发工作的项目应该很容易,对吗? 大多数开放源代码伪造都提供项目搜索功能,其中一些具有比其他功能更全面的搜索功能。 以下是大型活动的简短列表:
您也可以在Stackoverflow.com上搜索或发布问题,以获取其他可能已解决类似问题的开发人员的建议。 您还可以搜索许多公共开源目录,以提供一些选项,包括:
- Ohloh (550,000个项目)
- Olex (33万个项目)
- 静置 (120,000个项目)
- (Maven)中央存储库
- 自由软件基金会 (6850个项目)
- osalt.com ( 〜500个项目)
- EOS目录 (可用于企业的OSS)(约400个项目)
如果您正在寻找更特定的代码段,则可以选择使用代码搜索工具来发现满足您需求的项目。 以下是公共代码搜索选项的列表:
选择“正确的”项目到目前为止,您可以看到有很多选项可以搜索开源项目。 但是,您如何选择既能解决您要解决的问题又具有适合您的用例的正确特性的“正确”项目? 在评估选项时,您需要考虑许多注意事项。 以下是我的清单,但您可能还有其他人:
- 使用哪些语言?
- 该项目使用哪个许可证?
- 文档外观如何?
- 该项目有多活跃?
- 项目维护得如何?
- 该代码是否在其他地方被广泛使用
- 这个项目有多大,有多复杂?
- 是否存在已知的安全漏洞?
- 有未决诉讼吗?
- 有商业支持吗?
- 您有出口要求吗? 项目是否使用加密?
- 代码的质量是什么?
其中一些比其他更容易回答。 虽然您可以下载代码并查看代码来确定事情,例如所使用的语言,大小和复杂性以及代码质量,但其他代码的编写则有些棘手。 例如,在整个依赖关系链中跟踪许可证; 找出项目的活跃度和维护程度; 广泛使用; 广泛采用; 诉讼等。 这是尝试为您提供有关如何回答问题的指导。
轻松的人
您可以使用一种代码搜索工具或通过下载源来回答这些问题:
- 使用哪些语言?
- 该项目使用哪个许可证? 或检查项目目录,例如Ohloh,OLEX等。
- 文件如何? 在Wiki中查看,查看代码以获取注释,或检查Ohloh(包含注释)
- 这个项目有多大,有多复杂?
更难一点(但仍然可用)
- 是否存在已知漏洞? ( 通过国家漏洞数据库 )
- 项目维护得如何? 检查错误库,查看有多少个高优先级错误已打开以及持续了多长时间
- 该项目有多活跃? 活动提交者和提交流的数量将在这里为您提供帮助(Ohloh为您汇总了此数据)
- 该代码是否已在其他地方广泛使用? 搜索StackOverflow,Google并下载统计信息
艰难的问题
- 有未决诉讼吗? Google搜索项目名称和“诉讼”
- 有商业支持吗? 美国的Credativ和OpenLogic等公司支持部分FOSS项目。
- 项目是否使用加密? 有时,这会记录在项目站点上,否则请自己探索该项目。
- 代码的质量是什么? 有限数量的项目具有Coverity提供的代码质量审核。
批准书
您的组织可能已经制定了有关许可证和项目中可以使用的项目类型的政策和指南。 许多组织都有正式的批准流程(某些组织比其他组织更手动。)您可以提供给批准机构的信息越多,批准请求的速度就越快。
事先了解您的政策非常重要,这样您就不会浪费时间去浪费那些有明显理由被拒绝的项目。 如果您使用大量开放源代码,请探索采用自动化解决方案以加快流程,这可能会带来很大的不同。 一些可用的工具可以通过在构建过程中检测新的开源组件来自动启动该过程。 根据您的环境,您也许可以真正简化整个过程。
跟踪您的开源使用
知道您正在使用哪种 FOSS以及在哪里都使用它是非常重要的。 安全漏洞通常在生产后报告,因此您需要能够快速,轻松地找到整个应用程序组合中特定组件的所有实例。
随之而来的其他问题包括许可证问题,新版本和错误修复。 从简单的列表/电子表格选项到集成到选择和批准过程中的更为复杂的目录,有几个选项可用于跟踪您的开源。 根据组织的规模和复杂性,除了使用的开源组件和应用程序数量外,您还可以决定最佳方法。 最重要的是首先实施勤奋的跟踪方法。
您是开源的Freeloader吗?
Eclipse基金会营销副总裁Ian Skerrett撰写了一篇很棒的博客,标题为“ 如何使用开源Freeloaders” 。 他在博客文章开头说:“有时,从事开源项目的人会为很多组织使用开源项目的输出而没有回馈而感叹。” 事实证明,开源项目用来衡量其成功的重要指标之一是拥有的用户数量。 让我们面对现实吧–“开源”几乎是每个人都从开源世界开始的地方。 因此,成为一个免费的加载者并不是一件坏事。 但是重要的是要看一看为什么随着时间的流逝对您正在使用的某些项目做出贡献很重要。
使用开源的人们在学习如何利用开源的过程中遵循“生命周期”。 看起来类似于图4 。
图4:开源生命周期
最初使用开源可能是机会主义的,因为您正在寻找一种使用其他人编写的代码来节省时间的方法。 在每个任务的基础上,您将决定是否使用开源,并且收益通常在整个项目开发中都是未计划的。
一段时间之后,您开始意识到,除了节省时间以外,使用开源可以使您腾出更多时间来创新对您的业务至关重要的代码。 然后,您很可能会开始将开源作为核心开发策略的一部分。
做出此决定时,您将围绕开源使用实施更正式的政策,并促使您的开发团队在项目中尽可能频繁地使用开源。 而且,一旦您启动并运行了开源策略,您就会很快意识到,帮助修复错误并为您依赖的关键开源组件做出贡献可以帮助您远离分叉的项目。 反过来,这有助于减少组织的维护成本。 否则,如果您修改并分叉代码库,那么您将永远受其困扰。 此外,您会很快发现社区可以帮助您完善和改进所需的新功能。
启动和管理项目–重要与战略
当您意识到启动和管理开源项目可以使您利用更广泛的社区来推动重要但对您的业务不具有战略意义的技术的发展时,您将进入开源之旅的最后一站。
Hadoop是一个很好的例子。 雅虎! 需要能够在其组织内管理大数据。 尽管很重要,但该公司很快意识到大数据对其业务没有战略意义。 很快,雅虎! 意识到其他人有兴趣。 通过开源Hadoop,该公司发现它能够更快地推进Hadoop项目(仍然以大致相同的方式进行投资),从而使它能够更快地建立更广泛的Yahoo!。 依赖Hadoop的平台。
如果您创建的技术对您的事业很重要,但与竞争优势无关,那么将项目带入开源世界可以帮助您加速项目,并避免陷入对您的业务没有战略意义的技术的困扰。
开源机会
开源世界正以前所未有的速度增长。 各种规模的公司都意识到使用开源不再是一种选择,而是在当今市场上竞争的必要条件。
作为开发人员,您的价值取决于您浏览,采用,管理和参与开源世界的能力。 无论您是使用,贡献还是管理自己的开源项目,与开源社区进行互动都至关重要。 并且,如果您今天仅使用OSS,请寻找机会加入社区并开始做出贡献。 您不仅会变得更加有价值和相关,而且还将学习解决软件问题的新方法并扩大开发人员网络,这些开发人员可以帮助您提高市场价值。
作者简介 : Dave Gruber是Black Duck的开发人员计划主管。 他在软件开发方面具有广泛的背景,在企业应用程序开发,IT管理,产品管理和产品营销方面拥有30多年的经验。 Gruber是Web基础架构和开发技术的早期开拓者,曾在Allaire,Macromedia和Adobe等公司工作。 在Black Duck,Gruber致力于推向市场的战略和计划,重点是帮助开发人员获得对开源软件世界的更大可见性和洞察力,从而加快开发速度。
本文发表在《 JAX杂志:齐心协力》中。 对于该问题和其他问题,请单击此处。
预告片图片由dlofink提供
翻译自: https://jaxenter.com/foss-a-java-developers-best-friend-106259.html
foss测试
开源软件已成为现代软件开发不可或缺的一部分,提供了巨大的机会和挑战。本文探讨了开源项目的生态系统,分析了项目活动,介绍了如何寻找合适的开源项目,以及如何评估项目。同时,讨论了开源项目对个人和组织的价值,以及如何有效管理开源使用。




2461

被折叠的 条评论
为什么被折叠?



