日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

忘记番石榴:5个Google库Java开发人员应该知道的

發(fā)布時(shí)間:2023/12/3 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 忘记番石榴:5个Google库Java开发人员应该知道的 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

什么是最有用但未知的Google Java庫?

如果我們在激烈的黑客馬拉松中阻止某人并要求她命名一個(gè)受歡迎的Google Java庫,那么答案可能就是Guava。 這也就不足為奇了,因?yàn)樗闹饕攸c(diǎn)是提高開發(fā)人員的生產(chǎn)力。 但是其他Google圖書館呢? 您有機(jī)會(huì)檢查一下嗎?

在下面的文章中,我們將介紹一些來自Google的有趣的Java庫,并向您介紹如何使用它們。

向混合物中添加另一個(gè)庫

首先,我們要明確一點(diǎn):我們愛番石榴。 它包含Google的一些基于Java的項(xiàng)目的核心庫,例如集合,緩存,通用注釋,I / O等。 這些不僅對Google開發(fā)人員有用,而且對更廣泛的社區(qū)也有用。

盡管它不是Google唯一的好東西。 我們不是在談?wù)摕o人駕駛汽車,谷歌光纖或Ara項(xiàng)目(并且我們?nèi)栽诘却詈笠粋€(gè))–我們是在談?wù)?strong>更多的圖書館 。

好消息是,因?yàn)槲覀優(yōu)槟龅搅诉@一點(diǎn),所以無需梳理每個(gè)可用的庫即可找到合適的庫。 我們選擇了5個(gè)Google庫,這些庫可以使您的生活更輕松,并且代碼更美觀。 去看一下:

Guice是Java的輕量級(jí)依賴注入(DI)框架,其作用類似于Spring的核心控制反轉(zhuǎn)(IOC)庫。 它幾乎和番石榴一樣流行 。 如果您不熟悉它,Guice可以簡化工廠的需求,并簡化代碼中“ new”的使用。 用Google自己的話來說,Guice @Inject是新的。

盡管該庫不會(huì)使您免于編寫工廠,但它將有助于確保您的代碼不直接依賴于它們。 這樣,更改,單元測試和重用代碼將變得更加容易。

酷因素

該庫旨在使開發(fā)和調(diào)試更加輕松快捷。 該文檔甚至聲稱可以幫助您更好地理解代碼。 Guice提供的另一個(gè)很棒的功能是在發(fā)生錯(cuò)誤時(shí)生成有用的消息,因此您將了解發(fā)生了什么以及如何解決。

這個(gè)開源庫是Java的靜態(tài)分析工具,使您可以在編譯時(shí)捕獲常見的編程錯(cuò)誤。 您可以成為團(tuán)隊(duì)中最好的開發(fā)人員,但是您或您的一位同事可能被最新的《權(quán)力的游戲》情節(jié)所吸引,并犯了一個(gè)錯(cuò)誤。

換句話說,此工具將幫助您在錯(cuò)誤變成生產(chǎn)錯(cuò)誤并弄亂您的應(yīng)用程序之前發(fā)現(xiàn)錯(cuò)誤。

例如,它可以檢測到的錯(cuò)誤模式之一是CannotMockFinalClass –表示Mockito無法模擬最終類:

