Java后端學習路線進階



之前寫過一篇Java后端的學習路線,講的比較基礎。那如果想要提高怎么辦,需要學習到那些技術呢?其實后端開發還是一個比較雜的職位,什么都要學,這就導致學習的技術體系十分龐大。而且很多技術比較高深,筆者也沒有接觸過,所以主要以分享為主。歡迎大家批評指正。

數據庫

如果你是一個合格的搬磚工,那么crud足以應付日常需求。如果你不甘於每天重復而沒有意義的工作,那么你需要學習的還有很多。如下:
關系型數據庫:MySQL/PostgresSQL/Oracle/SQLserve
數據庫框架:Hibrenate(國外)/MyBatis(國內)
NOSQL:MongoDB/Redis(緩存)
數據庫版本控制:flyway/liquidbase(類似git)

NoSQL數據庫

除了關系型數據庫外,一般會使用Redis進行緩存,來提高存取的速度。而文檔型數據庫MongoDB的興起,大有取代關系型數據庫的噱頭,是一門非常值得學習的新技術。
NoSQL,淺談redis與mongoDB的區別
https://www.zhihu.com/question/20059632

數據庫優化

雖然你不是DBA,但是寫的SQL也不能太拉跨了,不然不是對不起自己高級Java開發工程師的稱號。

Java項目常用的開源解決方法

一些場景下,我們需要整合第三方的技術,成熟的Java開發一定要有十八般武藝,來應付各類煩人的需求。

安全框架

JWT/shiro/Spring Security/oauth2

JWT是原理;oauth2是第三方登錄驗證,例如微信登錄;shiro是第三方安全框架;Spring Security是Spring整合的官方安全框架。一般會選擇oauth2 + shiro/Spring Security的組合。

https://blog.csdn.net/qq_16946803/article/details/108408170
https://www.zhihu.com/question/403895467/answer/1313015205

作業

Quartz/XXLjob

日志

Log4J/LogBack/SLF4J

WEB服務器

消息中間件 rabbitmq/kafka

消息中間件(一)MQ詳解及四大MQ比較
我為什么要選擇RabbitMQ ,各種MQ選型對比
RabbitMQ和kafka的區別
RabbitMQ和Kafka到底怎么選?

全文檢索 slor集群

solr是什么?Solr集群環境的系統架構有
Lucene、solr以及elasticsearch之間的區別和聯系
https://cloud.tencent.com/developer/article/1184361

微服務

SpringCloud

在學會了Springboot后,緊接着就是Spring全家桶。然后進階的就是SpringCould里面的一些東西了。這里推薦一個非常好的文章。同時SpringCloud有自己的組件來應對各個場景,是上文所描述的常用的開源解決方法的簡單集合。

SpringCloud到底是什么
簡單來說,Spring Cloud是一個微服務框架的規范,注意,只是規范,他不是任何具體的框架。而它的內容里面有很多組件提供使用。

這里還有一個很重要的概念就是SOA。
如何通俗易懂地解釋什么是SOA?什么是SOA

Github點贊接近 70k 的Spring Cloud學習教程+實戰項目推薦!牛批!

再附上一篇很好的文章。
Spring Cloud簡述及簡單入門實例

Dubbo+zookeeper

Dubbo也是一種微服務框架,通常需要配合zookeeper使用,但是目前的流行程度不如SpringCloud。有興趣的可以了解一下。

Dubbo和Spring Cloud並不是完全的競爭關系,兩者所解決的問題域不一樣:Dubbo的定位始終是一款RPC框架,而Spring Cloud的目的是微服務架構下的一站式解決方案。

高並發

這就又是一門新的技術了,先挖一個坑,日后有機會再填。

運維

Linux

在后端開發過程中,往往會把一些數據庫安裝在Linux系統中,所以常用的Linux指令還是要會的。在自己電腦要安裝一個虛擬機,如果是Mac使用的是Unix。

推薦一本書——《鳥哥的Linux私房菜》

雲服務

AWS/AZURE/騰訊雲/阿里雲
http://www.1024sky.cn/blog/article/5425

Linux容器虛擬技術

Docker/k8s

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然后發布到任何流行的Linux或Windows機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。

什么是Docker?為什么要使用Docker?

k8s
PAAS/SAAS/IAAS
https://zhuanlan.zhihu.com/p/53260098

CI/CD

https://zhuanlan.zhihu.com/p/67805669
https://linux.cn/article-9926-1.html

代碼管理

Github/Gitee/Gitlab

前端

國外ReactJS,AngularJS,國內Vue。不懂前端的后端不是好的架構師!學就完事了。

Java后端技術,越到后面分支越多,越細,也越難,而且更新迭代十分迅速。所以我們作為一面程序員,能做到的就是不斷地去學習,同時基礎才是最重要的,工具會一代一代更新,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM