真不用什么都會
有很多人問過我,學(xué)習(xí)開源項目消息推送平臺austin需要有什么基礎(chǔ),我往往會回答:有SpringBoot基礎(chǔ)就夠了。
我在幾年前總結(jié)過從零學(xué)習(xí)Java的路線,現(xiàn)在看來也沒有很過時:
Java基礎(chǔ):流程控制-->面向?qū)ο?包括語法)-->集合-->IO流-->異常-->多線程-->網(wǎng)絡(luò)編程-->反射
JavaWeb基礎(chǔ):Tomcat-->XML/注解->Servlet-->HTTP-->Filter過濾器和監(jiān)聽器-->AJAX/JSON-->數(shù)據(jù)庫(MySQL)-->JDBC
項目管理工具: Maven技術(shù)框架: SpringBoot
環(huán)境&部署: Linux和Git基本命令
有了這些基礎(chǔ)以后,我是建議做一個項目來鞏固所學(xué)過的內(nèi)容。以前的文章可能沒有推薦哪一個項目上手,現(xiàn)在我覺得我的austin項目是可以排得上號的。
如果打開過austin的Git倉庫,那你肯定在README里看到我列舉了austin用到的很多技術(shù)棧。這或許可能會讓你覺得要學(xué)完這些技術(shù)棧才能去看austin,甚至有些人就看到有這么多技術(shù)棧就放棄了。

曾經(jīng)我初學(xué)的時候有過類似的想法:我要學(xué)會了這個技術(shù)棧,才能使用或者看得懂這個技術(shù)棧相關(guān)的代碼。現(xiàn)在回看,這種想法是有問題的。
austin經(jīng)過我多輪地迭代,它上手的門檻已經(jīng)非常低了,要啟動austin只需要依賴mysql和redis就能用系統(tǒng)核心功能了,有SpringBoot基礎(chǔ)的基本一般也是有Mysql基礎(chǔ)。也許可能沒有Redis基礎(chǔ),但我有教程會教你呀!
只要應(yīng)用能從本地起來,那一切就好說了。有了調(diào)試的環(huán)境和實際的應(yīng)用場景去學(xué)相關(guān)的技術(shù)棧,這個成長速度是最快的。
比如,你沒有學(xué)過xxl-job,但你可能知道他是一個分布式定時任務(wù)框架。雖然不知道為什么要接入它,以及在生產(chǎn)環(huán)境可能是怎么用的,解決了什么問題。而austin接入的每一種技術(shù)棧我都說明了為什么要用,給出了使用場景,并給出了部署的文檔。
austin又有本地調(diào)試的能力,這時候你只要debug一下就相當于有了個現(xiàn)成的案例,不用上網(wǎng)去找各種的demo慢慢調(diào)試環(huán)境。這個能節(jié)約多少時間,應(yīng)該不用我多說吧?
不要遇到不懂的框架就感到害怕。先去看看這類框架解決的是什么問題,它們的設(shè)計理念是怎么樣的,剩下的無非就是接入,調(diào)用api到這就已經(jīng)入了個門了。
至于框架源碼,千萬不要覺得我們會經(jīng)常看源碼。只要系統(tǒng)沒遇到問題,對其不是特別感興趣,一般我們都不會看源碼實現(xiàn)的。
所以只是入門一個技術(shù)框架,挺簡單的。有了環(huán)境和現(xiàn)成的應(yīng)用代碼,那就更快了。
推薦項目
如果想學(xué)Java項目的,我還是強烈推薦我的開源項目消息推送平臺Austin,可以用作畢業(yè)設(shè)計,可以用作校招,可以看看生產(chǎn)環(huán)境是怎么推送消息的。
倉庫地址(可點擊閱讀原文跳轉(zhuǎn)):https://gitee.com/zhongfucheng/austin
最后,再推薦下我的股東服務(wù)吧。austin用到的技術(shù)棧幾乎都可以連我的服務(wù),不用自己部署踩坑部署環(huán)境了。
