怎样才能快速成为一名架构师?

5,966 阅读6分钟

本文由博学谷狂野架构师团队编写,使用请标明出处。

有个程序员朋友,现在从业2年了,向我咨询怎么才能成为一名架构师。

想必很多其他朋友也很关心这个问题,如何学习才能快速成为架构师,今天就给大家分享一下我的观点。

提升技术沉淀,打好底子是关键

1、先开阔视野,具备行业里各个解决方案上的浅层次认知,知道解决什么场景需要什么技术。

Tips:这里不需要了解太多的技术细节。你需要的是对业界领域里可用的技术方案做一个索引,遇到合适的场景时能想到它。

2.、根据你所看重或者从事的行业、场景,选定要深入使用的几门技术点。

Tips:深入学习这些选定技术的特性,各种高级应用和配置,学习它底层的原理,出现问题时能快速找到症结所在,功能不满足时便于未来二次开发或自己定制。

学习路线图省时省力

k.jpg 关注黑马架构师公众号可免费领取精美清晰学习路线图

接合业界多名架构师的成长经历,阶段式训练才是最合理的捷径

0、 需要具备的基础:

  • 熟悉Java开发语言,对Java语法、Java基础能够熟练使用
  • 熟悉Java Web开发,对常用Spring Boot等Web开发框架有使用经验
  • 对分布式系统、Dubbo,Spring Cloud等微服务体系有所了解
  • 了解常用的缓存、消息队列、搜索引擎、NoSQL等中间件
  • 具备2-3年Java相关经验,想要进一步深入学习,达到架构师水平的同学

1、 起步阶段 - 从日常开发下探

做事情要由浅入深,不能一口吃个胖子,从日常最熟悉的内容出发……

必要性

  • 打开全局视角,从软件系统四个层面的发展历史来看架构体系的演进
  • 小试牛刀,从日常开发中最熟悉的内容下手,柿子捡软的捏
  • 初步下探,从简单使用层面开始探究底层的原理

阶段目标

  • 从业务、数据、应用、部署四个层面理解软件架构体系的演进过程
  • 初步脱离开发视角,站在全局角度来审视软件体系
  • 从日常用的开发框架、分布式体系的应用层面转向探究原理和自主设计
  • 具备一定前瞻性,了解云原生与下一代微服务

内容详解

  • 从单体业务到中台业务系统演进
  • 数据存储层的发展
  • 应用开发和项目架构的演进
  • 从人肉运维到容器化自动化运维的发展
  • 从Dubbo看经典RPC设计原理、如何手写一套RPC
  • Netty - 网络通讯的必选方案
  • Spring Cloud体系及Spring Cloud Alibaba微服务时代
  • Service Mesh,微服务2.0

2、架构师进阶 - 从应用到掌握原理

开始进入快速充电阶段,从基本的用,到掌握原理,彻底掌控并用得好……

必要性

  • 开发框架的背后将是大量必须掌握的中间件、存储层、部署层
  • 架构师要挖掘各层的原理,从会使用到用的好
  • 工欲善其事必先利其器,必备工具是提升效率的法宝

阶段目标

  • 掌握各层中间件的高阶使用和设计原理,能达到完全掌控的水平
  • 熟练掌握各种各样的存储系统,并了解存储设计的细节
  • 掌握容器化和底层的基础设施
  • 熟练使用各种工具,任何时候都可以拿来就用

内容详解

  • 业界著名的三大消息队列:Kafka、RabbitMQ、RocketMQ
  • 关系型数据库MySQL的扩容实战
  • 各种各样的存储:缓存Redis、NoSQL MongoDB、搜索ES、NewSQL TiDB、文件存储FastDFS

3、架构师深入 - 探究底层关注性能

具备日常技术的掌控力,架构师要具备精益求精魄力,深挖源码并追求极致的性能压榨……

必要性

  • 架构师需要透过源码看透上层运行的本质
  • 经典源码中蕴藏着大师的智慧
  • 常见的调优环节是架构师必须掌控并不断探索的
  • 架构师必须理解并掌握常见算法和数据结构,具备解决通用问题的思维和视角

阶段目标

  • 掌握日常所用的框架、容器、JDK等各种核心源码及其编程思想
  • 掌握代码、数据库等常见层面的性能优化手段
  • 掌握常见的算法和数据结构

内容详解

  • Tomcat源码 - 熟到不能再熟的web容器
  • Spring源码 - 公认的业界标杆
  • Spring Boot源码 - 新时代的宠儿
  • MyBatis源码 - 经典的持久层框架
  • JDK源码 - 学了多年的Java还有那么多秘密
  • 多线程、JVM内核调优
  • 超高性能的内存队列,设计超出你的想象
  • MySQL数据库调优
  • 各种各样的算法与数据结构

4、升华 - 思索并改造这个软件世界

架构之路漫长而修远,吾将上下而求索。架构的本质是思考并改造这个软件世界,让开发变得更便捷……

必要性

  • 架构师必须要有独立思索的能力,形成自己对软件行业的世界观,并确保理念的前瞻性
  • 架构师要具备业界通用场景下的一系列解决方案

阶段目标

  • 掌握基本的软件设计与理念、对前面的内容具备选型能力
  • 理解并遵守软件设计的某些规范与规则
  • 具备各种上层应用级别的算法思想,和这些思想下解决问题的思路
  • 了解软件管理之道
  • 掌握业界通用的一系列解决方案

内容详解

  • 编码必须遵守的代码规范,架构师日常Review必备手册
  • 设计模式,软件设计思想的精华
  • UML,架构师设计语言的表达
  • 应用级别的算法思想汇总
  • 从敏捷看项目和软件团队的管理
  • 10+业界通用场景的设计思路和架构方案

5、学无止境 - 学的越多越渺小

学无止境,深度决定了你的现在,广度决定了你的将来……

必要性

  • 架构师的世界永不止步
  • 除了深度,必须具备行业内宽广的视野
  • 对未来的技术发展动向要有前瞻性

阶段目标

  • 了解相关行业的内容
  • 了解未来软件的技术动态

内容详解

  • 人工智能领域
  • 数据挖掘领域
  • 机器学习领域
  • 区块链……