和去年一样,排名第一的类库,依旧是JUnit
。基于它扩展的 JUnit Runner
占据第二名的位置,甚至是较旧的 junit.framework
此次也在第三名的位置。也就是说JUnit
包揽了前三甲。
Mockito
,这个开源的mock测试框架排名第四。
译者注:Mockito 是一个强大的用于 Java 开发的模拟测试框架, 通过 Mockito 我们可以创建和配置 Mock 对象, 进而简化有外部依赖的类的测试.
Java中的日志组建 slf4j
位列第五。这从某个侧面体现出目前的开发人员对日志还是比较情有独钟的。同时也看得出Java开发人员对于 java.util.logging
库的使用率较低。我们也曾经分析过Java开发者使用日志的一些习惯和偏好。整理在eBook中。
Hamcrest
类库排名的上升,说明了开发人员确实是需要更好的测试环境。
译者注:Hamcrest是一个协助编写用Java语言进行软件测试的框架。它支持创建自定义的断言匹配器(assertion matchers)(名称“Hamcrest”即为“matchers”的异位构词),允许声明式定义匹配规则。这些匹配器在单元测试框架(例如JUnit和jMock)中有用。
分析排名在前几名的类库我们发现,测试对于写出更好的代码是十分重要的。这也就说明了一个事实,出现线上问题是开发者最不想看到的,所以我们会想尽一切办法去避免他的发生。(这部分还有一些关于作者网站的广告,我就不翻译了。)
Google的Guava
类库排名第 7。 最受欢迎的JSON类库是Jackson
。 榜单第20名,是一个新晋类库:org.w3c.dom
。它提供了一系列操作DOM的接口。
一
其他值得我们注意的类库
纵观前100名,我们发现Spring 有很好的表现。以下8个类库进入前100 :
#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
除了Spring之外,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
译者注:看到apache类库有这么好的表现,笔者比较开心。笔者一直崇尚不要重复制造轮子,我们日常开发中可能用到的一些方法在apache的类库中具有最佳实现。比如处理IO流、处理集合等。
在今年的排名中,AssertJ较去年有明显的提升,它为 Java 提供了流式断言(Fluent assertions)。今年它攀升至 50 名。
我们在榜单中也发现了 javax.script
和 org.apache.http.client.utils
这两个脚本API。
脚本API供那些希望在其 Java 应用程序中执行用脚本语言编写的程序的应用程序编程人员使用。
2017 年排名 Top 100 的 Java 类库