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