之前写过一篇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服务器
- Nginx
Nginx是什么 ? 能干嘛 ?
【Nginx】什么是Nginx?为什么使用Nginx? - Netty
ngnix+tomcat的替代方案
消息中间件 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机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
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后端技术,越到后面分支越多,越细,也越难,而且更新迭代十分迅速。所以我们作为一面程序员,能做到的就是不断地去学习,同时基础才是最重要的,工具会一代一代更新,