怎樣學(xué)習(xí)才能從一名Java初級程序員成長為一名合格的架構(gòu)師候衍,或者說一名合格的架構(gòu)師應(yīng)該有怎樣的技術(shù)知識體系丈屹,這是不僅一個剛剛踏入職場的初級程序員也是工作三五年之后開始迷茫的老程序員經(jīng)常會問到的問題缝裁。
什么是架構(gòu)扫尺,什么是架構(gòu)師墩弯?這似乎是聊架構(gòu)話題時永恒的問題玷坠。
從內(nèi)心講我真的不想回答架構(gòu)具體需要做什么,架構(gòu)師應(yīng)該具體負責(zé)什么蚪腐。因為從實際情況看箭昵,在不同的系統(tǒng)層級,不同的需求下架構(gòu)師的職責(zé)也會不同回季;從不同的技術(shù)角度看家制,架構(gòu)師又是個變色龍——一時是技術(shù)的大拿,一時是技術(shù)的規(guī)劃者泡一,一時是技術(shù)團隊的指揮者颤殴。
那么,該如何回答“什么是架構(gòu)鼻忠,什么是架構(gòu)師”這個問題呢涵但?這或許需要先搞清楚另外一個問題——一名程序員是如何走上架構(gòu)師之路的?我從許多朋友那里了解到了很多實際案例,程序員走上架構(gòu)師之路矮瘟,總結(jié)起來最多的原因是因為他早前代碼寫的好瞳脓。
架構(gòu)師的定義?
個人覺得架構(gòu)師需要具有以下幾特點:
知識廣度:需要知道主流技術(shù)為什么誕生澈侠,能解決什么問題劫侧?如果同一種業(yè)務(wù)用不用的技術(shù)來實現(xiàn),會有什么哪些優(yōu)缺點哨啃?比如:流行的ORM框架Mybatis 和 hibernate 烧栋,他們之間的優(yōu)缺點是什么?要有清晰的認識會能在技術(shù)造型時做出正確的決定拳球。
抽象能力:對業(yè)務(wù)和技術(shù)進行抽象审姓。業(yè)務(wù)抽象就是對需求進行分析后,能夠建立完美的實體類以及他們之間的聯(lián)系祝峻。技術(shù)抽象是對整體架構(gòu)進行一個分層魔吐,各層之間的交互。這至關(guān)重要呼猪,如果技術(shù)抽象能力不足画畅,這會導(dǎo)致整個系統(tǒng)的架構(gòu)不靈活,難以維護和擴展宋距。
知識的深度:至少是某個領(lǐng)域的專家轴踱,比如消息隊列,activeMQ熟悉其源碼谚赎,知道其實現(xiàn)淫僻。
優(yōu)秀的學(xué)習(xí)能力:對新的技術(shù)和前沿性的技術(shù)進行學(xué)習(xí),使用它來解決工作中的業(yè)務(wù)問題壶唤。
那么你該如何去做呢?我覺得可以從以下幾個步驟開始:
1: 扎實的JAVA 基礎(chǔ)雳灵,Think in java上介紹的內(nèi)容都能理解,做到這一步恭喜成為了程序員闸盔。
2:熟練使用主流框架悯辙,如:mybatis,spring 等迎吵。
3:研究過至少一種以web框架的源碼躲撰,如spring mvc ,struts 等击费。
4:架構(gòu)過或者參與過高并發(fā)系統(tǒng)設(shè)計拢蛋,知道如何應(yīng)對突發(fā)情況。
5:對自己所處的業(yè)務(wù)能夠根據(jù)自己的知識維度蔫巩,提出優(yōu)化建議或者預(yù)測其風(fēng)險點谆棱。
其實能否成為架構(gòu)師跟機遇有很大關(guān)系快压,比如一個程序員,以上都做到了垃瞧,但是公司并沒有給他這個機會去做蔫劣,一個真正架構(gòu)的機會。因為之前的架構(gòu)師不離職他就沒有機會皆警,這就是現(xiàn)實拦宣!
很多人不知道該怎么去學(xué)習(xí)架構(gòu)師所需的知識,在此我分享給大家一個學(xué)習(xí)路線:
如果你想學(xué)習(xí)Java工程化信姓、高性能及分布式、高性能绸罗、深入淺出意推。性能調(diào)優(yōu)、Spring珊蟀,MyBatis菊值,Netty源碼分析和大數(shù)據(jù)等知識點可以來找我。
而現(xiàn)在我就有一個平臺可以提供給你們學(xué)習(xí)育灸,讓你在實踐中積累經(jīng)驗掌握原理腻窒。主要方向是JAVA架構(gòu)師。如果你想拿高薪磅崭,想突破瓶頸儿子,想跟別人競爭能取得優(yōu)勢的,想進BAT但是有擔(dān)心面試不過的砸喻,可以加我的Java架構(gòu)進階群:561614305
1柔逼、具有1-5工作經(jīng)驗的,面對目前流行的技術(shù)不知從何下手割岛,需要突破技術(shù)瓶頸的可以加愉适。
2、在公司待久了癣漆,過得很安逸维咸,但跳槽時面試碰壁。需要在短時間內(nèi)進修惠爽、跳槽拿高薪的可以加癌蓖。
3、如果沒有工作經(jīng)驗疆股,但基礎(chǔ)非常扎實费坊,對java工作機制,常用設(shè)計思想旬痹,常用java開發(fā)框架掌握熟練的附井,可以加讨越。
4、覺得自己很牛B永毅,一般需求都能搞定把跨。但是所學(xué)的知識點沒有系統(tǒng)化,很難在技術(shù)領(lǐng)域繼續(xù)突破的可以加沼死。
5.阿里Java高級大牛直播講解知識點着逐,分享知識,多年工作經(jīng)驗的梳理和總結(jié)意蛀,帶著大家全面耸别、科學(xué)地建立自己的技術(shù)體系和技術(shù)認知!