更新時間:2022-07-14 來源:黑馬程序員 瀏覽量:
在互聯(lián)網(wǎng)開發(fā)領(lǐng)域,架構(gòu)師可以分為業(yè)務(wù)架構(gòu)師、中間件架構(gòu)師、系統(tǒng)架構(gòu)師。 根據(jù)不同的方向,在相關(guān)招聘平臺上,對于架構(gòu)師的崗位職責(zé)和任職要求各有不同。在招聘網(wǎng)站上可以看到真實的例子:
Java架構(gòu)師(點擊查看大圖)
中間件架構(gòu)師(點擊查看大圖)
系統(tǒng)架構(gòu)師(點擊查看大圖)
以上是三種不同架構(gòu)師的能力要求,雖然類型不同,技術(shù)要求側(cè)重不同,但是我告訴你,成為架構(gòu)師都要具備以下能力。
成為架構(gòu)師要掌握全面的技術(shù)棧,一切技術(shù)皆工具,包括開發(fā)語言、框架、各種中間件都是工具,要達(dá)到熟練使用,了解其原理和長短板,具備合適場景合理選型和靈活運用的能力。
比如要成為業(yè)務(wù)架構(gòu)師,那么必須掌握J(rèn)ava生態(tài)圈方方面面的技術(shù)。如何做到呢?首先需要把所有技術(shù)列出來,然后將自己現(xiàn)在所擁有的技術(shù)跟這個圖表做一個匹配,標(biāo)出里面哪些熟悉,哪些還有待提升,最后把有待提升的技術(shù)學(xué)會。
我們常說道與術(shù)的問題,架構(gòu)思維就是架構(gòu)師的“道”。
隨著工作時間的增長,會悟出一些道理,感受到一些規(guī)律性的東西,這些東西可能現(xiàn)在大家覺得有點虛,但是慢慢地大家會認(rèn)可。
(1)知行合一,做之前,先考慮意義 在做某件事之前,一定要知道自己的目的是什么。目的和做的事情兩者要合一,這是第一個層面。 第二個層面是清楚地知道你手里的資源允許你干什么事。比如說Spring Cloud,我很想去用,但是我的團隊hold不住,你強行把這個東西推下去之后,事情做的并不成功。結(jié)果還是需要你承擔(dān)責(zé)任。
(2)原生優(yōu)于定制,約定大于配置 如果你沒有特殊需求的話,官方的東西最好,保持原樣,除非它不滿足你的要求,你再去定制它。因為你改了之后,一旦發(fā)生問題,你很難摸清楚錯誤發(fā)生在什么地方。而如果官方的出現(xiàn)問題,整個社區(qū)都在給你撐著,你就能夠及時地把這東西補上去。
(3)什么都是,最后會淪落到什么都不是 這是我早期搞架構(gòu)的時候犯的一個錯誤。當(dāng)時我老想著做一套完整的系統(tǒng),無論你想做什么樣的業(yè)務(wù),拿來之后稍微一修改什么都能支撐,后來發(fā)現(xiàn)根本不是我想的那樣,它幾乎什么都不能支持。就像造汽車,偏舒適還是運動,兩者兼顧的沒有。
(4)控制技術(shù)欲,不要瞎折騰 看到新技術(shù)就想用到自己的系統(tǒng)中的,這不是一個好架構(gòu)師的行為。做架構(gòu)的前提是穩(wěn),這是底線,試錯一定在生產(chǎn)環(huán)境中。
(5)留下擴展,但不要想到100年后 當(dāng)代人做當(dāng)代人的事情,不要考慮那么久遠(yuǎn)。當(dāng)代留下的坑,只能留給后代補。
(6)沒有最好的,只有最合適的 跟第3條比較像,但第3條是廣度上,這一條是深度上,垂直領(lǐng)域不要總想做到最完美。
(7)夠用就好,玩的越花,風(fēng)險越大 比如有人玩 ++i++;finally(return);if(賦值) ,這都太花了,風(fēng)險很大。
(8)大巧不工,簡約最美 要把代碼寫的很簡約,很優(yōu)雅。
具備日常場景下的解決方案積累,舉幾個例子:
單點登錄
分布式事務(wù)及數(shù)據(jù)一致性
秒殺并發(fā)場景
復(fù)雜工作流
超高并發(fā)、吞吐量
你的思維和設(shè)計要落地,必須具備團隊層面推進(jìn)事情進(jìn)展的能力(尤其架構(gòu)團隊的leader)
人脈很重要,隨著職位的提升,段位的提升,需要一定的背書。
以上就是架構(gòu)師要具備的能力,其中技術(shù)掌控力可以很快通過學(xué)習(xí)來提升。方法就是羅列全面的技術(shù)棧,然后對號入座,找到自己的短板,最后逐個攻破。