我們分析了GitHub中47,251個(gè)依賴(lài),從中找出了排名前一百的Java類(lèi)庫(kù),讓我們看看誰(shuí)在前面,誰(shuí)在后面。 我們?cè)诼L(zhǎng)的周末的消遣方式就是瀏覽GitHub并且搜索流行的Java類(lèi)庫(kù)。我們決定把其中的樂(lè)趣與結(jié)果分享給你。 我們分析了GitHub中排名前3,862個(gè)項(xiàng)目中的47,251個(gè)導(dǎo)入語(yǔ)句,其中有12,059個(gè)Java類(lèi)庫(kù)被依賴(lài)。我們從這個(gè)列表中提取出前一百并把結(jié)果分享給你。 最受歡迎的前20個(gè)Java類(lèi)庫(kù) 和上次分析結(jié)果一致,junit依舊是GitHub中最受歡迎的類(lèi)庫(kù)。Java中的日志API slf4j排名第二,log4j排名第四。 Google的開(kāi)源類(lèi)庫(kù)Guava呈上升趨勢(shì),排名第三(去年排名第四)。Guava中包含一系列誕生在谷歌內(nèi)部的核心Java類(lèi)庫(kù)。 Spring類(lèi)庫(kù)的崛起 Spring框架作為Java EE的主要競(jìng)爭(zhēng)對(duì)手在Java社區(qū)很流行,這一點(diǎn)也在GitHub中很好的提現(xiàn)了出來(lái)。在排名一百名以外,有44個(gè)類(lèi)庫(kù)是與Spring相關(guān)的。最有趣的部分是Spring Boot的迅速崛起,關(guān)于這部分內(nèi)容可以閱讀Java Bootstrap: Dropwizard vs. Spring Boot. 排名靠前的Spring類(lèi)庫(kù): #13 – springframework.spring-context #17 – springframework.spring-test #22 – springframework.spring-webmvc #24 – springframework.spring-core #27 – springframework.spring-web #36 – springframework.spring-jdbc #37 – springframework.spring-orm #38 – springframework.spring-tx #40 – springframework.spring-aop #47 – springframework.spring-context-support #72 – springframework.boot.spring-boot-starter-web #81 – springframework.security.spring-security-web #82 – springframework.security.spring-security-config #88 – springframework.boot.spring-boot-starter-test #99 – springframework.security.spring-security-core 最受歡迎的JSON類(lèi)庫(kù) 因?yàn)镴ava本身還不支持JSON(盡管Java9宣稱(chēng)支持),所以我們想通過(guò)GitHub中的項(xiàng)目來(lái)看看這些JSON類(lèi)庫(kù)的受歡迎程度。 你不能通過(guò)他的使用量多少來(lái)選擇一個(gè)使用哪個(gè)類(lèi)庫(kù),因?yàn)檫@些JSON框架的功能不盡相同。而是應(yīng)該根據(jù)實(shí)際使用環(huán)境選擇最適合的。如果你不知道如何選擇,可以參考JSON benchmark. 排名靠前的JSON類(lèi)庫(kù): #14 – fasterxml.jackson.core.jackson-databind #19 – google.code.gson.gson #43 – json.json #80 – googlecode.json-simple.json-simple #89 – thoughtworks.xstream.xstream 神奇四俠 有很多有趣的新庫(kù),甚至引起了我們的注意,但我們決定關(guān)注以下他們: #68 – projectlombok.lombok – Lombok提供了簡(jiǎn)單的注解的形式來(lái)幫助我們消除一些必須有但顯得很臃腫的Java樣板代碼。 #90 – jsoup.jsoup – jsoup 是一款 Java 的 HTML 解析器,可直接解析某個(gè) URL 地址、HTML 文本內(nèi)容。它提供了一套非常省力的 API,可通過(guò) DOM,CSS 以及類(lèi)似于 jQuery 的操作方法來(lái)取出和操作數(shù)據(jù)。 #92 – io.netty.netty-all – 網(wǎng)絡(luò)應(yīng)用程序框架,用于快速和方便的開(kāi)發(fā)維護(hù)高性能協(xié)議服務(wù)器和客戶(hù)端 #98 –dom4j.dom4j – 處理XML的開(kāi)源框架。它集成了XPath并提供全力支持DOM,JAXP和Java平臺(tái)。 前100個(gè)類(lèi)庫(kù)的類(lèi)型 魔術(shù)背后的科學(xué)(我們是如何得出這份列表的) 你可能想知道我們是如何得出這些信息的。我們首先按照star數(shù)量把GitHub中的項(xiàng)目代碼pull到本地。我們提取并分析了使用了Maven和Ivy的項(xiàng)目中用于依賴(lài)管理的 pom.xml / ivy.xml ,這給我們提供了47,251分?jǐn)?shù)據(jù)來(lái)源。 我們做了一些瘋狂的挖掘和分析,最終我們得到GitHub中排名前3,862項(xiàng)目中的12,059個(gè)Java類(lèi)庫(kù)。這樣就可以很方便的對(duì)他們進(jìn)行排名了,只要按照他們出現(xiàn)的次數(shù)排序就可以了。 如果你想看看我們的原始數(shù)據(jù),這個(gè)文件可以。雖然這篇文章中我們已經(jīng)介紹的比較清楚了,我們?nèi)匀粴g迎你來(lái)看看,確保我們沒(méi)有錯(cuò)過(guò)任何有趣的見(jiàn)解。 最后的一點(diǎn)想法 當(dāng)我們拿著這份列表與去年的結(jié)果做對(duì)比的時(shí)候,我們發(fā)現(xiàn)一些小的類(lèi)庫(kù)的排名有一些小的波動(dòng),Spring有明顯上升,而MongoDB消失在名單中。 如果你已經(jīng)對(duì)類(lèi)庫(kù)有了選擇,但你仍然尋找最終的工具,我們有一個(gè)完美的建議給你。 Top 15 Tools Java Developers Use After Major Releases 本文由HollisChuang 翻譯自 The Top 100 Java Libraries in 2016 – After Analyzing 47,251 Dependencies . 原作者:Henn Idan 來(lái)源:微信公眾號(hào) Hollis |
|
來(lái)自: huyu8012 > 《待分類(lèi)》