很哇塞的 3 個 Java 實(shí)戰(zhàn)項(xiàng)目!
日常學(xué)習(xí)編程的過程中,項(xiàng)目實(shí)戰(zhàn)是不可避免的!編程本身就是要多實(shí)踐,多踩坑。
我遇到過很多應(yīng)屆生,整個大學(xué)學(xué)了 4 年的編程,自己敲的代碼可能還不到 3000 行。你讓他做用自己學(xué)的編程知識做個什么東西,他就蒙了,不知道從哪里下手。
學(xué)習(xí)編程以及提高編程能力最直接的辦法就是實(shí)踐!不斷實(shí)踐!特別是在編程初期的時候,積累代碼量格外重要。
就比如你學(xué)習(xí) Java 后臺開發(fā)的時候,能不能通過自己學(xué)過的知識獨(dú)立做個網(wǎng)站呢?再比如你搞懂了某個框架原理之后,能不能模仿著去寫一個簡單的呢?
理論固然重要,空談理論而無實(shí)踐就無意義了。
我之前推薦過很多實(shí)戰(zhàn)類的項(xiàng)目,很多還附帶了詳細(xì)的講解,你可以在《優(yōu)質(zhì)開源項(xiàng)目》這個專輯中找到。
今天的話,再給大家推薦 3 個還算不錯并且適合學(xué)習(xí)的實(shí)戰(zhàn)項(xiàng)目。
這些項(xiàng)目不同于咱們平常經(jīng)常遇到的博客系統(tǒng)、人員管理系統(tǒng)、商城系統(tǒng)等等已經(jīng)有點(diǎn)“爛大街”的項(xiàng)目。所以,也是作為自己項(xiàng)目經(jīng)驗(yàn)的不錯的選擇。
另外,說一嘴。這篇文章絕對不是單純的推薦,每一個項(xiàng)目我自己都花了很長時間研究。我也會在分享這些項(xiàng)目的時候,把自己的一些心得分享出來。
昨晚花了很久整理。如果你覺得這篇文章對你有用的話,不要白嫖!點(diǎn)個贊再走唄!
zfile:在線云盤
ZFile 是一個前后端分離的在線云盤的實(shí)戰(zhàn)項(xiàng)目,使用 Spring Boot + Spring Security + JPA 開發(fā),數(shù)據(jù)庫使用的是 H2 內(nèi)嵌數(shù)據(jù)庫。
后端源碼 : https://github.com/zhaojun1998/zfile/ 前端源碼 : https://github.com/zhaojun1998/zfile-vue/ 推薦指數(shù) :????
ZFile 除了基本的文件存儲功能之外,還支持在線瀏覽文件(視頻, 圖片, 音樂)、文件直鏈分享等功能。項(xiàng)目的實(shí)際效果圖如下。


我們學(xué)習(xí)這個項(xiàng)目的主要目的并不是為了自己搭建一個在線云盤自己用。當(dāng)然了,這也是可行的。畢竟某度的云盤速度有點(diǎn)感人,期待阿里云云盤能夠良心一點(diǎn)吧!
你可以自己寫一個在線云盤系統(tǒng)當(dāng)做自己的項(xiàng)目經(jīng)驗(yàn)/畢業(yè)設(shè)計(jì)。這不比某某商城系統(tǒng)要香的多?
不過,我不太建議大家直接 copy 別人的項(xiàng)目,然后就在簡歷上說是自己寫的。
說實(shí)話,這種行為有點(diǎn)可恥,好吧!雖然,我知道很多小伙伴就是這樣做的。
秉著對自己負(fù)責(zé),對面試負(fù)責(zé)的態(tài)度,我建議你可以借鑒這個項(xiàng)目的思路,自己徒手?jǐn)]一個。
難度,其實(shí)真不大的!可能剛上手開發(fā)那會比較難下手,等你把整個技術(shù)原理搞清楚之后就好了。前端的話,你完全可以直接在原作者的基礎(chǔ)上修改一下。你直接把后端寫一下就 OK 了。
另外,如果說你要修改原項(xiàng)目自帶的前端項(xiàng)目源碼的話,建議你提前花時間學(xué)習(xí)一下前端基礎(chǔ)(比如 ES6),把 Vue 的官方文檔閱讀幾遍。
zfile 這個項(xiàng)目的代碼整體質(zhì)量在開源項(xiàng)目中算是比較高的。不過,還是有一些小細(xì)節(jié)可以完善比如 Controller 層放了太多業(yè)務(wù)邏輯(封裝一個服務(wù)函數(shù) Service 更好)。
novel-plus:小說精品屋
novel-plus 是一款基于 SpringBoot + MyBatis +Spring Security + Elasticsearch + 支付寶支付的原創(chuàng)文學(xué) CMS 系統(tǒng)。
除了單體版之外,這個項(xiàng)目還有一個基于 Spring Cloud 的微服務(wù)版本供你學(xué)習(xí)使用。

