总结一句话如何从初级到架构师SpringBoot技术路线,我会按照阶段说清楚:学什么?为什么学?做到什么程度才算过关,以及背后的重点信息差到底是什么?
首先总体的成长路径
Java基础
SpringBoot
数据与中间件
微服务
云原生
架构设计
业务与工程能力
第一阶段:初级开发
这是一个从0到1的阶段,能够独立的完成一个完整的后台管理系统包括登录以及业务的CRUD操作。
主要学习的就是Java基础,包括面向对象、集合、多线程、JVM基础(内存结构、GC等)现在很多的面试的时候越来越多的问的就是JVM底层原理,而不是你会不会写代码,所以在写代码的基础上需要了解代码底层的原理。
SpringBoot入门,主要了解关于自动配置原理、三层开发模式、配置文件、REST API设计等等。这个可以从各个渠道获取,学就学最新的。
数据库方面,需要了解各种数据库的使用,重点了解MySQL数据库的索引、事务、SQL优化等内容,在ORM框架层面主流的就是MyBatis和JPA两个流派可以深入的了解学习。
项目基础实战:在完成后台管理系统开发的过程中可能会涉及到用户登录授权体系,这样就扩展的学习了Spring Security、Apache Shiro、Sa-Token、JWT等技术。
这个阶段的主要的任务就是能够独立的完成后台系统的开发,并且需要学习部署上线的操作。例如,如何将一个前后端分离的项目部署到服务器上,哪怕是单体应用模版引擎实现的也行。
第二阶段:进阶开发
这一阶段的要求就是能够完成稳定、可用系统的开发。
成长最快的方式就是硬着头皮上
SpringBoot生态深入学习,了解Spring MVC框架的底层执行流程,了解Spring 的IOC/AOP的原理,Bean的生命周期等内容,可以深入的了解Spring Framework框架。
进入缓存和中间件的学习,了解Redis学习Redis缓存、分布式锁、限流等机制,了解消息队列RocketMQ、RabbitMQ、Kafka等。
深入学习并发机制,了解线程池、锁机制、了解常见的一些性能优化等。
深入学习Spring Security、JWT、OAuth2等安全框架
经历过这一阶段之后,你会深入的了解到高并发、深入的学习到了电商系统的基础开发。经过这一阶段,就是你成长的核心阶段因为这一阶段结束将会决定你是普通开发还是高级开发。这一阶段的磨砺,将会对你的技术能力有质的提升,你不再是一个只会写代码的的普通开发,而是具有解决线上问题能力的高级开发人员。
第三阶段:高级开发阶段
这一阶段的目标就是你能够设计出可以复用的复杂系统
需要学习微服务架构设计,服务拆分、服务调用、微服务网关设计、服务治理等等内容需要了解Spring Cloud、Dubbo等微服务技术。
需要从本地事务转向分布式事务的实现方案了解分布式事务、CAP/BASE等了解分布式系统的设计落地。
数据库层面上不再是局限于单库,而是进入到富贵论坛APP分布式数据库、分库分表、了解读写分离设计方案、了解数据一致性、缓存一致性等等问题。
了解对于应用系统的监控、体系的建立,配合容器化技术能够实现动态的扩容等。
能够真正成为一个高级工程师,是需要会系统设计的而不是基于会写代码会解决问题的层面。
这个阶段成功的标志就是能够讲清楚技术实现方案,能够设计出高并发的稳定系统。
第四阶段:架构师
架构师主要就是做技术决策、架构设计、需要理解业务完成技术方案的确定。
云原生技术是现在必须要学习的技术,对Kubernetes、Service Mesh(Istio)、云平台有着深入的了解,主要学习服务网格化实现。
了解高可用设计,学习熔断、限流、服务降级、需要会设计多活架构、了解灾备设计方案
具有DevOps的部署能力了解自动发布、自动部署、了解各种发布环境测试流程等。
在技术选型方面需要了解各种技术架构实现的优势,例如为什么选择A技术栈、不选择B技术栈?
理解业务,这也是成长为架构师最为关键的步骤,需要考虑到成本、收益、风险等,架构师的基础并不是技术一定要有多强,而是能够在正确的点上做正确的决策。