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后端技术,越到后面分支越多,越细,也越难,而且更新迭代十分迅速。所以我们作为一面程序员,能做到的就是不断地去学习,同时基础才是最重要的,工具会一代一代更新,

posted @ 2020-07-08 00:25  朱李洛克  阅读(689)  评论(0编辑  收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css