GitHub的10,000个最受欢迎的Java项目-以下是它们使用的顶级库

随着Java开发人员正在使用既成熟又高度发展的语言来工作,无论何时编写新代码,我们都将面临一个持续的难题–使用大家都在谈论的热门新技术,或者坚持使用久经考验的库?

由于Java应用程序的很大一部分是商业性质的,因此有时很难将围绕新框架的嗡嗡声与实际使用它的项目数量分开。 这很重要,因为围绕框架的用户和贡献者社区是确定其持续成功和发展的最重要因素之一。

我们决定使用基于数据的方法,通过分析开发人员在全球最大的Java项目开放存储库GitHub上实际使用的 Java项目,来对此有更深入的了解。

在上一篇文章中,我们介绍了GitHub研究项目的主要成果以及JavaScript,Ruby和Java的前100个库 。 现在,让我们深入研究数据,尤其是分析Java。

该方法

为了生成我们的数据集,我们查询了10,000个Java项目,并偏向于社区中最喜欢的项目,以此作为相对重要性的有力指标。 我们使用pom.xml来定义依赖关系,该文件被GH上的绝大多数Java项目使用。 然后,我们将其分析并归类。 结果真的很有趣。

结果

完整列表– JavaScript,Ruby和Java的前100个库

Java1

正在记录 。 最受欢迎的Java库是slf4j –日志记录外观框架,具有3,068个条目。 看来Java GH开发人员已经完全接受了对其日志记录引擎的分离方法,并已在slf4j上进行了标准化。

由于slf4j本身不是日志记录引擎,因此查看正在使用的顶级日志记录引擎也很有用。 看起来这里的“赢家”是log4j – 891个项目正在使用它。 接下来的是Apache Commons-logging,其中包含334个项目。 虽然非常受人尊敬,但这个数字仍代表使用log4j的项目的不到一半。 sfl4j的简单日志记录实现在174个项目中排名第三。


当今最受欢迎的Java库是slf4j-10,000个项目中的30.7%使用了该库 ( Tweet this )

春天 。 尽管某些人可能认为Spring是一个更成熟,更少用的“ hip”框架,但它仍然得到了广泛的应用,在前100个库中排名第15位。由于Spring是一个伞形框架,因此很有趣地看到正在使用其哪些组件最多。 Spring测试是框架中最常用的部分(在核心库之后),包含376个条目。 其次是web-mvc,用于设计具有277个条目的强大的Web应用程序。 在实现Web功能之后,我们将看到带有218个条目的web-orm,突出显示了Spring用于构建数据库支持的Java Web应用程序的关键用例。

TDD 。 就在Spring的顶部,是带有3,068个条目的 JUnit。 这确实显示了“测试驱动开发”对Java的深远影响。 看来,如果您是发布代码的Java开发人员,那么今天的单元测试绝对必要。 值得注意的是,尽管JUnit在这个领域并不孤单(第二最受欢迎的测试框架TestNG ,有331个条目),但它是迄今为止最主要的。

Mockito是基于模拟的测试的流行框架,也获得了413个条目,赢得了广泛的欢迎。 EasyMock是另一个模拟框架,在231个项目中排名第二。


Google的Guava框架正在成为主流-10,000个Java GitHub项目中有4.8%都在使用它 ( Tweet this )

Apache Commons 。 看过Spring之后,重要的是我们不要忽略Apache Commons,Apache Commons是该语言中最基本的库之一。 Commons-io和Commons-lang分别位于前10位,分别有519和504个条目,显示了它们的普遍性。

总体而言,Apache Commons在前100名中有13个库。Google的Guava框架本身提供了语言实用程序(有些类似于Commons中的工具),在483个条目上也做得很好,将其标记为Java的另一个重要构建块。

04-1