項(xiàng)目地址 : https://github.com/201206030/novel-plus 推薦指數(shù) :????
novel-plus 除了支持基本的小說上架和閱讀功能之外,還支持小說排行榜、會員充值、用戶訂閱等功能。項(xiàng)目的實(shí)際效果圖如下。



這個項(xiàng)目還有一個爬蟲模塊用于系統(tǒng)初期測試使用。對 Java 爬蟲感興趣的朋友,可以簡單研究一下。

這個項(xiàng)目的代碼質(zhì)量也是非常不錯的,結(jié)果清晰,代碼結(jié)構(gòu)也比較規(guī)范。這也是我推薦這個項(xiàng)目很大的一個原因。

guide-rpc-framework:RPC 框架
guide-rpc-framework 是一款基于 Netty+Kyro+Zookeeper 實(shí)現(xiàn)的 RPC 框架。
項(xiàng)目地址 : https://github.com/Snailclimb/guide-rpc-framework 推薦指數(shù) :?????
這個項(xiàng)目代碼注釋詳細(xì),結(jié)構(gòu)清晰,并且集成了 Check Style 規(guī)范代碼結(jié)構(gòu),非常適合閱讀和學(xué)習(xí)。

并且,這個項(xiàng)目的 README 文檔寫的也非常認(rèn)真。從 README 文檔中,你就可以大概了解到這個 RPC 框架的設(shè)計(jì)思路以及前置技術(shù)。

雖說 RPC 的原理實(shí)際不難,但是,我自己在實(shí)現(xiàn)的過程中自己也遇到了很多問題。guide-rpc-framework 目前只實(shí)現(xiàn)了 RPC 框架最基本的功能(玩具級別),一些可優(yōu)化點(diǎn)我都在項(xiàng)目的 README 文檔提到了,有興趣的小伙伴可以自行完善。
通過這個簡易的輪子,你可以學(xué)到 RPC 的底層原理和原理以及各種 Java 編碼實(shí)踐的運(yùn)用。
你甚至可以把這個項(xiàng)目當(dāng)做你的畢設(shè)/項(xiàng)目經(jīng)驗(yàn),這是非常不錯!對比其他求職者的項(xiàng)目經(jīng)驗(yàn)都是各種系統(tǒng),造輪子肯定是更加能贏得面試官的青睞。
我了解到很多小伙伴都拿我的這個項(xiàng)目作為校招的項(xiàng)目經(jīng)驗(yàn),而且反響很不錯。
我這里提一個建議:一定不要照搬我的項(xiàng)目,盡量自己從頭開始寫。你可以參考我的思路, 但是自己一定要搞懂,而不是直接復(fù)制粘貼我的思想。盡量能夠和我有點(diǎn)不一樣的地方比如通信協(xié)議的設(shè)計(jì)、序列化的選型、注冊中心的選擇。
總結(jié)
這篇文章中,我一共推薦了 3 個實(shí)戰(zhàn)項(xiàng)目:
zfile(在線云盤) novel-plus(小說精品屋) guide-rpc-framework(RPC 框架)
zfile 和 novel-plus 需要你至少要有 Spring Boot 、MyBatis、JPA 等基礎(chǔ)知識儲備,guide-rpc-framework 需要你至少要有 RPC、Netty、ZooKeeper 等知識儲備。
對這些項(xiàng)目感興趣的小伙伴,可以參考著項(xiàng)目的 README 文檔把項(xiàng)目在本地先跑起來。然后,從一個具體的功能主線出發(fā)來研究這個項(xiàng)目。
具體怎么研究這些項(xiàng)目,你可以看我的這篇原創(chuàng):《新人如何上手一個新項(xiàng)目的開發(fā)?》 。
歡迎加入我的星球,一個純 Java 面試交流圈子 !Ready!。目前星球已經(jīng)更新 3 個原創(chuàng)小冊:《Java面試進(jìn)階指北》、《從零開始寫一個 RPC 框架》 、《程序員副業(yè)賺錢之路》。累計(jì)幫助 520+ 位球友提供了免費(fèi)的簡歷修改服務(wù),回答了 500+ 個問題,產(chǎn)出了 1300+ 個主題。
推薦?? :1049天,100K!簡單復(fù)盤!
推薦?? :匯報一下2020的工作
推薦?? :Github掘金計(jì)劃:Github上的一些優(yōu)質(zhì)項(xiàng)目搜羅
