凡事預(yù)則立,在開始行動(dòng)之前,我們有必要先來了解下這個(gè)崗位的核心要求,以及必知必會(huì)的技術(shù)能力,只有目標(biāo)清晰、方向明確,才能事半功倍。
大綱:
架構(gòu)師崗位職責(zé)
架構(gòu)師必知必會(huì)技術(shù)
架構(gòu)師學(xué)習(xí)資料包【福利】
資料包內(nèi)容:【BAT架構(gòu)專題合集超500期】+【最新架構(gòu)師130題】+【架構(gòu)師技能圖譜全套】
曾有人這樣形容架構(gòu)師的重要性:架構(gòu)師的工作就像是他打造一棵樹的主干和枝干,然后程序員們讓這棵樹上長(zhǎng)出樹葉和果實(shí)。
架構(gòu)師,是一個(gè)既需要掌控整體又要洞悉局部瓶頸,并依據(jù)具體的業(yè)務(wù)場(chǎng)景給出解決方案的團(tuán)隊(duì)領(lǐng)導(dǎo)型人物,他需要參與項(xiàng)目開發(fā)的全部過程,包括需求分析、架構(gòu)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)、集成、測(cè)試和部署各個(gè)階段,負(fù)責(zé)在整個(gè)項(xiàng)目中對(duì)技術(shù)活動(dòng)和技術(shù)說明進(jìn)行指導(dǎo)和協(xié)調(diào)。
架構(gòu)師職責(zé)簡(jiǎn)單來說有三點(diǎn):
1、確認(rèn)需求與拆分系統(tǒng)
在項(xiàng)目開發(fā)過程中,架構(gòu)師需要依據(jù)用戶需求,將完整的系統(tǒng)拆分為子系統(tǒng)和組件,形成不同的邏輯層或服務(wù),確定各層的接口、層與層相互之間的關(guān)系,對(duì)整個(gè)系統(tǒng)分層進(jìn)行“縱向”分解,對(duì)同一邏輯層分塊進(jìn)行“橫向”分解。
2、技術(shù)選型
通過對(duì)系統(tǒng)的一系列的分解,最終形成了軟件的整體架構(gòu),依據(jù)整體架構(gòu)需要進(jìn)行技術(shù)選型。
3、制作技術(shù)規(guī)格說明
在整個(gè)研發(fā)過程中始終保持與開發(fā)人員保持溝通,以保證開發(fā)者依照原定的架構(gòu)意圖去實(shí)現(xiàn)各項(xiàng)功能。
1、架構(gòu)師能力圖譜
架構(gòu)師的技術(shù)實(shí)力要強(qiáng),具備技術(shù)廣度,同時(shí),還要注重其它軟實(shí)力,譬如抽象能力、應(yīng)急能力、管理能力、溝通能力、技術(shù)實(shí)力等。
2、架構(gòu)師必知必會(huì)技術(shù)
架構(gòu)師除了能擼一手高質(zhì)量代碼,至少精通1-2門技術(shù),還要具備足夠的技術(shù)廣度,從軟件到硬件、開發(fā)到測(cè)試、運(yùn)維到安全等等,都要面面俱到去了解掌握。當(dāng)然了,人的精力是有限的,我們不可能做到每個(gè)領(lǐng)域都去深入,但至少需要知道其概念、運(yùn)行原理、如何運(yùn)用等。
架構(gòu)師必知必會(huì)技術(shù)范圍大致如下:
1) 集合框架(源碼)
List
ArrayList
LinkedList
Set:HashSet、TreeSet
Map:TreeMap、ConcurrentHashMap
Collection的synchronized等方法
2)、工具類
Google guava(推薦)
Apache common lang/BeanUtils/Collctions/IO
JSON
fastjson
gson
jackson
3) 框架
Spring:IOC、AOP、常用注解
SpringMVC
Mybatis
Shiro
Netty
4) 安全
單項(xiàng)散列算法:MD5、SHA
對(duì)稱加密:DES
非對(duì)稱加密:RSA、HTTPS
5) JVM
Java虛擬機(jī)(Hotspot實(shí)現(xiàn))
類加載機(jī)制
內(nèi)存模型
GC:回收算法、垃圾收集器
調(diào)優(yōu)
工具:jstack、jmap、jconsole
6) 并發(fā)編程
Executor框架
Fork/join
happen-before
數(shù)據(jù)結(jié)構(gòu):ConcurrentHashMap
線程池:參數(shù)設(shè)置、原理、拒絕策略
線程狀態(tài)
Lock/synchronized
原子操作類
并發(fā)工具類:CountDownLatch、Semaphore、CyclicBarrier、Exchanger
IO、BIO、AIO、NIO
7) 數(shù)據(jù)
NoSQL:MongoDB
分布式緩存:Memcached、Redis(推薦)
關(guān)系數(shù)據(jù)庫
MySQL
引擎
InnoDB(支持事務(wù))
分庫分表
Cobar
Mycat
8) SQL優(yōu)化
索引
主鍵索引
組合索引
explain
存儲(chǔ)過程
SQL注入:使用#而不使用$
9) 事務(wù)隔離級(jí)別(ACID)
原子性
一致性
隔離性
持久性
10) 鎖
表鎖
行鎖
悲觀鎖
11) 大數(shù)據(jù)
Hadoop
Hbase
Spark
Storm/JStorm
12) 算法與數(shù)據(jù)結(jié)構(gòu)
數(shù)組
鏈表
棧
隊(duì)列
樹
二叉樹
B Tree/B+ Tree
紅黑樹
哈希
13) 分布式系統(tǒng)
從集中到分布式
分布式Session:Session復(fù)制、Session綁定、Session服務(wù)器(靠譜)
分布式緩存:Redis、一致性Hash算法
數(shù)據(jù)庫:讀寫分離、主從熱備、分庫分表、一致性
分布式事務(wù)、CAP、BASE、2PC/3PC
分布式鎖
Redisson
負(fù)載均衡、硬件、F5、軟件、LVS、Nginx
消息隊(duì)列:RabbitMQ、ZeroMQ、ActiveMQ、Kafka(推薦)
服務(wù)化:服務(wù)注冊(cè)與發(fā)現(xiàn)、Zookeeper
架構(gòu)
微服務(wù)
Spring Boot
Dubbo
RPC
SOA
虛擬化
Docker
聯(lián)系客服