1架構(gòu)師是什么顷锰?
要想往架構(gòu)師的方向發(fā)展首先要知道架構(gòu)師是什么?
架構(gòu)師是一個(gè)既需要掌控整體又需要洞悉局部瓶頸并依據(jù)具體的業(yè)務(wù)場(chǎng)景給出解決方案的團(tuán)隊(duì)領(lǐng)導(dǎo)型人物绰姻。
一個(gè)架構(gòu)師得需要足夠的想像力,能把各種目標(biāo)需求進(jìn)行不同維度的擴(kuò)展枉侧,為目標(biāo)客戶(hù)提供更為全面的需求清單。
架構(gòu)師在軟件開(kāi)發(fā)的整個(gè)過(guò)程中起著很重要的作用狂芋。
說(shuō)的詳細(xì)一些榨馁,架構(gòu)師就是確認(rèn)和評(píng)估系統(tǒng)需求,給出開(kāi)發(fā)規(guī)范帜矾,搭建系統(tǒng)實(shí)現(xiàn)的核心構(gòu)架翼虫,并澄清技術(shù)細(xì)節(jié)屑柔、掃清主要難點(diǎn)的技術(shù)人員。主要著眼于系統(tǒng)的“技術(shù)實(shí)現(xiàn)”珍剑。
2架構(gòu)師的任務(wù)
架構(gòu)師的主要任務(wù)不是從事具體的軟件程序的編寫(xiě)掸宛,而是從事更高層次的開(kāi)發(fā)構(gòu)架工作。他必須對(duì)開(kāi)發(fā)技術(shù)非常了解招拙,并且需要有良好的組織管理能力旁涤。可以這樣說(shuō)迫像,一個(gè)架構(gòu)師工作的好壞決定了整個(gè)軟件開(kāi)發(fā)項(xiàng)目的成敗劈愚。
在成為Java架構(gòu)師之前,應(yīng)當(dāng)先成為Java工程師闻妓。
熟練使用各種框架菌羽,并知道它們實(shí)現(xiàn)的原理。
jvm虛擬機(jī)原理由缆、調(diào)優(yōu)注祖,懂得jvm能讓你寫(xiě)出性能更好的代碼;池技術(shù)均唉,什么對(duì)象池是晨,連接池,線(xiàn)程池……Java反射技術(shù)舔箭,寫(xiě)框架必備的技術(shù)罩缴,遇到有嚴(yán)重的性能問(wèn)題,替代方案java字節(jié)碼技術(shù)层扶;nio箫章,沒(méi)什么好說(shuō)的,值得注意的是"直接內(nèi)存"的特點(diǎn)镜会,使用場(chǎng)景檬寂;java多線(xiàn)程同步異步;java各種集合對(duì)象的實(shí)現(xiàn)原理戳表,了解這些可以讓你在解決問(wèn)題時(shí)選擇合適的數(shù)據(jù)結(jié)構(gòu)桶至,高效的解決問(wèn)題。
比如hashmap的實(shí)現(xiàn)原理匾旭,好多五年以上經(jīng)驗(yàn)的人都弄不清楚镣屹,還有為什擴(kuò)容時(shí)有性能問(wèn)題?
不弄清楚這些原理季率,就寫(xiě)不出高效的代碼野瘦,還會(huì)認(rèn)為自己做的很對(duì)描沟。
總之一句話(huà)飒泻,越基礎(chǔ)的東西越重要鞭光,很多人認(rèn)為自己會(huì)用它們寫(xiě)代碼了,其實(shí)僅僅是知道如何調(diào)用api而已,離會(huì)用還差的遠(yuǎn)泞遗。
如果你立志做架構(gòu)惰许,首先打好基礎(chǔ),從最底層開(kāi)始史辙。
然后發(fā)展到各種技術(shù)和語(yǔ)言汹买,什么都要懂兩點(diǎn),要全面且不膚淺聊倔。
為什么不是懂一點(diǎn)晦毙?
你要看得透徹,必須盡量深入一些耙蔑。別人懂一點(diǎn)见妒,你要做架構(gòu)師,必須再多懂一點(diǎn)甸陌。比如你發(fā)現(xiàn)golang很流行须揣,別人可能寫(xiě)一個(gè)helloworld就說(shuō)自己玩過(guò)golang,但你至少要嘗試寫(xiě)一個(gè)完整的應(yīng)用钱豁。
不肯下苦功耻卡,如何高人一頭?
你起碼要非常深入地了解至少一門(mén)語(yǔ)言牲尺,如果你的目標(biāo)是java卵酪,那么就學(xué)到極致,作為敲門(mén)磚谤碳,先吃飽了才能談理想凛澎。
3架構(gòu)師都是從碼農(nóng)過(guò)來(lái)的
而Java學(xué)到極致勢(shì)必涉及到設(shè)計(jì)模式,算法和數(shù)據(jù)結(jié)構(gòu)估蹄,多線(xiàn)程塑煎,文件及網(wǎng)絡(luò)IO,數(shù)據(jù)庫(kù)及ORM臭蚁,不一而足最铁。這些概念放之一切語(yǔ)言都適用。
先精一門(mén)垮兑,為全面且不膚淺打基礎(chǔ)冷尉。
另外就是向有經(jīng)驗(yàn)的架構(gòu)師學(xué)習(xí),和小伙伴們討論辯論爭(zhēng)論系枪。
其實(shí)最重要的能力就是不斷學(xué)習(xí)雀哨。在思考新的技術(shù)是否能更好地解決你們遇到的問(wèn)題之前,你首先得知道并了解新的技術(shù)。
架構(gòu)師都是從碼農(nóng)過(guò)來(lái)的雾棺,媳婦熬成婆膊夹。
千萬(wàn)不要成為不寫(xiě)代碼的架構(gòu)師,有些公司專(zhuān)門(mén)產(chǎn)不寫(xiě)技術(shù)的架構(gòu)師捌浩。
所謂架構(gòu)師放刨,只是功底深厚的程序員而已。個(gè)人認(rèn)為應(yīng)該扎扎實(shí)實(shí)學(xué)習(xí)基礎(chǔ)知識(shí)尸饺,學(xué)習(xí)各種規(guī)范进统,架構(gòu),需要廣泛的知識(shí)面浪听,懂的東西越多視野越開(kāi)闊螟碎,設(shè)計(jì)的東西當(dāng)然會(huì)越好越全面。
成為架構(gòu)師需要時(shí)間的積累的迹栓,不但要知其然還要知其所以然抚芦。平時(shí)的一點(diǎn)一滴你感覺(jué)不到特別用處,但某天你會(huì)發(fā)現(xiàn)所有東西都沒(méi)有白學(xué)的迈螟。
4架構(gòu)師知識(shí)體系
如果想學(xué)習(xí)Java工程化叉抡、高性能及分布式、深入淺出答毫。性能調(diào)優(yōu)褥民、Spring,MyBatis洗搂,Netty源碼分析的朋友可以加我的Java進(jìn)階群288351179?消返,群里有阿里大牛直播講解技術(shù),以及Java大型互聯(lián)網(wǎng)技術(shù)的視頻免費(fèi)分享給大家耘拇。