更新時(shí)間:2019-10-23 11:08:39 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2349次
一、什么是架構(gòu)師?
1、從內(nèi)心講我真的不想回答架構(gòu)具體需要做什么,架構(gòu)師應(yīng)該具體負(fù)責(zé)什么。因?yàn)閺膶?shí)際情況看,在不同的系統(tǒng)層級(jí),不同的需求下架構(gòu)師的職責(zé)也會(huì)不同;從不同的技術(shù)角度看,架構(gòu)師又是個(gè)變色龍——一時(shí)是技術(shù)的大拿,一時(shí)是技術(shù)的規(guī)劃者,一時(shí)是技術(shù)團(tuán)隊(duì)的指揮者。
2、那么,該如何回答“什么是架構(gòu),什么是架構(gòu)師”這個(gè)問(wèn)題呢?這或許需要先搞清楚另外一個(gè)問(wèn)題——一名程序員是如何走上架構(gòu)師之路的?我從許多朋友那里了解到了很多實(shí)際案例,程序員走上架構(gòu)師之路,總結(jié)起來(lái)最多的原因是因?yàn)樗缜按a寫(xiě)的好。
3、那么,代碼寫(xiě)的好就是架構(gòu)嗎?顯然不是。代碼寫(xiě)的好只是表象,做所有事情都需要規(guī)劃,尤其是一個(gè)復(fù)雜的軟件系統(tǒng),這更需要規(guī)劃,否則可能連一行代碼都寫(xiě)不出。復(fù)雜的軟件系統(tǒng)一定會(huì)需要做很多抽象設(shè)計(jì)、對(duì)象規(guī)劃、接口規(guī)劃等準(zhǔn)備動(dòng)作。也就是“上一輩程序員”口中所說(shuō)的:詳細(xì)設(shè)計(jì)。做架構(gòu)主要的事情也依舊如此,需要對(duì)整個(gè)系統(tǒng)進(jìn)行系統(tǒng)的規(guī)劃:模塊、通訊、邊界、擴(kuò)展、技術(shù)下沉等工作。這樣的規(guī)劃完成之后項(xiàng)目方能正常跑起來(lái)。
4、當(dāng)然,架構(gòu)也不僅僅是規(guī)劃,還要做的另一件大事就是技術(shù)識(shí)別。識(shí)別出系統(tǒng)中技術(shù)的難易區(qū)域,并分解復(fù)雜技術(shù),使之成為一個(gè)個(gè)技術(shù)的黑盒子,在此之上再進(jìn)行新的技術(shù)規(guī)劃,使整個(gè)系統(tǒng)從技術(shù)角度來(lái)看是分層次的,從難到易,從大到小,但各層之間又是互相的黑盒。這也常說(shuō)的讓系統(tǒng)模塊間達(dá)到“雞犬相聞老死不相往來(lái)“的狀態(tài)。
5、一個(gè)架構(gòu)師需要足夠的技術(shù)的寬度。從軟件到硬件,從開(kāi)發(fā)到測(cè)試,從運(yùn)維到安全等都需要面面俱到的了解。當(dāng)然你可能不是這單方面領(lǐng)域里面最深入的人,但是你需要知道它們是怎么做的(不僅僅是皮毛,要深入原理),并且要知道它們組合起來(lái)是個(gè)什么樣的東西。技術(shù)面也足夠?qū)捔酥螅遣皇蔷蜁?huì)成為完美架構(gòu)師呢?
6、答案是不會(huì),因?yàn)檫€有新的問(wèn)題要過(guò)來(lái)。這次的問(wèn)題諸如“系統(tǒng)在未來(lái)的運(yùn)行過(guò)程中運(yùn)維需要做什么?”“系統(tǒng)在未來(lái)的功能迭代中如何更方便的擴(kuò)展?”“系統(tǒng)應(yīng)該怎么修改?”“系統(tǒng)應(yīng)該被怎么樣升級(jí)?”這時(shí)的你是不時(shí)很困惑?是不是感覺(jué)這個(gè)架構(gòu)的世界好長(zhǎng)啊,怎么像保姆一樣什么都要管。但仔細(xì)想想這是應(yīng)該的,因?yàn)橐粋€(gè)系統(tǒng)初次開(kāi)發(fā)并交付只是它生命周期中的一小部分而已。后面的維護(hù)、改造、升級(jí)才占了整個(gè)軟件生命周期的絕大部分時(shí)間。你是它的架構(gòu)設(shè)計(jì)者,是它靈魂之所在,你當(dāng)然應(yīng)該設(shè)計(jì)好它的未來(lái)。這也是架構(gòu)師做好的最后一件事情:系統(tǒng)未來(lái)的設(shè)計(jì)。
二、架構(gòu)師的定義?
個(gè)人覺(jué)得架構(gòu)師需要具有以下幾特點(diǎn):
1.知識(shí)廣度:需要知道主流技術(shù)為什么誕生,能解決什么問(wèn)題?如果同一種業(yè)務(wù)用不用的技術(shù)來(lái)實(shí)現(xiàn),會(huì)有什么哪些優(yōu)缺點(diǎn)?比如:流行的ORM框架Mybatis和hibernate,他們之間的優(yōu)缺點(diǎn)是什么?要有清晰的認(rèn)識(shí)會(huì)能在技術(shù)造型時(shí)做出正確的決定。
2.抽象能力:對(duì)業(yè)務(wù)和技術(shù)進(jìn)行抽象。業(yè)務(wù)抽象就是對(duì)需求進(jìn)行分析后,能夠建立完美的實(shí)體類(lèi)以及他們之間的聯(lián)系。技術(shù)抽象是對(duì)整體架構(gòu)進(jìn)行一個(gè)分層,各層之間的交互。這至關(guān)重要,如果技術(shù)抽象能力不足,這會(huì)導(dǎo)致整個(gè)系統(tǒng)的架構(gòu)不靈活,難以維護(hù)和擴(kuò)展。
3.知識(shí)的深度:至少是某個(gè)領(lǐng)域的專(zhuān)家,比如消息隊(duì)列,activeMQ熟悉其源碼,知道其實(shí)現(xiàn)。
優(yōu)秀的學(xué)習(xí)能力:對(duì)新的技術(shù)和前沿性的技術(shù)進(jìn)行學(xué)習(xí),使用它來(lái)解決工作中的業(yè)務(wù)問(wèn)題。
三、那么你該如何去做?
1:扎實(shí)的Java基礎(chǔ),Thinkinjava上介紹的內(nèi)容都能理解,做到這一步恭喜成為了程序員。
2:熟練使用主流框架,如:mybatis,spring等。
3:研究過(guò)至少一種以web框架的源碼,如springmvc,struts等。
4:架構(gòu)過(guò)或者參與過(guò)高并發(fā)系統(tǒng)設(shè)計(jì),知道如何應(yīng)對(duì)突發(fā)情況。
5:對(duì)自己所處的業(yè)務(wù)能夠根據(jù)自己的知識(shí)維度,提出優(yōu)化建議或者預(yù)測(cè)其風(fēng)險(xiǎn)點(diǎn)。
四、該掌握哪些技術(shù)呢?
開(kāi)源框架解析
源碼解讀是一位合格架構(gòu)師的必備技能,站在更高的角度來(lái)分析及解決技術(shù)疑難問(wèn)題;
應(yīng)該先學(xué)習(xí)開(kāi)源框架的常用設(shè)計(jì)模式及經(jīng)典設(shè)計(jì)思想,扎實(shí)源碼內(nèi)功基礎(chǔ),學(xué)習(xí)大牛們?cè)创a設(shè)計(jì)思想及技術(shù)規(guī)范,從源碼學(xué)習(xí)過(guò)程中提升個(gè)人技術(shù)審美觀(guān)及架構(gòu)設(shè)計(jì)思想。然后再以Spring5與Mybatis的基礎(chǔ)應(yīng)用編碼為起點(diǎn),去尋找底層源碼切入點(diǎn),讓開(kāi)源框架底層技術(shù)不再神秘。
高性能架構(gòu)
熟悉大牛的源碼框架后,接下來(lái)我們進(jìn)入高性能架構(gòu)專(zhuān)題學(xué)習(xí),我們會(huì)講解傳統(tǒng)技術(shù)架構(gòu)到大型互聯(lián)網(wǎng)架構(gòu)的演進(jìn)過(guò)程,如何將傳統(tǒng)軟件技術(shù)升華到高并發(fā)高性能的互聯(lián)網(wǎng)技術(shù),理論與實(shí)戰(zhàn)充分結(jié)合,讓每個(gè)技術(shù)點(diǎn)學(xué)而不忘。從高性能架構(gòu)技術(shù)的基礎(chǔ)入門(mén),到技術(shù)架構(gòu)的逐步進(jìn)階,再到技術(shù)架構(gòu)的高級(jí)專(zhuān)題,最后通過(guò)多個(gè)實(shí)戰(zhàn)環(huán)節(jié)將所有技術(shù)點(diǎn)鞏固加強(qiáng),讓每個(gè)人在高性能架構(gòu)技術(shù)的深度及寬度上得到跳躍式提升,成為互聯(lián)網(wǎng)企業(yè)的核心技術(shù)人才。
微服務(wù)架構(gòu)
在高并發(fā)的應(yīng)用場(chǎng)景下,微服務(wù)技術(shù)是互聯(lián)網(wǎng)平臺(tái)必選的架構(gòu)技術(shù),目前國(guó)內(nèi)較流行,用得較多的有SpringBoot,SpringCloud,Duboo,不僅要學(xué)習(xí)微服務(wù)架構(gòu)的應(yīng)用知識(shí),還會(huì)從底層源碼透析每個(gè)開(kāi)源框架的設(shè)計(jì)模式及設(shè)計(jì)思想,還有Docker虛擬化技術(shù)等等,使用微服務(wù)改變互聯(lián)網(wǎng)系統(tǒng)的并發(fā)瓶頸,讓你的平臺(tái)開(kāi)發(fā)更加高效、快捷。
團(tuán)隊(duì)協(xié)作
高速發(fā)展的互聯(lián)網(wǎng)生態(tài)環(huán)境下,除了擁有優(yōu)秀的架構(gòu)技術(shù)之外,高效快捷的團(tuán)隊(duì)協(xié)作開(kāi)發(fā)技能必不可省,優(yōu)秀的架構(gòu)師如何為企業(yè)減輕成本,如何更高效高質(zhì)量的完成系統(tǒng),這些你都要學(xué)。
B2C商城項(xiàng)目實(shí)戰(zhàn)
有了互聯(lián)網(wǎng)熱點(diǎn)技術(shù),一個(gè)真實(shí)的互聯(lián)網(wǎng)項(xiàng)目可以讓你把所學(xué)的熱點(diǎn)技術(shù)由點(diǎn)到線(xiàn),由線(xiàn)到面,將所有技術(shù)聚集到實(shí)戰(zhàn)的環(huán)境,最終將技術(shù)點(diǎn)和項(xiàng)目實(shí)戰(zhàn)真正變成自己的本領(lǐng);分析B2C項(xiàng)目的每一行源行及設(shè)計(jì)規(guī)范,讓你對(duì)Nginx、Redis、Docker、Mq等技術(shù)學(xué)而致用,用而不忘,具備獨(dú)立的架構(gòu)設(shè)計(jì)與開(kāi)發(fā)能力。
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編介紹的“如何成為一個(gè)資深Java架構(gòu)師呢?”的內(nèi)容,希望對(duì)的大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€(xiàn)咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。
視頻相關(guān)
全網(wǎng)最新全套Java視頻教程下載:http://www.dabaquan.cn/video.html
Java學(xué)習(xí)資料下載:http://www.dabaquan.cn/tutorial_java_se/
相關(guān)內(nèi)容
做一名高級(jí)Java架構(gòu)師,學(xué)Java架構(gòu)師開(kāi)發(fā)難嗎
【java架構(gòu)師培訓(xùn)】合格java架構(gòu)師標(biāo)準(zhǔn)是什么
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)