前言:
计算机领域技术更迭非常之快,内容博大精深。涉及到分布式架构,更是分支众多,知识庞杂。很多新人在最初往往找不到头绪,不知道从何处下手来一步步提升自己的技术水准。
本文将介绍要成为1个技术大牛的18般兵器谱,以及这条打怪升级之路,希望可以让新人少走弯路,在这条路上一步步提升自己。
阶段1: 计算机功底(开源框架大纲和微服务架构大纲)
(1)常用数据结构,算法的时间/空间复杂度的计算(随便找本大学教科书都有的内容)
(2)Linux操作系统(从各种命令操作,到原理的理解:比如各种IO,磁盘文件组织、进程与内存管理、epoll)
(3)多线程(无论是用Java的Concurrent Util,还是C++直接用Liunx的pthread,原理都一样。各种线程同步机制的深刻理解)
(4)网络(知道一个完整的socket c/s程序是如何写的,TCP/IP协议的原理)
(5)数据库(比如B+树为什么可以实现关系数据库的各种查询方式、排序,比如事务的隔离级别)
(6)精通1门语言:不是只会用语法,而是能深刻理解语言下面的实现机制。如果你搞Java,怎要很好理解JVM的各种机制,class loader,内存模型,注解,动态代理。。;
如果你搞C++,需要理解编译、链接、运行的整个过程,对象在内存里面如何布局的,多态咋实现的(这方面书籍狂多,随便找1本国外大牛的书,好好啃完,对语言的理解就会深刻很多);
如果你搞其他语言,比如PHP,GO, Rust,同样的,除了很熟练的会用,可以去理解背后的实现原理。。
阶段2: 能用框架搭建各种系统
你可以用各种开源框架,搭建常用的Web应用,以Java为例:
Nginx,SpringMVC, Dubbo或者Spring Cloud,Mysql,Redis/Memcached,TFS,Kafka或者RocketMQ,CDN等
当然,非Web应用,比如IM这种,也有类似的各种框架(XMPP协议的实现),或者第3方支持的。
在这个阶段,也就知道了各种框架怎么用的,面对各种五花八门的业务,你都可以搭建出符合需求的系统出来:
Nginx的负载均衡;
SpringMVC的Web应用;
Dubbo/Spring Cloud的微服务框架;
Redis的分布式缓存;
Kafka的分布式队列;
CDN的静态内容分发;
TFS的分布式文件存储;
阶段3: 基础架构与中间件的原理
到了这个阶段,就需要的不光是用,而是对原理的深刻理解,有必要的看看源码。
用Redis Cluster,知道有哪些关键特性,这些特性的原理有好的理解;
用Kafka,知道Kafka为什么快,为什么高可用,其实现原理是什么。
用Dubbo,知道网络IO怎么玩的,服务注册怎么搞的,动态代理用来干嘛。
对于做偏业务架构的人来说,这个阶段,只要原理很清楚就可以;
但如果就是做基础架构,那就不是光原理清楚了,而是要精通,对源代码很熟。
阶段4: 高并发 & 高可用 & 稳定性 & 一致性(高性能架构大纲)
到了这个阶段,可以说“术”这个层面已经很成熟,接下来就是要修“道”了。
我所说的“道”,就是指解决问题的方法论,成体系的方法,可以让上面这些武器、招式,在你的手上流畅发挥,让你面对任何问题的时候,都能从容应对。
第1种道:C端的大型系统,能够出完善的技术设计方案,在高并发、高可用、稳定性、一致性方面,都有很好的考虑。
阶段5: 业务建模、业务架构
第2种道:B端的大型业务系统。
C端的东西,用户访问量很大,但业务逻辑相对简单。
而B端的系统,往往流程很长,功能模块狂多,开发团队人数多,流程与流程之间还各种耦合。在这种情况下,如果不能站在技术上面,更抽象的看整个系统,会面临失控的局面。到最后,就是没有人能说清楚这个系统到底干了多少事情。
所以,在这个阶段,需要能对整个业务做一个逻辑上的架构,这个逻辑架构最终会达到下面几个目的:
(1)整个系统具有很有的复用性、扩展性,不拖业务后腿
(2)团队人员,可以依据这个架构进行分工,高效协作
(3)更高级的,有前瞻性的,不仅不拖业务后腿,反而给了业务发挥空间。
阶段6:团队与领导力(团队协作开发指导思维大纲)
这个阶段,就不光是技术的问题了。团队管理能力、综合素质、行业机遇、公司机遇、耐心。。种种因素的综合,让你可以带领1个很大的团队,做一个完整的业务,然后带更大的团队,做更大的业务。
欢迎工作一到五年的Java工程师朋友们加入Java架构交流群:909723834
群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)
合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!
网友评论