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