很多同学想成为一名架构师,但是对于其中的技能掌握程度,以及编程功底的要求?设计能力的要求有哪些?
我简要从以下7点经验来谈,从技能的角度抛砖引玉。
编程基本功:数据结构和算法
1.数据结构相关的哈希表、链表、二叉树等等
2.常见的算法有哪些?至少下图的算法我认为应该要掌握。
比如:HashMap如何扩容,重点就是考底层数据结构。
编程基本功:Java编程
这些都算是编程基本功底:多线程、JVM、并发容器、并发类、NIO等。
Web开发
其实web开发这个领域,如果你要掌握好了,发展也非常不错的。
比如:现在的H5、小程序等,对于掌握前端技术的开发人员,竞争力也是杠杠的。
当然作为后端开发人员,多掌握点前端的技术,那也是必须的。
数据库
重点就看图了,这里涉及的技术还是蛮多的,mysql、oracle、nosql相关的mongodb,以及如今大家都熟知的分库分表、读写分离等技术。
这些都是大家熟知的,我补充点设计相关的:数据库设计范式、索引、事务、数据库相关的慢查询、长事务。
这些也算是数据库技术的编程功底。
研发相关的框架工具
Java程序员对于下图应该都是比较熟悉的,这些框架与工具都是经常使用。
架构设计
谈到设计,就不得不提到项目中的概要设计和详细设计,这就会涉及到UML。
除此之外,整个项目的设计,这个时候考验你的架构设计能力。
这里的架构设计,包含的系列非常多,特别是Redis、应用程序拆分、拆分后涉及到的RPC微服务等技术,以及后端数据库的拆分技术,以及拆分后的分布式集群部署。
分布式会涉及到:分布式锁、全局唯一ID的生成、分布式Session…这里还有蛮多的,其实大部分我都分享过了
阿里P8架构师谈:分布式锁的3种实现(数据库、缓存、Zookeeper)
高并发架构系列:分布式锁的由来、特点、及Redis分布式锁的实现详解
阿里P8架构师谈:分布式Session共享的4类技术方案,与优劣势比较。
阿里P8架构师谈:分布式系统全局唯一ID简介、特点、5种生成方式
…等等
更多的分布式架构设计
关注优知学院微信公众号(id:youzhixueyuan),回复【架构】即可学习。