你聽著XX是阿里騰訊首席架構(gòu)師,是不是覺得很牛?
其實(shí),據(jù)我所知,目前來說,能成為架構(gòu)師的,要么就是技術(shù)實(shí)力過硬,要么就是跟對(duì)了老板,你看阿里云的王X博士,就屬于后者,當(dāng)然,前提是自身實(shí)力不能差。
一般來說,你不要急,你才進(jìn)這個(gè)行業(yè)3-5年,就想成為架構(gòu)師,是不是太快了?
架構(gòu)師的工作就像是他打造一棵樹的主干和枝干,第二讓別人在這棵樹上長出樹葉和果實(shí)。
一個(gè)公司,一個(gè)項(xiàng)目能不能成功,架構(gòu)師占了很多,畢竟現(xiàn)在很多公司都號(hào)稱是技術(shù)驅(qū)動(dòng),對(duì)吧。
架構(gòu)師的職責(zé)都有哪些?
成為一名架構(gòu)師,需要什么樣的能力?
別覺得這些假大空,自己去對(duì)標(biāo)能力組成,把標(biāo)準(zhǔn)調(diào)到最高,你就知道自己差什么了。
架構(gòu)上最大的困難是什么?
如果覺得這些對(duì)你沒價(jià)值,還是老老實(shí)實(shí)做好本職工作吧。
有以下幾個(gè)出路:
1. 做管理人員 40歲以后的程序員,到了中年大家都不愿意每天被上司管著,這個(gè)年紀(jì)的程序員會(huì)有一部分選擇去做管理,畢竟在這個(gè)行業(yè)已經(jīng)摸爬滾打了幾十年。
2. 自己創(chuàng)業(yè) 40歲已經(jīng)到了中年,如果實(shí)在不在繼續(xù)從事程序員行業(yè),可以轉(zhuǎn)行,很多程序員在年輕時(shí)攢了很多工資,善于理財(cái)?shù)母鞘斋@了很多
3. 做工程師 有人說“科技變化太迅速,工程師可能跟不上節(jié)奏”,這或許曾經(jīng)是事實(shí),但建立網(wǎng)絡(luò)所需要的核心技術(shù)已經(jīng)存在了數(shù)十年
第一要知道架構(gòu)師是什么? 系統(tǒng)架構(gòu)師是一個(gè)既需要掌控整體又需要洞悉局部瓶頸并依據(jù)具體的業(yè)務(wù)場景給出解決方案的團(tuán)隊(duì)領(lǐng)導(dǎo)型人物。
所以,不是說學(xué)歷高低。而是經(jīng)驗(yàn)好不好。但是一般能當(dāng)架構(gòu)師的,學(xué)歷也是高的。這是一個(gè)相輔相成的。
從程序員到架構(gòu)師需要多久,這個(gè)時(shí)間的長短沒有定論,可能很快,也可永遠(yuǎn)無法達(dá)到。
架構(gòu)師是什么,先找找定義:
系統(tǒng)架構(gòu)師是一個(gè)最終確認(rèn)和評(píng)估系統(tǒng)需求,給出開發(fā)規(guī)范,搭建系統(tǒng)實(shí)現(xiàn)的核心構(gòu)架,并澄清技術(shù)細(xì)節(jié)、掃清主要難點(diǎn)的技術(shù)人員。
可以看出來,架構(gòu)師也是一名側(cè)重技術(shù)的崗位,但也需要懂需求和管理。
把控需求
大多數(shù)時(shí)候,架構(gòu)師需要從需求階段就介入的,架構(gòu)需要和需求人員溝通需求,保證自己可以完整的理解和把握客戶需求。
架構(gòu)設(shè)計(jì)、技術(shù)選型
如果是一個(gè)新的項(xiàng)目,架構(gòu)師需要對(duì)項(xiàng)目進(jìn)行分解,形成項(xiàng)目架構(gòu),在此基礎(chǔ)之上再完成技術(shù)選型。
例如,根據(jù)項(xiàng)目的需求,要把整個(gè)系統(tǒng)分解成多個(gè)子系統(tǒng):一個(gè)對(duì)外提供接口調(diào)用,一個(gè)跑定時(shí)服務(wù),還有一個(gè)專門**MQ獲取消息并進(jìn)行處理;數(shù)據(jù)庫用Mysql而不是Oracle,定時(shí)服務(wù)需要要用到zk或者Redis做分布式鎖,對(duì)外的接口是Rest而不是WebService,這些都需要架構(gòu)師來確定。
如果是一個(gè)老項(xiàng)目,架構(gòu)師同樣需要這次的需求做在什么地方,是在現(xiàn)有技術(shù)上就能實(shí)現(xiàn),還是需要引入新的技術(shù)。
制定規(guī)范、把握方向、踩坑填坑
架構(gòu)師是要跟隨項(xiàng)目的整個(gè)流程,架構(gòu)師就是項(xiàng)目的技術(shù)權(quán)威,他應(yīng)該時(shí)刻與開發(fā)人員進(jìn)行溝通,讓開發(fā)人員理解架構(gòu)意圖,實(shí)現(xiàn)業(yè)務(wù)功能。
架構(gòu)師不是一個(gè)指揮者,有一些技術(shù)難點(diǎn),都需要架構(gòu)師沖在前面解決。而不是當(dāng)項(xiàng)目遇到一個(gè)“坑”時(shí),架構(gòu)師是要“真刀真槍”的寫代碼的。
要想成為一名架構(gòu)師,需要哪些品質(zhì)呢?
技術(shù)深度和廣度:這一點(diǎn)不用多說了吧,架構(gòu)師的技術(shù)儲(chǔ)備一定要豐富,也就是見多識(shí)廣。想象一下如果一個(gè)架構(gòu)師連memcached、redis都沒聽說過(哈哈,說的就是五年前的我自己)。
抽象思維:這是進(jìn)行系統(tǒng)分析和需求分解的基本素質(zhì),具備抽象思維的能力,才能把一個(gè)大的需求,分解成一個(gè)一個(gè)小的功能,但是分解后依然可以掌控全局。
溝通能力:和需求人員溝通,和業(yè)務(wù)人員溝通,和項(xiàng)目成員溝通…
領(lǐng)導(dǎo)能力:推動(dòng)整個(gè)項(xiàng)目的發(fā)展,需要架構(gòu)師的領(lǐng)導(dǎo)能力,這里說的領(lǐng)導(dǎo)力和項(xiàng)目經(jīng)理所需的領(lǐng)導(dǎo)力還不太一樣,想象一下如果有一個(gè)只會(huì)寫PPT的架構(gòu)師,做出來的架構(gòu)設(shè)計(jì)不切實(shí)際,那么怎么可能讓開發(fā)人員信服。這里的領(lǐng)導(dǎo)能力,更多的是指技術(shù)能力的影響,甚至是個(gè)人魅力,也就是【可以服眾】,讓開發(fā)人員心里想:“這個(gè)架構(gòu)這牛,跟著他我學(xué)到了很多東西,我服”。
當(dāng)你具備了這些素質(zhì)的時(shí)候,相信你就有能力成為一名架構(gòu)師了。
希望我的回答,能夠幫助到你!
我會(huì)持續(xù)分享Java程序開發(fā)、架構(gòu)設(shè)計(jì)、職業(yè)發(fā)展等方面的知識(shí)和見解,希望能得到你的關(guān)注【會(huì)點(diǎn)代碼的大叔】。
]]>