2016年100大Java庫
譯文【51CTO.com快譯】我們?cè)诼L(zhǎng)周末最喜歡的消遣方式就是搜遍GitHub,找出廣受歡迎的Java庫。我們決定與各位分享其中的樂趣和信息。
我們分析了GitHub上前3862個(gè)Java項(xiàng)目所使用12059個(gè)獨(dú)特的Java庫的47251個(gè)導(dǎo)入語句。我們從該列表中選取了100大 Java庫,現(xiàn)在我們分享結(jié)果。
***的20個(gè)Java庫
junit連續(xù)兩年成為GitHub上***的Java庫。Java 日志API:slf4j 名列第二,log4j則名列第四。
谷歌的開源項(xiàng)目Guava發(fā)展勢(shì)頭正猛,奪得第三名。它包含一系列在谷歌內(nèi)部誕生的核心Java庫。如果你對(duì)Guava不熟悉,或者不確定如何使用它,不妨讀一讀我們的文章,了解每個(gè)開發(fā)人員都應(yīng)該知道的谷歌Guava的鮮為人知的功能特性(http://blog.takipi.com/google-guava-5-things-you-never-knew-it-can-do/)。
Spring庫的崛起
作為Java EE的主要競(jìng)爭(zhēng)者,Spring框架日漸流行,這種很高的人氣在GitHub中也得到了體現(xiàn)。在100個(gè)***的Java庫中,15個(gè)庫與Spring有關(guān)。其中最值得關(guān)注的是,Spring Boot迅速崛起。它讓開發(fā)人員借助最少的樣板代碼就能構(gòu)建Spring驅(qū)動(dòng)的應(yīng)用程序和服務(wù)。你想在最短的時(shí)間內(nèi)構(gòu)建一個(gè)生產(chǎn)環(huán)境就緒的Java應(yīng)用程序嗎?請(qǐng)閱讀這篇文章:《JavaBootstrap:Dropwizard 對(duì)比 Spring Boot》(http://blog.takipi.com/java-bootstrap-dropwizard-vs-spring-boot/)。
***的Spring庫:
第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庫
由于Java對(duì) JSON并不提供原生支持(不過差不多在Java 9中包括該支持!),我們想看看這些庫在GitHub項(xiàng)目中有多受歡迎。
你不該憑表面來判斷庫。并非所有的JSON庫都有一樣的性能,選擇適合自身環(huán)境的庫非常重要。如果你想知道該使用哪一個(gè)JSON庫,不妨看看我們***的JSON基準(zhǔn)測(cè)試。
***的JSON庫是:
第14名 – fasterxml.jackson.core.jackson-databind
第19名 – google.code.gson.gson
第43名 – json.json
第80名 – googlecode.json-simple.json-simple
第89名 – thoughtworks.xstream.xstream
最驚艷的4個(gè)庫
有許多值得關(guān)注、甚至新穎的庫引起了我們的注意,不過我們決定著重介紹這4個(gè)庫:
第68名:projectlombok.lombok――該項(xiàng)目旨在減少Java中的樣板代碼,把一些最糟糕的代碼換成一組簡(jiǎn)單的標(biāo)注。
第90名:jsoup.jsoup――該Java庫用于處理實(shí)際的HMTL。它提供了一個(gè)API,可用于使用DOM操作、CSS 和類似jquery的方法來抽取和處理數(shù)據(jù)。
第92名:io.netty.netty-all――這個(gè)網(wǎng)絡(luò)應(yīng)用程序框架用于快速、簡(jiǎn)單地開發(fā)可維護(hù)的高性能協(xié)議服務(wù)器和客戶機(jī)。
第98名:dom4j.dom4j――這是用于處理 XML的開源框架。它與XPath集成起來,對(duì)DOM、JAXP和Java平臺(tái)提供全面支持。
按類型排名的100大庫
魔法背后的數(shù)學(xué)
你可能會(huì)發(fā)問:我們是如何得到這些信息的。我們首先按照評(píng)分,從GitHub選出了排名靠前的Java項(xiàng)目。然后我們從中選出使用Maven或Ivy進(jìn)行依賴項(xiàng)管理、以便迅速訪問pom.xml / ivy.xml依賴項(xiàng)的項(xiàng)目,因此我們獲得了47251個(gè)數(shù)據(jù)點(diǎn)。
我們進(jìn)行了一番計(jì)算和分析,結(jié)果得出了Github上前3862個(gè)項(xiàng)目使用的12059個(gè)獨(dú)特的Java庫。在此基礎(chǔ)上,根據(jù)它們?cè)? GitHub中出現(xiàn)的次數(shù),就很容易評(píng)出***的100個(gè)庫。
如果你想查看我們的原始數(shù)據(jù),可以在此查閱文件(https://docs.google.com/spreadsheets/d/19hO0L9WOC0XWXPnYX-216_Qbz705ajIAsSQFhGmgp9A/edit?usp=sharing)。雖然我們很認(rèn)真,但還是歡迎各位查看數(shù)據(jù),確保我們沒有遺漏任何有意思的內(nèi)容。
結(jié)束語
我們將今年的100大Java庫榜單與去年的結(jié)果相比較時(shí),發(fā)現(xiàn)比較小的Java庫當(dāng)中出現(xiàn)了名次上的一些變動(dòng),Spring受到追捧,而MongoDB跌出了榜單。
然而,如果看一下絕大多數(shù)的Java開發(fā)人員,就會(huì)發(fā)現(xiàn)他們?cè)谶x擇GitHub庫方面顯得相當(dāng)一致??紤]到使用這些庫的眾多現(xiàn)有項(xiàng)目會(huì)在2017年及以后繼續(xù)使用它們,這不足為奇。
如果你已經(jīng)有了***的庫,但是仍在尋找***工具,我們?yōu)槟闾峁┝?**建議??梢圆榭础禞ava開發(fā)人員在主要版本發(fā)布后使用的15大工具》(http://blog.takipi.com/15-tools-to-use-when-deploying-code-to-production/)。
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】