import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import org.mockito.Mock; import org.mockito.Mockito;/*** Test for CannotMockFinalClass.*/ @RunWith(JUnit4.class) public class CannotMockFinalClassPositiveCases {static final class FinalClass {}// BUG: Diagnostic contains: Mockito cannot mock@Mock FinalClass impossible;public void method() {// BUG: Diagnostic contains: Mockito cannot mockFinalClass local = Mockito.mock(FinalClass.class);} }

酷因素

在官方庫頁面上,您會(huì)找到常見錯(cuò)誤及其建議修復(fù)的列表。 這意味著每個(gè)錯(cuò)誤都有別人已經(jīng)想到的解決方案,您可以在自己的代碼中輕松實(shí)現(xiàn)它。 順便說一句,如果您對常見的生產(chǎn)錯(cuò)誤感興趣,請查看我們對生產(chǎn)中十大異常類型的分析 。

真理是一個(gè)測試框架,旨在幫助您的測試和錯(cuò)誤消息更具可讀性和可發(fā)現(xiàn)性。 它會(huì)生成有意義的錯(cuò)誤消息,以報(bào)告測試失敗的原因,同時(shí)可擴(kuò)展到新類型的對象。 哦,它附帶了一個(gè)很棒的口號(hào):“我們已將失敗作為策略”。

您可以使用Truth代替JUnit的斷言,FEST或Hamcrest的matchers類,或者只是以您認(rèn)為適合于代碼的方式使用它。 它為您提供一個(gè)測試動(dòng)詞,該動(dòng)詞對一個(gè)主語,該值或被測對象進(jìn)行斷言。

您可以使用Truth來聲明JUnit樣式的假設(shè)(并跳過失敗測試),斷言和異常。

import static com.google.common.truth.Truth.assertThat;Set < Foo > foo = ...; assertThat(foo).isEmpty()org.truth0.FailureStrategy$ThrowableAssertionError: Not true that is empty at org.truth0.FailureStrategy.fail(FailureStrategy.java: 33)...

Kythe提供并支持工具和標(biāo)準(zhǔn),以鼓勵(lì)操縱源代碼的程序之間的互操作性(在系統(tǒng)之間共享,交換和使用信息)。 一種更簡單的解釋方法是說該庫為構(gòu)建可與源代碼一起使用的工具提供了一個(gè)生態(tài)系統(tǒng)。

該庫的主要目標(biāo)是提供一種可與任何源代碼一起使用的,與語言無關(guān)的標(biāo)準(zhǔn)交換機(jī)制。 它包括構(gòu)建系統(tǒng),編譯器,解釋器,靜態(tài)分析,編輯器,代碼審查應(yīng)用程序等。 這樣,您就可以與任何其他系統(tǒng)共享信息。

酷因素

Kythe擁有一個(gè)豐富的社區(qū) ,可以回答您的任何問題。 在Python,JavaScript或Java上需要Kythe的幫助嗎? 想知道如何為Python模塊建模嗎? 還是您只是想知道Kythe的發(fā)音 ? 只是問社區(qū)。

Protobuf(也稱為協(xié)議緩沖區(qū))庫是Google的語言無關(guān),平臺(tái)無關(guān)且可擴(kuò)展的機(jī)制,用于序列化結(jié)構(gòu)化數(shù)據(jù)。 如果您不確定這是什么意思,Google會(huì)說它就像XML,只是更小,更快和更簡單。

如果我們必須為此庫選擇一個(gè)標(biāo)語,則它可能是“一次構(gòu)造,可在任何地方使用”,這是描述它的最佳方法。 一旦定義了數(shù)據(jù)的結(jié)構(gòu)方式,就可以使用生成的特殊源代碼從多種數(shù)據(jù)流和多種語言中進(jìn)行讀寫。

酷因素

此處有完整的披露要求:protobuf是Takipi上我們最喜歡的庫之一 ,我們可以保證它會(huì)幫助您簡化復(fù)雜的元素。

我們有沒有忘記任何人?

我們知道您在想什么-這么多的庫,一個(gè)字都沒有關(guān)于GWT 。 GWT是用于基于瀏覽器的應(yīng)用程序的開發(fā)工具包,即使JavaScript不是您的最佳選擇,它也可以創(chuàng)建高性能的Web應(yīng)用程序。 它基本上是Java到JavaScript的編譯器。

這個(gè)免費(fèi)的開放源代碼庫由于使用了許多Google產(chǎn)品而變得流行。 該列表包括Google Inbox,AdWords,AdSense,航班,酒店搜索器,優(yōu)惠,電子錢包和Blogger,這些都是Google出名的,功能強(qiáng)大的產(chǎn)品。

除了Google之外,還有一些使用GWT的知名公司,例如Ruxit,Go Grid,Whirled等。

其他Google庫

在對Twitter進(jìn)行評論之后,我們決定添加2個(gè)在此未提及的有用的庫,謝謝@ joschi83 !

1. AutoValue –代碼生成器的集合,可自動(dòng)生成重復(fù)的Java代碼。

2. GSON –流行的Java序列化/反序列化庫,可以將Java對象轉(zhuǎn)換為JSON并返回。

最后的想法

有很多Java庫可以幫助您的代碼并使代碼更智能,更易于使用。 您所要做的就是了解您要查找的內(nèi)容,并查看某個(gè)庫如何提供幫助。

如果您是Guava的忠實(shí)粉絲,但在其他庫中找不到任何有用的東西,則應(yīng)查看每個(gè)開發(fā)人員都可以使用的Google Guava鮮為人知的一些功能 。

翻譯自: https://www.javacodegeeks.com/2016/07/forget-guava-5-google-libraries-java-developers-know.html

總結(jié)

以上是生活随笔為你收集整理的忘记番石榴:5个Google库Java开发人员应该知道的的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。