最近好多人私信問我酗钞,該怎樣才能成為架構(gòu)師,還有一個就對當前的狀態(tài)感到迷茫。我在此做一個簡單的說明砚作,或者對迷茫中的你來說有些許幫助窘奏。
當前你感到迷茫嗎?
有很多人對現(xiàn)在的工作感到很沒意思葫录,因為當前的工作着裹,完全是實現(xiàn)業(yè)務,技術(shù)上沒有任何提高米同。在這種狀態(tài)下就會感到迷茫骇扇,特別是一想到將來這種迷茫感就更強烈了。
與其說迷茫還不如說是擔憂面粮,隨著時間的推移少孝,自己的技術(shù)又沒有長進,所以感覺憂心忡忡熬苍。
這里分為二種人:
*混日子稍走,過一天算一天
這一種的我就不過多討論了,沒有意義柴底。我也碰到過很多這樣的同事婿脸,此類程序員已經(jīng)廢啦。
*想提高自己的技術(shù)柄驻,往架構(gòu)師方向努力狐树。
給我發(fā)私信的人,大部分是這一種鸿脓。首先抑钟,可以看出來,這些人都是有自己理想的人答憔,也會付諸實踐的味赃。想往架構(gòu)師方向走,但是卻苦于沒有人帶虐拓,自己也不知道如何成為框架師心俗。再不改變,此類程序員可能會也廢蓉驹。
我想借這個文章和大家聊聊架構(gòu)師這個話題城榛,純屬個人理解,與對錯無憂态兴。
架構(gòu)師的定義狠持?
個人覺得架構(gòu)師需要具有以下幾特點:
知識廣度:需要知道主流技術(shù)為什么誕生,能解決什么問題瞻润?如果同一種業(yè)務用不用的技術(shù)來實現(xiàn)喘垂,會有什么哪些優(yōu)缺點甜刻?比如:流行的ORM框架Mybatis 和 hibernate ,他們之間的優(yōu)缺點是什么正勒?要有清晰的認識會能在技術(shù)造型時做出正確的決定得院。
抽象能力:對業(yè)務和技術(shù)進行抽象。業(yè)務抽象就是對需求進行分析后章贞,能夠建立完美的實體類以及他們之間的聯(lián)系祥绞。技術(shù)抽象是對整體架構(gòu)進行一個分層,各層之間的交互鸭限。這至關(guān)重要蜕径,如果技術(shù)抽象能力不足,這會導致整個系統(tǒng)的架構(gòu)不靈活败京,難以維護和擴展兜喻。
知識的深度:至少是某個領域的專家,比如消息隊列赡麦,activeMQ熟悉其源碼虹统,知道其實現(xiàn)。
優(yōu)秀的學習能力:對新的技術(shù)和前沿性的技術(shù)進行學習隧甚,使用它來解決工作中的業(yè)務問題。
那么你該如何去做呢?我覺得可以從以下幾個步驟開始:
1: 扎實的JAVA 基礎渡冻,Think in java上介紹的內(nèi)容都能理解戚扳,做到這一步恭喜成為了程序員。
2:熟練使用主流框架族吻,如:mybatis帽借,spring 等。
3:研究過至少一種以web框架的源碼超歌,如spring mvc 砍艾,struts 等。
4:架構(gòu)過或者參與過高并發(fā)系統(tǒng)設計巍举,知道如何應對突發(fā)情況脆荷。
5:對自己所處的業(yè)務能夠根據(jù)自己的知識維度,提出優(yōu)化建議或者預測其風險點懊悯。
其實能否成為架構(gòu)師跟機遇有很大關(guān)系蜓谋,比如一個程序員,以上都做到了炭分,但是公司并沒有給他這個機會去做桃焕,一個真正架構(gòu)的機會。因為之前的架構(gòu)師不離職他就沒有機會捧毛,這就是現(xiàn)實观堂!
很多人不知道該怎么去學習架構(gòu)師所需的知識让网,在此我分享給你我收藏的視頻教程: