从普通开发晋升到架构师,不仅是薪资、技术能力的提升,更是个人发展最重要的一环。而怎么快速成为一名架构师,也就成为大家最关心的问题。
提升技术沉淀,打好底子是关键
1️⃣ 先开阔视野,具备行业里各个解决方案上的浅层次认知,知道解决什么场景需要什么技术。
Tips:这里不需要了解太多的技术细节。你需要的是对业界领域里可用的技术方案做一个索引,遇到合适的场景时能想到它。
2️⃣ 根据你所看重或者从事的行业、场景,选定要深入使用的几门技术点。
Tips:深入学习这些选定技术的特性,各种高级应用和配置,学习它底层的原理,出现问题时能快速找到症结所在,功能不满足时便于未来二次开发或自己定制。
结合业界多名架构师的成长经历,其实,阶段式训练才是最合理的捷径。
【需要具备的基础】
熟悉Java开发语言,对Java语法、Java基础能够熟练使用
熟悉Java Web开发,对常用Spring Boot等Web开发框架有使用经验
对分布式系统、Dubbo,Spring Cloud等微服务体系有所了解
了解常用的缓存、消息队列、搜索引擎、NoSQL等中间件
具备2-3年Java相关经验,想要进一步深入学习,达到架构师水平的同学
【 起步阶段 - 从日常开发下探】
做事情要由浅入深,不能一口吃个胖子,从日常最熟悉的内容出发……
必要性:
打开全局视角,从软件系统四个层面的发展历史来看架构体系的演进
小试牛刀,从日常开发中最熟悉的内容下手,柿子捡软的捏
初步下探,从简单使用层面开始探究底层的原理
阶段目标:
从业务、数据、应用、部署四个层面理解软件架构体系的演进过程
初步脱离开发视角,站在全局角度来审视软件体系
从日常用的开发框架、分布式体系的应用层面转向探究原理和自主设计
具备一定前瞻性,了解云原生与下一代微服务
内容详解:
从单体业务到中台业务系统演进
数据存储层的发展
应用开发和项目架构的演进
从人肉运维到容器化自动化运维的发展
从Dubbo看经典RPC设计原理、如何手写一套RPC
Netty - 网络通讯的必选方案
Spring Cloud体系及Spring Cloud Alibaba微服务时代
Service Mesh,微服务2.0
【架构师进阶 - 从应用到掌握原理】
开始进入快速充电阶段,从基本的用,到掌握原理,彻底掌控并用得好……
必要性:
开发框架的背后将是大量必须掌握的中间件、存储层、部署层
架构师要挖掘各层的原理,从会使用到用的好
工欲善其事必先利其器,必备工具是提升效率的法宝
阶段目标:
掌握各层中间件的高阶使用和设计原理,能达到完全掌控的水平
熟练掌握各种各样的存储系统,并了解存储设计的细节
掌握容器化和底层的基础设施
熟练使用各种工具,任何时候都可以拿来就用
内容详解:
业界著名的三大消息队列:Kafka、RabbitMQ、RocketMQ
关系型数据库MySQL的扩容实战
各种各样的存储:缓存Redis、NoSQL MongoDB、搜索ES、NewSQL TiDB、文件存储FastDFS
【架构师深入 - 探究底层关注性能】
具备日常技术的掌控力,架构师要具备精益求精魄力,深挖源码并追求极致的性能压榨……
必要性:
架构师需要透过源码看透上层运行的本质
经典源码中蕴藏着大师的智慧
常见的调优环节是架构师必须掌控并不断探索的
架构师必须理解并掌握常见算法和数据结构,具备解决通用问题的思维和视角
阶段目标:
掌握日常所用的框架、容器、JDK等各种核心源码及其编程思想
掌握代码、数据库等常见层面的性能优化手段
掌握常见的算法和数据结构
内容详解:
Tomcat源码 - 熟到不能再熟的web容器
Spring源码 - 公认的业界标杆
Spring Boot源码 - 新时代的宠儿
MyBatis源码 - 经典的持久层框架
JDK源码 - 学了多年的Java还有那么多秘密
多线程、JVM内核调优
超高性能的内存队列,设计超出你的想象
MySQL数据库调优
各种各样的算法与数据结构
【升华 - 思索并改造这个软件世界】
架构之路漫长而修远,吾将上下而求索。架构的本质是思考并改造这个软件世界,让开发变得更便捷……
必要性:
架构师必须要有独立思索的能力,形成自己对软件行业的世界观,并确保理念的前瞻性
架构师要具备业界通用场景下的一系列解决方案
阶段目标:
掌握基本的软件设计与理念、对前面的内容具备选型能力
理解并遵守软件设计的某些规范与规则
具备各种上层应用级别的算法思想,和这些思想下解决问题的思路
了解软件管理之道
掌握业界通用的一系列解决方案
内容详解:
编码必须遵守的代码规范,架构师日常Review必备手册
设计模式,软件设计思想的精华
UML,架构师设计语言的表达
应用级别的算法思想汇总
从敏捷看项目和软件团队的管理
【学无止境 - 学的越多越渺小】
学无止境,深度决定了你的现在,广度决定了你的将来……
必要性:
架构师的世界永不止步
除了深度,必须具备行业内宽广的视野
对未来的技术发展动向要有前瞻性
阶段目标:
了解相关行业的内容
了解未来软件的技术动态
内容详解:
人工智能领域
数据挖掘领域
机器学习领域
区块链……
|