從普通開發(fā)晉升到架構(gòu)師,不僅是薪資、技術(shù)能力的提升,更是個人發(fā)展最重要的一環(huán)。而怎么快速成為一名架構(gòu)師,也就成為大家最關(guān)心的問題。
提升技術(shù)沉淀,打好底子是關(guān)鍵
1?? 先開闊視野,具備行業(yè)里各個解決方案上的淺層次認(rèn)知,知道解決什么場景需要什么技術(shù)。
Tips:這里不需要了解太多的技術(shù)細(xì)節(jié)。你需要的是對業(yè)界領(lǐng)域里可用的技術(shù)方案做一個索引,遇到合適的場景時能想到它。
2?? 根據(jù)你所看重或者從事的行業(yè)、場景,選定要深入使用的幾門技術(shù)點(diǎn)。
Tips:深入學(xué)習(xí)這些選定技術(shù)的特性,各種高級應(yīng)用和配置,學(xué)習(xí)它底層的原理,出現(xiàn)問題時能快速找到癥結(jié)所在,功能不滿足時便于未來二次開發(fā)或自己定制。
結(jié)合業(yè)界多名架構(gòu)師的成長經(jīng)歷,其實,階段式訓(xùn)練才是最合理的捷徑。
【需要具備的基礎(chǔ)】
熟悉Java開發(fā)語言,對Java語法、Java基礎(chǔ)能夠熟練使用
熟悉Java Web開發(fā),對常用Spring Boot等Web開發(fā)框架有使用經(jīng)驗
對分布式系統(tǒng)、Dubbo,Spring Cloud等微服務(wù)體系有所了解
了解常用的緩存、消息隊列、搜索引擎、NoSQL等中間件
具備2-3年Java相關(guān)經(jīng)驗,想要進(jìn)一步深入學(xué)習(xí),達(dá)到架構(gòu)師水平的同學(xué)
【 起步階段 - 從日常開發(fā)下探】
做事情要由淺入深,不能一口吃個胖子,從日常最熟悉的內(nèi)容出發(fā)……
必要性:
打開全局視角,從軟件系統(tǒng)四個層面的發(fā)展歷史來看架構(gòu)體系的演進(jìn)
小試牛刀,從日常開發(fā)中最熟悉的內(nèi)容下手,柿子撿軟的捏
初步下探,從簡單使用層面開始探究底層的原理
階段目標(biāo):
從業(yè)務(wù)、數(shù)據(jù)、應(yīng)用、部署四個層面理解軟件架構(gòu)體系的演進(jìn)過程
初步脫離開發(fā)視角,站在全局角度來審視軟件體系
從日常用的開發(fā)框架、分布式體系的應(yīng)用層面轉(zhuǎn)向探究原理和自主設(shè)計
具備一定前瞻性,了解云原生與下一代微服務(wù)
內(nèi)容詳解:
從單體業(yè)務(wù)到中臺業(yè)務(wù)系統(tǒng)演進(jìn)
數(shù)據(jù)存儲層的發(fā)展
應(yīng)用開發(fā)和項目架構(gòu)的演進(jìn)
從人肉運(yùn)維到容器化自動化運(yùn)維的發(fā)展
從Dubbo看經(jīng)典RPC設(shè)計原理、如何手寫一套RPC
Netty - 網(wǎng)絡(luò)通訊的必選方案
Spring Cloud體系及Spring Cloud Alibaba微服務(wù)時代
Service Mesh,微服務(wù)2.0
【架構(gòu)師進(jìn)階 - 從應(yīng)用到掌握原理】
開始進(jìn)入快速充電階段,從基本的用,到掌握原理,徹底掌控并用得好……
必要性:
開發(fā)框架的背后將是大量必須掌握的中間件、存儲層、部署層
架構(gòu)師要挖掘各層的原理,從會使用到用的好
工欲善其事必先利其器,必備工具是提升效率的法寶
階段目標(biāo):
掌握各層中間件的高階使用和設(shè)計原理,能達(dá)到完全掌控的水平
熟練掌握各種各樣的存儲系統(tǒng),并了解存儲設(shè)計的細(xì)節(jié)
掌握容器化和底層的基礎(chǔ)設(shè)施
熟練使用各種工具,任何時候都可以拿來就用
內(nèi)容詳解:
業(yè)界著名的三大消息隊列:Kafka、RabbitMQ、RocketMQ
關(guān)系型數(shù)據(jù)庫MySQL的擴(kuò)容實戰(zhàn)
各種各樣的存儲:緩存Redis、NoSQL MongoDB、搜索ES、NewSQL TiDB、文件存儲FastDFS
【架構(gòu)師深入 - 探究底層關(guān)注性能】
具備日常技術(shù)的掌控力,架構(gòu)師要具備精益求精魄力,深挖源碼并追求極致的性能壓榨……
必要性:
架構(gòu)師需要透過源碼看透上層運(yùn)行的本質(zhì)
經(jīng)典源碼中蘊(yùn)藏著大師的智慧
常見的調(diào)優(yōu)環(huán)節(jié)是架構(gòu)師必須掌控并不斷探索的
架構(gòu)師必須理解并掌握常見算法和數(shù)據(jù)結(jié)構(gòu),具備解決通用問題的思維和視角
階段目標(biāo):
掌握日常所用的框架、容器、JDK等各種核心源碼及其編程思想
掌握代碼、數(shù)據(jù)庫等常見層面的性能優(yōu)化手段
掌握常見的算法和數(shù)據(jù)結(jié)構(gòu)
內(nèi)容詳解:
Tomcat源碼 - 熟到不能再熟的web容器
Spring源碼 - 公認(rèn)的業(yè)界標(biāo)桿
Spring Boot源碼 - 新時代的寵兒
MyBatis源碼 - 經(jīng)典的持久層框架
JDK源碼 - 學(xué)了多年的Java還有那么多秘密
多線程、JVM內(nèi)核調(diào)優(yōu)
超高性能的內(nèi)存隊列,設(shè)計超出你的想象
MySQL數(shù)據(jù)庫調(diào)優(yōu)
各種各樣的算法與數(shù)據(jù)結(jié)構(gòu)
【升華 - 思索并改造這個軟件世界】
架構(gòu)之路漫長而修遠(yuǎn),吾將上下而求索。架構(gòu)的本質(zhì)是思考并改造這個軟件世界,讓開發(fā)變得更便捷……
必要性:
架構(gòu)師必須要有獨(dú)立思索的能力,形成自己對軟件行業(yè)的世界觀,并確保理念的前瞻性
架構(gòu)師要具備業(yè)界通用場景下的一系列解決方案
階段目標(biāo):
掌握基本的軟件設(shè)計與理念、對前面的內(nèi)容具備選型能力
理解并遵守軟件設(shè)計的某些規(guī)范與規(guī)則
具備各種上層應(yīng)用級別的算法思想,和這些思想下解決問題的思路
了解軟件管理之道
掌握業(yè)界通用的一系列解決方案
內(nèi)容詳解:
編碼必須遵守的代碼規(guī)范,架構(gòu)師日常Review必備手冊
設(shè)計模式,軟件設(shè)計思想的精華
UML,架構(gòu)師設(shè)計語言的表達(dá)
應(yīng)用級別的算法思想?yún)R總
從敏捷看項目和軟件團(tuán)隊的管理
【學(xué)無止境 - 學(xué)的越多越渺小】
學(xué)無止境,深度決定了你的現(xiàn)在,廣度決定了你的將來……
必要性:
架構(gòu)師的世界永不止步
除了深度,必須具備行業(yè)內(nèi)寬廣的視野
對未來的技術(shù)發(fā)展動向要有前瞻性
階段目標(biāo):
了解相關(guān)行業(yè)的內(nèi)容
了解未來軟件的技術(shù)動態(tài)
內(nèi)容詳解:
人工智能領(lǐng)域
數(shù)據(jù)挖掘領(lǐng)域
機(jī)器學(xué)習(xí)領(lǐng)域
區(qū)塊鏈……
|