“碼”海鉤沉:面向Java開發(fā)人員的十佳GitHub儲存庫
本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)。
毫無疑問,Java是企業(yè)軟件開發(fā)中的王者,也是需求量最大的編程語言之一。最近,Java迎來了其25周年慶典,未來幾年,它仍然會是領(lǐng)先的編程語言之一。GitHub擁有超過1億個儲存庫,它就像是軟件開發(fā)界的百寶箱,包含了框架、庫、教程和書籍,甚至還有編程語言。
如果你是一名Java開發(fā)人員,并且希望提高自身技能,那么GitHub對你來說就是一座金礦。但是,面對這么龐大一座礦你可能會抓狂,從中找到正確的儲存庫仿佛大海撈針一般艱難。
來吧,我將向你介紹十佳Java GitHub儲存庫。請注意,大熱的Java框架和Java庫不包含在內(nèi)。
1. Java設(shè)計模式
圖源:Github
軟件工程師通過軟件設(shè)計模式提供通用方案,解決軟件設(shè)計中反復(fù)出現(xiàn)的問題。設(shè)計模式中還有通用詞匯表供軟件工程師和架構(gòu)師討論共同問題,還能利用測試和驗證的開發(fā)范式提高代碼質(zhì)量和編碼速度。學(xué)習(xí)設(shè)計模式的最好方法是觀察實際操作,即代碼示例。
這個強(qiáng)大的GitHub儲存庫可以實現(xiàn)Java的所有設(shè)計模式:從最常見、最傳統(tǒng)的迭代器模式、單例模式,到最現(xiàn)代的聚合器微服務(wù)模式。GitHub儲存庫不僅能幫助你提高編碼技能,還可以使你成為一個更優(yōu)秀、更高效的開發(fā)人員。
2. 面試
圖源:GitHub
參加編程崗位的面試是很有挑戰(zhàn)性的。許多人去面試時準(zhǔn)備得不充分,就說是自己運(yùn)氣不好才沒能得到這份工作。
為面試做充分的準(zhǔn)備會增加得到理想工作的機(jī)率。這個GitHub儲存庫包含了你準(zhǔn)備面試所需要的一切:YouTube視頻、文章、實時編碼練習(xí)、數(shù)據(jù)結(jié)構(gòu)、算法、面試書籍和視頻講座,還包含針對Java常見編碼問題的LeetCode(全球極客的技術(shù)成長平臺)。
圖源:Pexels
3. 算法
圖源:GitHub
如果你是一個軟件工程師,那么算法就像是生活中的豆?jié){和油條,使用正確的算法可以提高軟件的性能。為給定的約束條件(CPU復(fù)雜性、內(nèi)存消耗)選擇正確算法的能力表明了軟件工程師的素質(zhì),無論是谷歌、微軟這樣的科技巨頭,還是初創(chuàng)公司,都會在面試過程中大量使用這些算法。
如果你是初級或中級Java開發(fā)人員,那么你將經(jīng)常需要這個GitHub儲存庫;如果你是有多年經(jīng)驗的Java開發(fā)人員,仍然會發(fā)現(xiàn)這個GitHub儲存庫非常有用。
4. RealWorld儲存庫
圖源:GitHub
如果你正在用Java開發(fā)最新的全棧應(yīng)用程序,很有可能在前端使用JavaScript SPA,在后端使用Java。RealWorld提供了一個應(yīng)用“導(dǎo)管”(中等克隆),幾乎使用了所有前端和后端組合。開發(fā)者稱它為“所有演示應(yīng)用程序之母”,因為它允許開發(fā)一個真實世界的應(yīng)用程序。RealWorld這個品牌名副其實,因為它支持著很多前端、后端技術(shù)。
目前,RealWorld支持所有可能的JavaScript前端框架(例如,React,Angular,Vue,Svelte,AngularJS,Ember),以及所有主流編程語言中所有可能的后端框架。在Java中,它支持Quarkus和Vert.x。
Realworld也是一個GitHub儲存庫,你在整個職業(yè)生涯中都會需要它,特別是全棧開發(fā)崗位的人。
5. Awesome Java
圖源:GitHub
有時我們需要在谷歌上花幾個小時搜索一些與Java相關(guān)的內(nèi)容,這個GitHub儲存庫可以給Java開發(fā)人員提供幫助。Awesome Java就像一本字典,幾乎包含了所有與Java相關(guān)的內(nèi)容。不論你想尋找字節(jié)碼操作器、機(jī)器學(xué)習(xí)庫,或者是實用程序庫,Awesome Java都有相關(guān)鏈接。
這個儲存庫由約300名志愿者組成的活躍社區(qū)維護(hù),定期更新。
圖源:unsplash
6. Baeldung教程
圖源:GitHub
如果你是一名Java開發(fā)人員,你很可能已經(jīng)看過Baeldung提供的各種教程和案例了。目前,它是Java、Web和Spring開發(fā)教程中排名第一的在線資源平臺。Baeldung與其他類似平臺的區(qū)別在于,它涵蓋了Java和Spring開發(fā)中從基礎(chǔ)到高級的內(nèi)容。除了教程,它還包含課程、指南和電子書等。Baeldung另一個重要特性是,所有的示例和教程都支持運(yùn)行GitHub代碼。
GitHub儲存庫包含Java和Spring開發(fā)領(lǐng)域的普通和重點教程,還包括了教程中對代碼詳細(xì)解釋的文章鏈接。這不僅是Spring開發(fā)人員的必備儲存庫,也是Vanila Java開發(fā)人員的必備儲存庫。
7. JHipster
圖源:GitHub
如果你使用的是企業(yè)級Java,那么你很可能聽說過JHipster。JHipster提供開發(fā)平臺來生成、開發(fā)和部署基于生產(chǎn)級單體應(yīng)用或微服務(wù)的Web程序。在前端,它提供前3大SPA框架(Angular、React和Vue),在后端提供Spring Boot。
它還支持所有主要的數(shù)據(jù)存儲(Oracle、PostgreSQL、MySQL、MS-SQL、MongoDB、Cassandra、ELK、Kafka)。JHipster的安全性級別很高,比如提供OAuth2+OpenIDConnect。它還提供了許多擴(kuò)展,幫助你開發(fā)幾乎適用于任何環(huán)境(包括云)的基于Spring的企業(yè)應(yīng)用程序。
JHIpster強(qiáng)大且成熟,可以用于開發(fā)POC甚至生產(chǎn)級應(yīng)用程序。
8. RxJava Android案例
圖源:GitHub
近年來,反應(yīng)式編程因為可以處理不同時存在的、基于事件的編程而大受歡迎。RxJava是ReactiveX通過Java實現(xiàn)的,可以通過觀察對象提供反應(yīng)式編程。學(xué)習(xí)Java反應(yīng)式編程有點困難,因為Java在默認(rèn)情況下是同步編程方式。
在GitHub項目中有RxJava的實際案例。雖然這些案例是針對Android開發(fā)的,但Java開發(fā)人員也可以將它們輕松應(yīng)用于非Android開發(fā)。
圖源:unsplash
9. Java8教程
圖源:GitHub
Java8是最具顛覆性和創(chuàng)新性的Java之一,因為它引入了“函數(shù)式編程”。有了Lambda表達(dá)式和流媒體的概念,Java最終實現(xiàn)了函數(shù)式編程,還保持了出色的、統(tǒng)一的向后兼容性。
并非所有Java開發(fā)人員都充分利用了Java8的新功能。我見過許多有經(jīng)驗的Java開發(fā)人員,他們?nèi)匀辉谟脗鹘y(tǒng)的開發(fā)方法。其中一個原因是,與傳統(tǒng)的面向?qū)ο缶幊滔啾?,函?shù)式編程是一種范式轉(zhuǎn)換,開發(fā)人員希望留在自己的舒適區(qū)。
這個GitHub儲存庫包含了許多小而有用的函數(shù)式編程概念示例(Lambda表達(dá)式、流媒體、函數(shù)式接口和并行流等),這些示例行文流暢,清晰易懂。如果你是Java函數(shù)編程的小白,這個儲存庫將極大地幫助你。
10.《程序員面試金典》
圖源:GitHub
無論你是在財富500強(qiáng)公司還是初創(chuàng)公司申請編程工作,都要參加編程面試。備受好評的《程序員面試金典》可以幫助你準(zhǔn)備具有挑戰(zhàn)性的編碼面試。這本書涵蓋了所有類型的編碼,包括算法復(fù)雜性、數(shù)學(xué)和邏輯難題、動態(tài)編程、排序和搜索、多線程等。
本書的出彩之處在于優(yōu)美、簡潔地解釋了所有的示例,GitHub儲存庫包含了該書第六版關(guān)于Java的所有示例。即使買不到原版書,瀏覽GitHub對你下次的面試也有幫助。
圖源:unsplash
準(zhǔn)備好你的收藏夾,這些寶藏庫千萬不要錯過!