Sql&NoSql 。 近几年来NoSql和Big data一直是热门话题(有一些很好的理由),因此值得研究一下关系型和NoSql技术的实际使用情况。 那里最受欢迎的Sql DB是带有225个条目的MySql。 Hibernate ORM虽然本身不​​是数据库,但也很受欢迎,共有181个条目。 这是我们需要牢记的一个方面,因为GH是一个开放源代码存储库,所以我们可能会看到在封闭源数据集中对商业数据库(如Oracle)的偏向更大。


证明嗡嗡声:Hadoop在Java GitHub项目中比在Postgre SQL中更受欢迎 ( Tweet this )

Hadoop在168个条目上也做得很好,这表明在查看其实际使用情况数据时嗡嗡声是合理的。 透视一下,它具有比Postgre SQL(121个条目)更多的条目,Postgre SQL是其中最成熟的关系开放源代码数据库之一。

另一种大数据技术ElasticSearch也有110个项目条目。 令人惊讶地注意到,在Ruby中有1,085个条目的sqlite不在Java前100名中。

Android 。 对于GH上的移动开发人员,我们看到228个项目条目通过Maven消耗了Android。 尽管这可以表明不是很多移动项目都放在GH上,但它仍然有力地表明Java仍然是一种非常强大的服务器端语言。

对某些结果感到惊讶吗? 我们知道我们和其中一些人在一起。 查看下面GitHub上排名前100的Java库的完整列表,并在注释部分中让我们知道您的想法。 我们希望听到您的想法和问题。

参考: GitHub上最流行的10,000个Java项目–以下是 Takipi博客上我们JCG合作伙伴 Tall Weiss所使用的顶级库 。

翻译自: https://www.javacodegeeks.com/2013/12/githubs-10000-most-popular-java-projects-here-are-the-top-libraries-they-use.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/366147.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java防止Xss注入json_每日一题(java篇) 如何防止xss注入

1、XssAndSqlHttpServletRequestWrapper 类:import java.util.regex.Pattern; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; public class XssAndSqlHttpServletRequestWrapper extends HttpServletReques…

【工具相关】web-HTML/CSS/JS Prettify的使用

一,打开Sublime Text,代码如下面所示。 二,鼠标右键--->HTML/CSS/JS Prettify--->Prettify Code.代码如图所示,明显的代码变得整齐了。 更多专业前端知识,请上 【猿2048】www.mk2048.com

MS SQL 分页存储过程

