一般來說是不需要的,但是肯定是要懂的。
理想情況下,架構(gòu)師需要創(chuàng)建一個技術(shù)愿景,通過該愿景我們可以獲得可維護(hù)又可靠的產(chǎn)品。架構(gòu)師需要協(xié)調(diào)不同的團(tuán)隊(duì),共同構(gòu)建一個相互依存的軟件生態(tài)系統(tǒng)。此外,他們還需要分享高層的集成決策,傳達(dá)應(yīng)用程序和組件之間協(xié)同工作的方式。除此之外,他們還需要根據(jù)常見的軟件問題審查并規(guī)定工具和框架,并通過向利益相關(guān)者和領(lǐng)導(dǎo)層傳達(dá)最終產(chǎn)品的目標(biāo)和愿景,將所有這些聯(lián)系在一起。
所以架構(gòu)師的工作聽起來很偉大。你可能想知道為什么我把如此之多的工作都推給了忙忙碌碌的架構(gòu)師。為了理解這一點(diǎn),讓我們來看看我剛描述的情況與現(xiàn)實(shí)生活的對比。
現(xiàn)實(shí)情況看起來因公司而異。事實(shí)上,有些公司確實(shí)讓他們的架構(gòu)師在履行其他所有職責(zé)的同時也擔(dān)負(fù)了編程的任務(wù)。但是這些公司不是這篇文章的討論對象。我想重點(diǎn)討論曾經(jīng)與我合作過的不參與編程工作的架構(gòu)師在公司里究竟做了哪些工作。
系統(tǒng)架構(gòu)設(shè)計師的能力有什么?
1、負(fù)責(zé)公司系統(tǒng)架構(gòu)的設(shè)計、研發(fā)工作
必須在某一特定領(lǐng)域有自己深刻的理解和實(shí)踐經(jīng)驗(yàn),比如在java領(lǐng)域,就應(yīng)該熟悉各種開源框架,并能在開源框架上開發(fā)各種系統(tǒng)功能,比如系統(tǒng)安全,與異構(gòu)系統(tǒng)通信協(xié)議、高并發(fā)下各種緩存、集群、分布式。架構(gòu)師應(yīng)該是在微觀上能解決各種系統(tǒng)異常的人,宏觀上能為公司的發(fā)展提供可匹配的架構(gòu)支持(架構(gòu)水平可擴(kuò)展)。
2、能夠制定技術(shù)規(guī)范,能夠?qū)﹂_發(fā)人員在技術(shù)上提供指導(dǎo)
所以架構(gòu)師必須在技術(shù)上有一定權(quán)威的人,必須是團(tuán)隊(duì)的技術(shù)核心人物,能夠根據(jù)最佳實(shí)踐制定技術(shù)規(guī)范,并要求技術(shù)人員按照規(guī)范實(shí)施。如果開發(fā)人員,尤其是新員工不能理解如何使用架構(gòu)進(jìn)行開發(fā)的時候,架構(gòu)師應(yīng)該組織對大家培訓(xùn),開發(fā)相應(yīng)的demo,交付大家使用,必要時,必須闡明架構(gòu)為什么這么設(shè)計的緣由。試想,如果在關(guān)鍵的技術(shù)決策的時候,沒人care你的想法,那么你真的具備架構(gòu)師的能力嗎。
3、組織大家完成技術(shù)攻關(guān),對核心的技術(shù)選型有自己見解,能識別系統(tǒng)風(fēng)險點(diǎn),也能識別系統(tǒng)的優(yōu)化點(diǎn)
在關(guān)鍵的技術(shù)難點(diǎn)需要攻關(guān)的時候,架構(gòu)師應(yīng)該沖在前頭。有經(jīng)驗(yàn)的架構(gòu)師,應(yīng)該在系統(tǒng)設(shè)計之初就應(yīng)該預(yù)想到可能的技術(shù)難題,并提前做技術(shù)研究。
所以架構(gòu)師必須知識面比較廣,能夠?qū)Σ煌募夹g(shù)選型有自己的判斷,并能對不同的技術(shù)組合做出權(quán)衡,識別各種技術(shù)選型與組合的風(fēng)險,對已經(jīng)運(yùn)行的系統(tǒng),應(yīng)該持續(xù)優(yōu)化,既能夠憑借自己的經(jīng)驗(yàn)識別系統(tǒng)的優(yōu)化點(diǎn),也善于運(yùn)用各種工具,定量化分析系統(tǒng)的性能瓶頸,并組織技術(shù)小伙伴一塊解決。
4、業(yè)務(wù)理解能力與一定的項(xiàng)目管理能力
上面說的三點(diǎn),想必立志成為架構(gòu)師的小伙伴都能明白。但是在技術(shù)上有追求的架構(gòu)師對業(yè)務(wù)、對項(xiàng)目管理天生有一定的排斥感,因?yàn)檫@兩樣都必須和人打交道,跟人打交道對架構(gòu)師來說效率低下(其實(shí),很多架構(gòu)師都偏內(nèi)向,不喜歡也不善于和人打交道),不如敲代碼那么酣暢淋漓。
所以,直覺上認(rèn)為,執(zhí)著于做一個架構(gòu)師是不需要以上兩方面的能力,把架構(gòu)做到極致、把技術(shù)做到極致就夠了。其實(shí),技術(shù)是服務(wù)于業(yè)務(wù)的,你的用戶只有兩千人,你做個能應(yīng)對兩千萬的人架構(gòu)那只能是浪費(fèi)資源。對業(yè)務(wù)的理解會有助于架構(gòu)師在更高層面上去理解架構(gòu),做出的架構(gòu)就比較適用,后期也能夠?qū)I(yè)務(wù)做到隨需應(yīng)變。
5、另外,架構(gòu)師在工作中,往往會主動或者被動參與些開發(fā)管理工作,比如工作任務(wù)分配和預(yù)估項(xiàng)目進(jìn)度,因?yàn)橥斫饧夹g(shù)人員專長的人是架構(gòu)師(或是技術(shù)經(jīng)理)、架構(gòu)師能把合適的技術(shù)任務(wù)分給合適的人?;蛘呒词共皇羌軜?gòu)師來分配任務(wù),一般項(xiàng)目經(jīng)理也會征求架構(gòu)師的意見。
比如開發(fā)了新的架構(gòu),需要給大家培訓(xùn)。比如系統(tǒng)要和其他部門系統(tǒng)通信、集成,需要跨部門的協(xié)作。各種各樣的場景會將架構(gòu)師卷入一些項(xiàng)目管理中,從一定職業(yè)生涯規(guī)范考慮,學(xué)習(xí)或者參與一定的項(xiàng)目管理,能從更宏觀的層面去看一個項(xiàng)目的發(fā)展,而不單單將自己局限在技術(shù)上去看問題。
當(dāng)然,架構(gòu)師還要求有很強(qiáng)的自學(xué)能力、分析能力、發(fā)現(xiàn)問題、解決問題的能力。在互聯(lián)網(wǎng)時代,還需要寫作、溝通、培訓(xùn)的能力。
以上就是小編的分享,希望可以幫助到大家。