除了Guava,Java開發者還值得了解的5個谷歌類庫

Guava 是谷歌基于Java1.6的一個類庫集合的擴展項目,包含了許多谷歌核心的 Java 常用庫。除開Guava,還有一些谷歌的常用Java類庫也值得我們關注,本文列出了其中的五個類庫。

1. 依賴注入——Guice

Guice是一個輕量級的依賴注入(DI)Java框架,它扮演著與Spring的內核控制反轉(IOC)庫作用相似的角色。它和Guava一樣流行,它能夠緩解對工廠模式(factories)的需求并簡化代碼中new的使用。用谷歌自己的話說,Guice的注入是為new進行new操作。

這個庫無法讓你徹底擺脫工廠模式,但是它能夠確保你的代碼可以不直接依賴于它們。通過這種方式,你能夠更加方便的進行單元測試和代碼重用。

閃光點

這個庫旨在使開發和調試的過程更快更容易,使你能夠更好的理解自己的代碼。此外,Guice還提供了一個很酷的功能:當錯誤發生時,它會生成一段有用的信息,告訴你到底發生了什么問題以及該如何解決這些問題。

2. 靜態分析——Error Prone

這個開源庫是用于Java的靜態分析工具,它能夠讓你在編譯的時間捕捉普通的程序錯誤。團隊中再優秀的成員也有可能因為其它的事情分心而導致錯誤出現,而這個工具可以幫助你在程序錯誤擾亂應用程序之前就及時捕捉到它。

比如,它能夠檢測到設計模式的所出現的Bug:CannotMockFinalClass——顯示Mockito無法模擬最終類。

閃光點:

在官方的類庫頁面你可以找到一些常見錯誤和它們的建議修復的列表。這意味著每個錯誤都已經有了一個成熟的解決方案,因此,你可以在自己的代碼中輕松的實現它。

3. 測試可讀性——Truth

Truth是一個可幫助你增加關于測試和錯誤信息可讀性及可發現性的測試框架。它能夠生成一些關于錯誤的有意義的信息,報告測試失敗的原因并將信息擴展到新的對象類型中。就好像是自帶一段警句:“我們曾在這個問題上犯了一個策略上的錯誤”。

你可以使用Truth來替代JUnit的斷言(assertions),FEST框架以及Hamcrest的matchers類,或者簡單的用于你代碼需要的地方,還可以用來聲明JUnit風格的假設(跳過失敗的測試)、斷言和異常。

4. 語言無關的協議——Kythe

Kythe提供支持工具和標準來鼓勵(可控制源代碼的)程序集間的互操作性(包括分享,交流,使用系統間的信息)。簡而言之就是這個庫能夠提供一個(作用于源代碼的)構建工具的生態系統。

這個庫的主要目的是提供一個能夠作用于任何源代碼上的,標準的,與語言無關的交換機制,它包含了構建系統、編譯器、解釋器、靜態分析、編輯器、代碼復審程序等東西。因此,你可以與任何其它系統分享信息。

閃光點:

Kythe擁有一個能夠回答你任何相關問題的資源豐富的社區。如果你想獲取Kythe在Python、JavaScript和Java方面的幫助或者是想知道如何建立Python的???,再或者只是簡單的想了解一下Kythe,你都可以訪問這個社區。

5. 結構數據序列化——Protobuf

Protobuf,這個庫也被稱為Protocol Buffers,是谷歌用于結構數據序列化與語言、平臺無關的可擴展機制。如果你不能了解它的含義,谷歌向你類比:Protobuf就像XML,只不過更小,更快更簡單。

如果我們選擇一句口號來形容這個庫,就是“一次構建,隨處可用”,這也是形容它最貼切的方式。一旦你定義想要的數據結構,你可以使用特殊生成的源代碼來讀寫各種數據流和語言。

閃光點:

protobuf是我們最喜歡的類庫之一,它能夠幫助我們把那些復雜元素變得更加簡單。

來源:Dzone.com

上一篇: Java之父求職被嫌年紀大 硅谷現在喜歡小鮮肉?

下一篇: Java的常見誤區與細節

分享到: 更多
天津时时彩 江苏时时骗局 七星彩历史开奖号码 广东11选五免费计划软件下载 无网络免费单机斗地主 北京pk10手机免费软件 下载365彩票板机按装 重庆时时免费预测 手机重庆时彩计划软件下载 重庆时时现场开奖视频 赌场限红规则 斗地主棋牌提现 天津时时平台网投 pk10最牛稳赚模式6码软件 赛车pk10计划网址 赛马会內部三码