最近换了家新公司,但是新公司没有使用分页的存储过程。那我就自个写一个往项目上套 (效率怎么样就不怎么清楚没有详细的测试过) CREATE PROCEDURE [dbo].[pro_common_pageList](tab NVARCHAR(MAX) ,---表名PrimaryKey VARCHAR(100) , --主键I…

STM32CubeMX HAL库串口+DMA数据发送不定长度数据接收

参考资料:1、ST HAL库官网资料 2、https://blog.csdn.net/u014470361/article/details/79206352#comments 一、STM32CubeMX配置外部时钟 注意在进行外部时钟配置时,即“High Speed Clock”和“Low Speed Clock”需配置成“Crytal/Ceramic Resonator&…

pyqt5 qlabel无法显示图片_实战PyQt5: 011-单选框控件QRadioButton

单选框QRadioButton简介QRadioButton为单选按钮, 可以选中(打开)或者取消选中(关闭)。在一组单选按钮中,一次只能选中其中的一个按钮。选中或者取消选中QRadioButton, 都会发出toggled()信号。使用isChecked()可以查看是否选择了某个QRadioBu…

matlab数据游标不能使用,启用数据游标模式

文本解释器,指定为下列值之一:tex - 使用 TeX 标记子集解释字符。latex - 使用 LaTeX 标记解释字符。none - 显示字面字符。TeX 标记默认情况下,MATLAB 支持一部分 TeX 标记。使用 TeX 标记可添加下标和上标,修改字体类型和颜色&a…

MySQL 快速定位性能问题

一、性能查看几款小工具:Top 查看:观察 load average :1分钟,5分钟,15分钟的平均负载值1. us% 用户使用的 CPU 占比,如果 us% 太高, 极有可能索引使用不当。2. sy% 系统内核使用的CPU占比&#…

mybatis-plus分页查询_SpringBoot + MyBatisPlus 快速入门

Hello,大家好!前面与大家分享了一次如何搭建Java项目脚手架,并且送给大家一个基础项目模板。那今天与大家分享如何使用这个基础项目,也就是快速上手 SpringBoots ➕ MyBatisPlus。 项目 / 目录结构 天津商业大学学院信息 这是一张天津商业大学…

php 获取每年的节假日,shell获取每年农历节日的日期

原创内容,转载请注明出处:https://www.myzhenai.com.cn/post/3711.html我打算自己写一个每年节日就自动在网站上展示灯笼的源码功能,但是这里最重要的是要获得每年春节、端午节、中秋节等节日的日期,因为要自己写这判断这些日期的…

python爬虫requests实战_Python爬虫之requests库网络爬取简单实战

实例1:直接爬取网页 实例2 : 构造headers,突破访问限制,模拟浏览器爬取网页 实例3 : 分析请求参数,构造请求参数爬取所需网页 实例4: 爬取图片 实例5: 分析请求参数,构造…

某制冷设备制造厂商

某制冷设备制造厂商 该公司是一家以钣金加工,制冷设备制造、销售为主的公司,其产品广泛应用于高级宾馆、饭店及大型餐饮设施等。销售网点遍及日本、北美、欧洲及东南亚,产品深受世界各地用户的欢迎。 该公司原先使用的是TPICS生产管理系统&am…

python数字转换_Python实现中文数字转换为阿拉伯数字的方法示例

本文实例讲述了Python实现中文数字转换为阿拉伯数字的方法。分享给大家供大家参考,具体如下: 一、需求 今天写了三千二百行代码。 今天写了3200行代码。 两行意思相同,只是表达方式不太能够,统一掉。 二、原理 数字的特征是 数字 …

LeetCode第14题:最长公共前缀

题目描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar"…

臭名昭著的sun.misc.Unsafe解释

Java虚拟机的最大竞争对手可能是托管C#等语言的Microsoft CLR 。 CLR允许编写不安全的代码作为低级编程的入口,这在JVM上很难实现。 如果您需要Java中的此类高级功能,则可能会被迫使用JNI ,这需要您了解一些C并Swift导致代码紧密耦…

主从复制

五 主从复制 Replication(重要!!!!!!) 5.1、介绍 基于主库二进制日志实时恢复到备库。 5.2、原理 5.2.1 主从复制的前提 (1)两台或两台以上数据库实例 (2)主库…

python输出格式控制_Python3.x那些事儿:[50]多种多样的输出格式

目前有两种方式来格式化输出格式,第一种就是自己动手来进行字符串的操作,虽然麻烦,但是都能实现。第二种方式就是使用str.format()函数。 string模块包含了一个Template类,这个类提供了把值替换成字符串的方法。 python提供把任意…

暑假第十五测

题解: 第一题: 20%枚举长度和每个子串,O(len)判断,随机情况复杂度可过 40%同样枚举长度,然后两个指针卡出区间,O(1)[或O(26)//可能可过?]判断 50%既然知道了40%的做法那…

zabbix磁盘的自动发现与磁盘指标监控

由于最近项目上需要对服务器监控进行规范化监控,再磁盘这块有几种方式 1.如果每台设备的磁盘是一样的 比如都有vda,vdb两块磁盘那么可以采用 1.1 每台客户端写脚本,服务端每台设备去加上监控项(------最次的手段-------------) 1.…

php前台用户权限开通,vue实现网站前台的权限管理

本文主要介绍了基于vue实现网站前台的权限管理(前后端分离实践),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。Javascript做为当下的热门语言,用途很广泛&#xff0c…

应用ForkJoin –从最佳到快速

到目前为止,JDK 7已很好地掌握在开发人员手中,并且大多数人都听说过ForkJoin,但是没有多少人有时间或机会去尝试它。 它引起了,并且可能仍然引起一些混乱,与普通线程池有什么不同。 [1] 我在本文中的目标是通过一个代…