新聞中心
當(dāng)今互聯(lián)網(wǎng)份額最大的編程語(yǔ)言是哪一個(gè)?是 Java !這兩年一直有聽(tīng)說(shuō) Java 要不行了、在走下坡路了。沒(méi)錯(cuò),Java 的確在走下坡路,未來(lái)的事情的確不好說(shuō),但是瘦死的駱駝比馬大,未來(lái)的三五年之內(nèi),我相信 Java 仍然是行業(yè)“一哥”!各位是否和我剛學(xué)完 Java 基礎(chǔ)語(yǔ)法時(shí)一樣,陷入過(guò)不知道 Java 能做什么的困擾中?覺(jué)得 Java 只能在控制臺(tái)里 System.out.println 打印打印貓啊狗啊、爸爸和兒子嗎?

不!在開(kāi)源的世界里,有著無(wú)數(shù)的 Java 項(xiàng)目等待你去發(fā)現(xiàn)探索,讓我們一起跟著本篇文章去看看有哪些開(kāi)源項(xiàng)目吧。
本期是 Java 篇 希望這篇文章能讓大家找到 GitHub 上適合自己學(xué)習(xí)的 Java 開(kāi)源項(xiàng)目。可以把這次的學(xué)習(xí)當(dāng)成一次游戲,一路打怪升級(jí)直至通關(guān),我層層遞進(jìn)的設(shè)計(jì)了三個(gè)階段: 青銅 -> 白銀 -> 黃金 。為什么只到黃金?因?yàn)槌蔀檎嬲笈5穆肥欠浅BL(zhǎng)的,我相信黃金之后的路。你一定就會(huì)有自己的想法了,大膽的走自己的路,成為那顆璀璨的“鉆石”吧!
一、青銅
萬(wàn)事開(kāi)頭難
1.1 快樂(lè)的小鳥(niǎo)
作為整篇文章的開(kāi)頭,我選擇了一個(gè)比較輕松好玩的項(xiàng)目,希望能夠勾起你對(duì)編程的興趣!作者僅使用了 Java 標(biāo)準(zhǔn)庫(kù)還原了,曾經(jīng)在手機(jī)上紅遍一時(shí)的“憤怒的小鳥(niǎo)”。先 clone 把源碼下載后,可以通過(guò) java -jar FlappyBird.jar 直接運(yùn)行,也可以通過(guò)運(yùn)行源碼中的 GameApp:main 方法來(lái)啟動(dòng)整個(gè)游戲。通過(guò)學(xué)習(xí)該項(xiàng)目可以學(xué)習(xí)到:
-
使用標(biāo)準(zhǔn)庫(kù)中的一些工具,比如集合、播放音效、加載圖片
-
如何利用多文件,把不同的邏輯拆分到不同的類中去,并相互之間協(xié)作構(gòu)建起整個(gè)游戲的狀態(tài)
-
一些設(shè)計(jì)模式的應(yīng)用,比如單例、對(duì)象池
GitHub 地址:https://github.com/kingyuluk/FlappyBird
1.2 Java 圣經(jīng)
高爾基說(shuō)過(guò):「書是人類進(jìn)步的階梯」。在歷史的長(zhǎng)河中誕生過(guò)無(wú)數(shù)的著作,計(jì)算機(jī)領(lǐng)域也不例外,而《Think in Java》就是我要重點(diǎn)介紹的一本著作,這本書給我的第一印象就是:全!從最基本的數(shù)據(jù)類型到之后的面向?qū)ο笤俚胶竺娴姆盒头瓷涞母呒?jí)話題,無(wú)所不包。我之前閱讀的是第四版實(shí)體書,現(xiàn)在的好消息是,第五版來(lái)了!而且是以開(kāi)源的形式。經(jīng)過(guò)之前小項(xiàng)目的小打小鬧,大家也有了一點(diǎn)編程的感覺(jué)了,是時(shí)候鞏固下理論知識(shí)了,俗話說(shuō)的好:「基礎(chǔ)不牢,地動(dòng)山搖」?,F(xiàn)在這個(gè)階段去閱讀此著作一定會(huì)給你不一樣的感覺(jué),我甚至推薦你每到一個(gè)階段,你可以回過(guò)頭去翻翻這本經(jīng)典書籍,每次都會(huì)有新的認(rèn)識(shí)。
-
項(xiàng)目地址:https://github.com/LingCoder/OnJava8
-
在線閱讀:https://lingcoder.github.io/OnJava8/#/sidebar
1.3 一圖勝千言
如果你覺(jué)得剛剛的「圣經(jīng)」有點(diǎn)重,不妨來(lái)看看這個(gè)項(xiàng)目,這個(gè)項(xiàng)目從 Java 基礎(chǔ)到標(biāo)準(zhǔn)庫(kù) JVM 到 Spring 再到各個(gè)常用到中間件 Redis、Zookeeper 等。每一部分都用了一張思維導(dǎo)圖來(lái)整理出各個(gè)知識(shí)點(diǎn),既能夠?qū)W(xué)知識(shí)的大致了解,也方便了學(xué)習(xí)后,對(duì)已學(xué)知識(shí)的鞏固復(fù)習(xí),可以說(shuō)良心到不行。你完全可以按照自己的節(jié)奏,學(xué)習(xí)的進(jìn)度去查看每一個(gè)知識(shí)點(diǎn)。
GitHub 地址:https://github.com/huangliangyun/MindManager
二、白銀
堅(jiān)持就是勝利
2.1 春天來(lái)了
Java 在生產(chǎn)中多數(shù)是以服務(wù)端開(kāi)發(fā)為主,那在服務(wù)端領(lǐng)域還有一個(gè)一定繞不開(kāi)的 Java 框架就是 Spring。我相信你一定聽(tīng)過(guò)這個(gè)名字,Spring 這個(gè)框架現(xiàn)在基本已經(jīng)是 Java 服務(wù)端的工業(yè)級(jí)標(biāo)準(zhǔn)了,我就職過(guò)的公司沒(méi)有一個(gè)不用的,而 Spring 發(fā)展至今,他工程上的復(fù)雜程度也大大的提高了,各種封裝和抽象,想要搞懂原理變得非常困難,但是你不需要太過(guò)害怕,因?yàn)橹皇峭瓿晒δ苌系拈_(kāi)發(fā)和一般的使用是不需要知道 Spring 的原理的。Spring 團(tuán)隊(duì)為了能進(jìn)一步提升開(kāi)發(fā)體驗(yàn),推出了 Spring Boot 這個(gè)框架,你可以認(rèn)為 Spring Boot 是對(duì)原本的 Spring MVC 進(jìn)行封裝并且內(nèi)置了一個(gè) Tomcat 的容器,僅此而已。最后如果是新學(xué)的話建議直接從 2.0 開(kāi)始。
關(guān)于 Spring Boot 我這里推薦一個(gè)項(xiàng)目:
https://github.com/yizhiwazi/springboot-socks
項(xiàng)目里面內(nèi)置了很多有用的片段,從最簡(jiǎn)單的 Hello World 到如何集成 Mybatis 啊,又或者是如何跨域,還有怎么發(fā)送郵件啊等等,都有一個(gè)對(duì)應(yīng)的文件夾的示例。
此階段建議按照以下路線學(xué)習(xí):
-
從零啟動(dòng)一個(gè)空的 Spring Boot 項(xiàng)目,可以學(xué)習(xí)到 Spring Boot 的最小配置,以及如何聲明 REST 風(fēng)格的 Controller 并返回簡(jiǎn)單的數(shù)據(jù)
- 將 Spring Boot 和 Java 的持久層框架(如 Mybatis-Plus )串起來(lái),通過(guò) REST 的接口進(jìn)行簡(jiǎn)單的增刪改查操作(可以完全不需要頁(yè)面,僅僅需要一個(gè) Postman 或者
curl即可) -
使用 FreeMarker 或者 Thymeleaf 其他模板引擎,寫一個(gè)簡(jiǎn)單的頁(yè)面(可以是一些簡(jiǎn)單的輸入框,按鈕,完全不需要考慮樣式),再將之前的增刪改查操作串起來(lái),并通過(guò)模板引擎將結(jié)果渲染至瀏覽器。
完成這個(gè)階段后,相信你對(duì)企業(yè)中的前后端交互以及框架的基本使用就有概念了。然后就能基于此,嘗試做一些小功能,比如登陸,注冊(cè)等等。
2.2 人生就是要難得糊涂
Java 本身被詬病最多的就是語(yǔ)法啰嗦, hutool 是一個(gè)簡(jiǎn)單易用的三方 Java 類庫(kù),里面包含了大量的工具類靜態(tài)方法,封裝了原本復(fù)雜的調(diào)用。而它的源碼本身也是值得學(xué)習(xí)的優(yōu)秀開(kāi)源項(xiàng)目,通過(guò)學(xué)習(xí)它可以了解到一個(gè)優(yōu)秀的 lib 項(xiàng)目是如何組織、規(guī)范代碼的,也希望讀者們以后都能擁有令人自豪的開(kāi)源項(xiàng)目。
-
項(xiàng)目地址:https://github.com/looly/hutool
-
官網(wǎng)地址:https://www.hutool.cn
三、黃金
不經(jīng)歷風(fēng)雨,怎能見(jiàn)彩虹
3.1 要做 NB 不要做 NewBee
堅(jiān)持到現(xiàn)在的你需要一個(gè)媲美生產(chǎn)環(huán)境的完整項(xiàng)目經(jīng)驗(yàn),而這個(gè)開(kāi)源項(xiàng)目恰好可以滿足,推薦這個(gè)項(xiàng)目的原因如下:
-
項(xiàng)目的體量大了很多,不單單是后端代碼,還有一整套的前端頁(yè)面,Awesome!
-
商城基本功能都已經(jīng)具備:首頁(yè),登錄,瀏覽商品,購(gòu)物車,下單等,甚至還有一個(gè)后臺(tái)管理功能,Awesome!
GitHub 地址:https://github.com/newbee-ltd/newbee-mall
預(yù)覽地址:http://mall.newbee.ltd
3.2 成神之路
之前都是偏向?qū)嵺`的項(xiàng)目,到了這里,應(yīng)該放慢腳步,往更高層的方向出發(fā)了。正所謂,「知其然,更要知其所以然」。有了實(shí)踐的幫助,會(huì)讓學(xué)習(xí)理論不那么枯燥,同樣也因?yàn)槔碚?,讓?shí)踐有了更好的基礎(chǔ)。
-
項(xiàng)目地址:https://github.com/doocs/advanced-java
-
在線閱讀:https://doocs.github.io/advanced-java
這個(gè)在線書籍包含了很多 Java 生態(tài)中的高級(jí)話題,如高并發(fā),分布式,緩存,高可用,微服務(wù)等等。由一個(gè)問(wèn)句引出讀者的思考,讓讀者跟著作者的思路一步步的從提出問(wèn)題,分析問(wèn)題到最后的解決問(wèn)題。
3.3 走自己的路,讓別人說(shuō)去吧
之前的小鳥(niǎo),不知道有沒(méi)有擊中你的心靈?我反正是有,我剛開(kāi)始學(xué) Java 的時(shí)候也搗鼓過(guò)一些小游戲,比如掃雷,貪吃蛇,坦克大戰(zhàn)等。那時(shí)還不知道有 GitHub 不然這些項(xiàng)目就能和大家見(jiàn)面了,自己當(dāng)時(shí)也瞎寫,對(duì)編程感覺(jué)還不強(qiáng),但是親手將一些兒時(shí)的回憶復(fù)刻出來(lái)的感覺(jué)是非常棒的,如果你也想用 Java 寫寫小游戲的話,不妨看看下面這個(gè)項(xiàng)目。
-
項(xiàng)目地址:https://github.com/AlmasB/FXGLGames
-
官網(wǎng)地址:http://almasb.github.io/FXGLGames
項(xiàng)目中已經(jīng)內(nèi)置了一些簡(jiǎn)單游戲的 Demo,通過(guò)學(xué)習(xí)可以讓你快速上手,框架還可以將游戲輕松打包到單個(gè)可執(zhí)行文件,快來(lái)試試吧!
最后
HelloGitHub 想讓更多人愛(ài)上編程、開(kāi)源,也一直在嘗試、摸索如何幫助更多的人。
分享題目:適合Java新手的開(kāi)源項(xiàng)目集合——在GitHub學(xué)編程
URL分享:http://www.dlmjj.cn/article/djdsjcp.html


咨詢
建站咨詢
