2022给自己一个新的规划新的起点---架构师

2022给自己一个新的规划新的起点---架构师

  Java架构师应该是Java程序员技术追求的一个里程碑了,但是有些人工作十年也达不到,可是有些人工作三四年就达到了。这个是不是很气人,这个原因究竟在哪呢?可能大家会比学历,会比背景等,但架构师本身就是以技术来衡量的。所以还是要看真本事的,架构师比较抽象的来拆解能力其实就两方面 技术+项目

  足够的技术栈深度和广度再加上足够的项目经验其实是完全可以驾驭架构的岗位的。那么你要提升的方向其实就很清楚了,首先项目经验等你工作了三四年肯定也积累了四五个项目了,所以项目这块难度其实不大。

  提升的关键是你的技术能力,也就是技术栈的深度和广度,光有广度而没有深度是没用的,所以重点还是要提升技能的深度,而技术的深度提升是很耗费时间的,如果花了一年的时间才搞清楚了MyBatis的架构设计,那这个工作10年也达不到架构的要求了,这个就是要求你必须具备很强的学习能力。

  说到学习能力,举一个简单的例子,如果你初中和高中学习都很烂,然后想在大学里面凭自己的能力要把每门课程都学的很好基本是不可能的,这时你只有把初中和高中落下的内容都补充起来,那么你大学的课程才能轻松驾驭。

  所以和上面一样的道理要提升你技术的学习能力,你同样需要把编程语言需要具备的基础要抓起来,比如计算机网络,操作系统,数据结构,常用算法,JVM等等,非常非常的多,到这儿你可能又懵逼了,这么多的内容,怎么学?可能计算机网络还没看完,就把学习的动力给消磨没有了,对吧。这个其实也是阻碍很多人提升的关键了。

  针对上面的问题怎么来解决呢?嗯,关键就是学习路线的设计了,为什么这么说呢?大家应该有这样一个感受,如果我是为什么了学什么而学习那么容易遗忘掉,比如为了面试突击了JVM,但是找到工作后,天天开发的内容又和JVM没有关系那么是很容易忘掉的。但是如果你学习的内容和你的工作有很强的关联或者是你学习下一个内容的前置内容,那么就会非常的有效果。

  比如工作中我们会用到SpringCloud中的相关组件,比如Ribbon,这时你需要研究Ribbon的底层设计,Ribbon本身会用到的技术点(SpringBoot的自动装配,动态代理,Spring容器,负载均衡的各种算法,定时调度,RPC通信等等)那么要看到Ribbon的源码首先你需要搞定的是SpringBoot的自动装配的原理。如果你不清楚自动装配的原理,那么你连Ribbon的入口你都找不到。

  然后我们在研究SpringBoot中,你又发现SpringBoot是基于Spring实现的一个脚手架,那么Spring容器又是一个非常重要的前置内容。

  然后我们去看Spring的源码,你会碰到两方面的知识阻碍,第一是Spring本身的架构设计,第二个是查看源码必须具备的Java基础,Spring从04年发布第一个版本到现在Spring6.0快出来了,已经发展了18年了,所以你要把Spring的整体架构设计搞清楚难度还是非常大的,而且你本身的java基础都不扎实,那么难度进一步增大了。这时我们可以把这个难度拆解下来。

  我们可以先学习MyBatis的源码,MyBatis的整体架构设计是非常简单的,就是一个ORM框架,难度更多的是在Java基础,这样一说其实我们在看MyBatis源码之前需要先补充查看MyBatis必须具备的Java基础了。

  这时我们先把Java基础中的集合API,反射,注解,泛型已经相关的设计模式先搞定,然后在看MyBatis源码,在MyBatis源码中消化前面的基础,增强对MyBatis的理解,支撑Spring源码的学习。这样一来,一条路线不就出来了吗?

2022给自己一个新的规划新的起点---架构师

  Java基础+设计模式–》SSM框架源码–》SpringBoot源码–》微服务组件源码 这样的路线就出来了,可以看到相关的学习都是环环相扣,最终又和我们的关系有很强的关联关系,这种学习不出效果都难了。

  到这儿又得回到架构这个问题了,通过前面的一条路线的学习,你会掌握到最核心的基础内容,然后我们可以在拆解设计第二条路线,比如为了搞定自定义协议的RPC框架的设计,来拆解一条路线 计算机网络+操作系统 --》BIO + 多线程 --》NIO + 线程池 + 多路复用 --> Netty -->Tomcat Redis Zk Dubbo —>自定义协议RPC框架。

2022给自己一个新的规划新的起点---架构师

  有了第一条路线第二条路线,你再设计对应的第三条路线,这样每条路线的交集会越来越大,那你对应的学习难度就会越来越低,学习的效率就会越来越高,也就是你的学习能力就会越来越强。那么与之对应的技术栈的广度和深度就能在有限的时间里面来实现了哦。而项目就在工作中来积累吧,

  如此一来,Java架构的路线清楚了吗?

上一篇:Vue大型项目之分模块运行/打包


下一篇:《手把手教你》系列技巧篇(六十八)-java+ selenium自动化测试 - 读写excel文件 - 下篇(详细教程)