從程序員到架構(gòu)師需要多久?
從程序員到架構(gòu)師需要多久,這個(gè)時(shí)間的長(zhǎng)短沒(méi)有定論,可能很快,也可永遠(yuǎn)無(wú)法達(dá)到。
架構(gòu)師是什么,先找找定義:
系統(tǒng)架構(gòu)師是一個(gè)最終確認(rèn)和評(píng)估系統(tǒng)需求,給出開(kāi)發(fā)規(guī)范,搭建系統(tǒng)實(shí)現(xiàn)的核心構(gòu)架,并澄清技術(shù)細(xì)節(jié)、掃清主要難點(diǎn)的技術(shù)人員。可以看出來(lái),架構(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è)專門監(jiān)聽(tīng)MQ獲取消息并進(jìn)行處理;數(shù)據(jù)庫(kù)用Mysql而不是Oracle,定時(shí)服務(wù)需要要用到zk或者Redis做分布式鎖,對(duì)外的接口是Rest而不是WebService,這些都需要架構(gòu)師來(lái)確定。
如果是一個(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í)刻與開(kāi)發(fā)人員進(jìn)行溝通,讓開(kāi)發(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)不用多說(shuō)了吧,架構(gòu)師的技術(shù)儲(chǔ)備一定要豐富,也就是見(jiàn)多識(shí)廣。想象一下如果一個(gè)架構(gòu)師連memcached、redis都沒(méi)聽(tīng)說(shuō)過(guò)(哈哈,說(shuō)的就是五年前的我自己)。
抽象思維:這是進(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)能力,這里說(shuō)的領(lǐng)導(dǎo)力和項(xiàng)目經(jīng)理所需的領(lǐng)導(dǎo)力還不太一樣,想象一下如果有一個(gè)只會(huì)寫PPT的架構(gòu)師,做出來(lái)的架構(gòu)設(shè)計(jì)不切實(shí)際,那么怎么可能讓開(kāi)發(fā)人員信服。這里的領(lǐng)導(dǎo)能力,更多的是指技術(shù)能力的影響,甚至是個(gè)人魅力,也就是【可以服眾】,讓開(kāi)發(fā)人員心里想:“這個(gè)架構(gòu)這牛,跟著他我學(xué)到了很多東西,我服”。
當(dāng)你具備了這些素質(zhì)的時(shí)候,相信你就有能力成為一名架構(gòu)師了。
希望我的回答,能夠幫助到你!
我會(huì)持續(xù)分享Java程序開(kāi)發(fā)、架構(gòu)設(shè)計(jì)、職業(yè)發(fā)展等方面的知識(shí)和見(jiàn)解,希望能得到你的關(guān)注【會(huì)點(diǎn)代碼的大叔】。