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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

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

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

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

如果我們在激烈的黑客馬拉松中阻止某人并要求她命名一個受歡迎的Google Java庫,那么答案可能就是Guava。 這也就不足為奇了,因為它的主要重點是提高開發(fā)人員的生產力。 但是其他Google圖書館呢? 您有機會檢查一下嗎?

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

向混合物中添加另一個庫

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

盡管它不是Google唯一的好東西。 我們不是在談論無人駕駛汽車,谷歌光纖或Ara項目(并且我們仍在等待最后一個)–我們是在談論更多的圖書館

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

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

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

酷因素

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

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

換句話說,此工具將幫助您在錯誤變成生產錯誤并弄亂您的應用程序之前發(fā)現錯誤。

例如,它可以檢測到的錯誤模式之一是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);} }

酷因素

在官方庫頁面上,您會找到常見錯誤及其建議修復的列表。 這意味著每個錯誤都有別人已經想到的解決方案,您可以在自己的代碼中輕松實現它。 順便說一句,如果您對常見的生產錯誤感興趣,請查看我們對生產中十大異常類型的分析 。

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

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

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

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提供并支持工具和標準,以鼓勵操縱源代碼的程序之間的互操作性(在系統(tǒng)之間共享,交換和使用信息)。 一種更簡單的解釋方法是說該庫為構建可與源代碼一起使用的工具提供了一個生態(tài)系統(tǒng)。

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

酷因素

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

Protobuf(也稱為協(xié)議緩沖區(qū))庫是Google的語言無關,平臺無關且可擴展的機制,用于序列化結構化數據。 如果您不確定這是什么意思,Google會說它就像XML,只是更小,更快和更簡單。

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

酷因素

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

我們有沒有忘記任何人?

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

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

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

其他Google庫

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

1. AutoValue –代碼生成器的集合,可自動生成重復的Java代碼。

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

最后的想法

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

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

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。