很多程序員知道一個流行的谷歌Java庫——Guava,這并不奇怪,因為它的主要關(guān)注點是提高開發(fā)人員的生產(chǎn)力。但其他谷歌庫呢?你有注意過嗎?在下面的文章中,我們將瀏覽谷歌的一些有趣的Java庫,并讓你了解如何使用它們。想學(xué)習(xí)java的同學(xué)可以參加java培訓(xùn),在專業(yè)老師的帶領(lǐng)下,可以獲得快速提升。
1.依賴項注入—Guice
Guice是Java的一個輕量級依賴注入(DI)框架,其作用與Spring的核心控制反轉(zhuǎn)(IOC)庫類似。如果你不熟悉它,Guice可以減少對工廠的需求,并簡化代碼中“new”的使用。用谷歌自己的話來說,Guice@Inject是新的。
雖然這個庫不會免除你編寫工廠的責(zé)任,但它將有助于確保你的代碼不直接依賴于它們。這樣,更改、單元測試和重用代碼將更容易。
這個庫旨在使開發(fā)和調(diào)試更容易、更快。文檔甚至聲稱可以幫助你更好地理解代碼。Guice提供的另一個很酷的功能是在出現(xiàn)錯誤時生成有用的消息,這樣你就可以了解發(fā)生了什么以及如何解決它。
2.靜態(tài)分析—ErrorProne
這個開源庫是Java的靜態(tài)分析工具,允許你在編譯時發(fā)現(xiàn)常見的編程錯誤。例如,它可以檢測到的錯誤模式之一是CannotMockFinalClass,這表明Mockito不能模擬最終類。在java培訓(xùn)中,有更加系統(tǒng)全面的課程,明確清晰的學(xué)習(xí)路線,學(xué)習(xí)起來既輕松,又高效。
在官方庫頁面上,你會發(fā)現(xiàn)常見錯誤列表及其建議的修復(fù)方法。這意味著每個錯誤都有一個別人已經(jīng)想到的解決方案,并且你可以在自己的代碼中輕松實現(xiàn)它。
3.有意義的錯誤—Truth
Truth是一個測試框架,旨在幫助你的測試和錯誤消息更具可讀性和可發(fā)現(xiàn)性。它生成有意義的錯誤消息,報告測試失敗的原因,同時可擴(kuò)展到新類型的對象。你可以使用Truth來代替JUnit的斷言、FEST或Hamcrest的matchers類,也可以簡單地以你認(rèn)為適合你的代碼的方式使用它。它為你提供了一個測試動詞,該動詞斷言被測試的主語、值或賓語。你可以使用Truth來聲明JUnit風(fēng)格的假設(shè)(并跳過失敗測試)、斷言和異常。
4.語言不可知論協(xié)議——Kythe
Kythe提供并支持工具和標(biāo)準(zhǔn),以鼓勵操作源代碼的程序之間的互操作性(系統(tǒng)之間共享、交換和使用信息)。解釋它的一個更簡單的方法是說,這個庫為構(gòu)建與源代碼一起工作的工具提供了一個生態(tài)系統(tǒng)。想學(xué)習(xí)java更多技能,建議參加java培訓(xùn),課程實時更新,緊跟市場和企業(yè),讓你學(xué)到最新的java技能,提高市場競爭力。
這個庫的主要目標(biāo)是提供一個標(biāo)準(zhǔn)的、與語言無關(guān)的交換機(jī)制,該機(jī)制可以用于任何源代碼。它包括構(gòu)建系統(tǒng)、編譯器、解釋器、靜態(tài)分析、編輯器、代碼評審應(yīng)用程序等等。這樣,你就可以與你想要的任何其他系統(tǒng)共享信息。
5.序列化結(jié)構(gòu)化數(shù)據(jù)-Protobuf
Protobuf,也被稱為ProtocolBuffers的庫,是谷歌的語言中立、平臺中立、可擴(kuò)展的機(jī)制,用于序列化結(jié)構(gòu)化數(shù)據(jù)。如果你不確定它的意思,谷歌解釋說,它就像XML一樣,只是更小、更快、更簡單。如果我們必須為這個庫選擇一個口號,它可能是“一次構(gòu)造,隨處使用”,這是描述它的最佳方式。一旦你定義了你想要的數(shù)據(jù)結(jié)構(gòu),你就可以使用特殊生成的源代碼從各種數(shù)據(jù)流中讀寫,并使用各種語言。
最后的想法
有很多Java庫可以幫助你的代碼,讓它更智能,更容易使用。你所要做的就是了解你在找什么,看看某個庫能幫上什么忙。對Java感興趣的同學(xué),可以參加Java培訓(xùn)來獲得知識和技能,以便快速上崗。