2017版的GitHub Java流行库Top 100,JUnit稳居第一
OverOps 于 7 月 19 日发布了 2017 版的 “GitHub Java 流行库 Top 100 ”。
此榜单是基于 259,885 个源文件,首先通过 GitHub 中的星数选取了前 1000 个 Java 存储库。然后过滤了Android 相关的项目,筛选出 Github 上最受欢迎的 477 个纯 Java 项目。
通过把过滤项目踢掉之后,再结合每个项目的 unique imports 进行了计数,并依据此结果排行。现在一起来看看前 20 名的排行。
前20名榜单
和去年相比,JUnit 仍占霸主之位,JUnit 是 GitHub 中最流行的 Java 库。基于它扩展的 JUnit Runner 占据第二名的位置,甚至是较旧的 junit.framework 此次也在第三名的位置,可以说前三名都被 JUnit 收入囊中。
开源测试框架 Mockito,现在是第四大流行的 Java 库(榜单中)。日志组件 slf4j 位列第五,它的受欢迎程度反映了开发人员对日志记录的依赖性,同时也在一定程度上体现开发人员对 java.util.logging 库的使用率较低。OverOps 还深入研究了 Java 开发人员最常见的日志记录习惯。
Hamcrest 排名第6 (辅助在 JUnit 和 jMock 中进行测试的框架),这说明了开发者需要一个更好的测试环境。
在前 20 个库中,我们可以发现 Google Guava 排名第 7,Guava 框架里面包含很多 JUnit 框架和 javax 库。我们还可以看到,最受欢迎的 JSON 库是 Jackson。
在前 20,我们还可以发现 org.w3c.dom 今年首次进入前 20 名,它为 DOM(文档对象模型)提供接口。
另外,通过从前100名,我们可以看到,Spring 具有广泛的代表性,其中包含以下 8 个库:
#57 - org.springframework.beans.factory.annotation
#60 - org.springframework.context
#65 - org.springframework.context.annotation
#66 - org.springframework.stereotype
#68 - org.springframework.util
#81 - org .springframework.test.context.junit4
#85 - org.springframework.beans.factory
#91 - org.springframework.web.bind.annotation
还有一个值得我们关注的是被广泛使用 Apache 库:
#16 - org.apache.commons.io
#22 - org.apache.http
#24 - org.apache.commons.lang
#25 - org.apache.http.impl.client
#30 - org.apache.http.client
#33 - org.apache.http.client.methods
#34 - org.apache.log4j
#35 - org.apache.commons.codec.binary
#45 - org.apache.commons.lang3
#53 - org.apache.http .entity
#61 - org.apache.http.util
#64 - org.apache.commons.logging
#75 - org.apache.http.message
#88 - org.apache.zookeeper
#95 - org.apache.hadoop.conf
#98 - org.apache.http.client.config
#100 - org.apache.http.client.utils
最后一个比较引人注意的是 AssertJ,它为 Java 提供了流式断言(Fluent assertions)。今年它攀升至 50 名,还有 API javax.script 和 org.apache.http.client.utils 此次也入榜。这意味着受欢迎的项目更会被运用于实际应用上,如测试。
虽然今年 OverOps 发布的榜单算法和去年有所差异,但是可以看出,大多数在 2016 年受欢迎的库仍然出现在 2017 年的榜单中。不过该榜单只能说明各个 Java 库在开发人员中的受欢迎程度,不能表明某个库是否有用。如果你想知道具体 OverOps 排行依据,可查看英文原文:http://blog.takipi.com/the-top-100-java-libraries-in-2017-based-on-259885-source-files/
附:完整的 Top 100 列表请点此查看
1、具有1-5工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加。2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加。3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的,可以加。4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加。5. 群号:高级架构群283943715备注好信息!6.阿里Java高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!