更新時(shí)間:2019-09-20 13:52:00 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2721次
我認(rèn)為,架構(gòu)師的內(nèi)功主要包含三部分:判斷力、執(zhí)行力、創(chuàng)新力,簡單解釋如下:
判斷力:能夠準(zhǔn)確判斷系統(tǒng)的復(fù)雜度在哪里,就像武俠高手一樣,能準(zhǔn)確地看出對手的破綻和弱點(diǎn)。
執(zhí)行力:能夠使用合適的方案解決復(fù)雜度問題,就像武俠高手一樣,能選擇合適的招式或者方法打敗對手。
創(chuàng)新力:能夠創(chuàng)造新的解決方案解決復(fù)雜度問題,就像武俠世界里,小一些的創(chuàng)新是創(chuàng)新招式,而武學(xué)宗師能夠創(chuàng)立新的武學(xué)或者心法,例如張三豐創(chuàng)立太極拳一樣。
因此,要成為一個(gè)優(yōu)秀的架構(gòu)師,就需要不斷地提升自己這幾方面的內(nèi)功,而這三方面的能力主要來源于經(jīng)驗(yàn)、視野、思考。
經(jīng)驗(yàn):設(shè)計(jì)過的系統(tǒng)越多、系統(tǒng)越復(fù)雜,架構(gòu)師的內(nèi)功也就越強(qiáng),不管是成功的架構(gòu),還是失敗的架構(gòu),不管是踩坑的經(jīng)驗(yàn),還是填坑的經(jīng)驗(yàn),都將成為架構(gòu)師內(nèi)功的一部分。
視野:掌握的知識(shí)和技能越多、越深,架構(gòu)師的內(nèi)功也就越強(qiáng),他山之石可以攻玉,站在巨人的肩膀上會(huì)看的更高更遠(yuǎn)。
思考:經(jīng)驗(yàn)和視野都是外部輸入,類似于我們吃的食物,但光吃還不行,還要消化,將其變?yōu)槲覀冏约旱臓I養(yǎng),這就是思考的作用。思考能夠?qū)⒔?jīng)驗(yàn)和視野中的模式、判斷、選擇、技巧等提煉出來為我所用,思考也能促使我們產(chǎn)生新的創(chuàng)意和靈感。
結(jié)合上面的分析,從程序員到架構(gòu)師的成長之路,總的指導(dǎo)原則是:積累經(jīng)驗(yàn),拓寬視野,深度思考。按照這個(gè)總的原則為指導(dǎo),接下來我們看看從程序員到架構(gòu)師的成長過程中,具體如何實(shí)踐。
合格的工程師需要1~3年時(shí)間,其典型特征是“在別人的指導(dǎo)下完成開發(fā)”。工程師階段是最原始的“基礎(chǔ)技能積累階段”,主要積累基礎(chǔ)知識(shí),包括編程語言、編程工具、各類系統(tǒng)的基本使用。
高級工程師需要2~5年時(shí)間,其典型特征是“獨(dú)立完成開發(fā)”,包括需求分析、方案設(shè)計(jì)、編碼實(shí)現(xiàn),其中需求分析和方案設(shè)計(jì)已經(jīng)包含了“判斷”和“選擇”,只是范圍相對來說小一些,更多是在已有架構(gòu)下進(jìn)行設(shè)計(jì)。
從普通工程師成長為高級工程師,主要需要“積累方案設(shè)計(jì)經(jīng)驗(yàn)”,簡單來說就是業(yè)務(wù)當(dāng)前用到的相關(guān)技術(shù)的設(shè)計(jì)經(jīng)驗(yàn)。包括:表設(shè)計(jì)經(jīng)驗(yàn)、緩存設(shè)計(jì)經(jīng)驗(yàn)、業(yè)務(wù)流程設(shè)計(jì)經(jīng)驗(yàn)、接口設(shè)計(jì)經(jīng)驗(yàn)等。當(dāng)接到一個(gè)業(yè)務(wù)需求的時(shí)候,高級工程師能夠組合這些設(shè)計(jì)經(jīng)驗(yàn),最終完成業(yè)務(wù)需求。
技術(shù)專家需要4~8年時(shí)間,其典型的特征是“某個(gè)領(lǐng)域的專家”,通俗地講,只要是這個(gè)領(lǐng)域的問題,技術(shù)專家都可以解決。
從高級工程師成長為技術(shù)專家,主要需要“拓展技術(shù)寬度”,因?yàn)橐粋€(gè)“領(lǐng)域”必然會(huì)涉及眾多的技術(shù)面。要成為一個(gè)Java開發(fā)專家,需要掌握J(rèn)ava多線程、JDBC、Java虛擬機(jī)、面向?qū)ο蟆⒃O(shè)計(jì)模式、Netty、Elasticsearch、Memcache、Redis、MySQL等眾多技術(shù)。
初級架構(gòu)師需要5~10年時(shí)間,其典型特征就是能夠“獨(dú)立完成一個(gè)系統(tǒng)的架構(gòu)設(shè)計(jì)”,可以是從0到1設(shè)計(jì)一個(gè)新系統(tǒng),也可以是將架構(gòu)從1.0重構(gòu)到2.0。初級架構(gòu)師負(fù)責(zé)的系統(tǒng)復(fù)雜度相對來說不高,例如后臺(tái)管理系統(tǒng)、某個(gè)業(yè)務(wù)下的子系統(tǒng)、100萬PV量級的網(wǎng)站等。
初級架構(gòu)師和技術(shù)專家的典型區(qū)別是:架構(gòu)師是基于完善的架構(gòu)設(shè)計(jì)方法論的指導(dǎo)來進(jìn)行架構(gòu)設(shè)計(jì),而技術(shù)專家更多的是基于經(jīng)驗(yàn)進(jìn)行架構(gòu)設(shè)計(jì)。簡單來說,即使是同樣一個(gè)方案,初級架構(gòu)師能夠清晰地闡述架構(gòu)設(shè)計(jì)的理由和原因,而技術(shù)專家可能就是因?yàn)樽约涸?jīng)這樣做過,或者看到別人這樣做過而選擇設(shè)計(jì)方案。
從技術(shù)專家成長為初級架構(gòu)師,最主要的是形成自己的“架構(gòu)設(shè)計(jì)方法論”
中級架構(gòu)師需要8年以上時(shí)間,其典型特征是“能夠完成復(fù)雜系統(tǒng)的架構(gòu)設(shè)計(jì)”,包含高性能、高可用、可擴(kuò)展、海量存儲(chǔ)等復(fù)雜系統(tǒng),例如設(shè)計(jì)一個(gè)和Kafka性能匹敵的消息隊(duì)列系統(tǒng)、將業(yè)務(wù)改造為異地多活、設(shè)計(jì)一個(gè)總共100人參與開發(fā)的業(yè)務(wù)系統(tǒng)等。中級架構(gòu)師與初級架構(gòu)師的典型區(qū)別在于系統(tǒng)復(fù)雜度的不同。
從初級架構(gòu)師成長為中級架構(gòu)師,最關(guān)鍵的是“技術(shù)深度和技術(shù)理論的積累”
高級架構(gòu)師需要10年以上時(shí)間,其典型特征是“創(chuàng)造新的架構(gòu)模式”
高級架構(gòu)師與中級架構(gòu)師相比,典型區(qū)別在于“創(chuàng)造性”,高級架構(gòu)師能夠創(chuàng)造新的架構(gòu)模式,開創(chuàng)新的技術(shù)潮流。
關(guān)于如何在專業(yè)領(lǐng)域內(nèi)提升,有條著名的“10000小時(shí)定律”,簡單來說要成為某個(gè)領(lǐng)域頂尖的專業(yè)人才,需要持續(xù)不斷10000小時(shí)的練習(xí),我認(rèn)為技術(shù)人員成長也基本遵循這個(gè)定律,最關(guān)鍵的還是技術(shù)人員對技術(shù)的熱情以及持續(xù)不斷地投入,包括學(xué)習(xí)、實(shí)踐、思考、總結(jié)等。
接下來為大家提煉一條通用的成長路徑供你參考
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編為大家介紹的“一個(gè)合格的Java程序員如何成長為優(yōu)秀的架構(gòu)師?”的內(nèi)容,希望對大家有幫助,更多java資訊請繼續(xù)關(guān)注動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)官網(wǎng),每天會(huì)有精彩內(nèi)容分享與你。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743