Java程式設計師如何成為優秀的架構師

java填坑路發表於2018-04-30

怎樣學習才能從一名Java初級程式設計師成長為一名合格的架構師,或者說一名合格的架構師應該有怎樣的技術知識體系,這是不僅一個剛剛踏入職場的初級程式設計師也是工作三五年之後開始迷茫的老程式設計師經常會問到的問題。

什麼是架構,什麼是架構師?這似乎是聊架構話題時永恆的問題。

從內心講我真的不想回答架構具體需要做什麼,架構師應該具體負責什麼。因為從實際情況看,在不同的系統層級,不同的需求下架構師的職責也會不同;從不同的技術角度看,架構師又是個變色龍——一時是技術的大拿,一時是技術的規劃者,一時是技術團隊的指揮者。

那麼,該如何回答“什麼是架構,什麼是架構師”這個問題呢?這或許需要先搞清楚另外一個問題——一名程式設計師是如何走上架構師之路的?我從許多朋友那裡瞭解到了很多實際案例,程式設計師走上架構師之路,總結起來最多的原因是因為他早前程式碼寫的好。

架構師的定義?

個人覺得架構師需要具有以下幾特點:

知識廣度:需要知道主流技術為什麼誕生,能解決什麼問題?如果同一種業務用不用的技術來實現,會有什麼哪些優缺點?比如:流行的ORM框架Mybatis 和 hibernate ,他們之間的優缺點是什麼?要有清晰的認識會能在技術造型時做出正確的決定。

抽象能力:對業務和技術進行抽象。業務抽象就是對需求進行分析後,能夠建立完美的實體類以及他們之間的聯絡。技術抽象是對整體架構進行一個分層,各層之間的互動。這至關重要,如果技術抽象能力不足,這會導致整個系統的架構不靈活,難以維護和擴充套件。

知識的深度:至少是某個領域的專家,比如訊息佇列,activeMQ熟悉其原始碼,知道其實現。

優秀的學習能力:對新的技術和前沿性的技術進行學習,使用它來解決工作中的業務問題。

那麼你該如何去做呢?我覺得可以從以下幾個步驟開始:

1: 紮實的JAVA 基礎,Think in java上介紹的內容都能理解,做到這一步恭喜成為了程式設計師。

2:熟練使用主流框架,如:mybatis,spring 等。

3:研究過至少一種以web框架的原始碼,如spring mvc ,struts 等。

4:架構過或者參與過高併發系統設計,知道如何應對突發情況。

5:對自己所處的業務能夠根據自己的知識維度,提出優化建議或者預測其風險點。

其實能否成為架構師跟機遇有很大關係,比如一個程式設計師,以上都做到了,但是公司並沒有給他這個機會去做,一個真正架構的機會。因為之前的架構師不離職他就沒有機會,這就是現實!

很多人不知道該怎麼去學習架構師所需的知識,在此我分享給大家一個學習路線: 

1、具有1-5工作經驗的,面對目前流行的技術不知從何下手,需要突破技術瓶頸的可以加群。

2、在公司待久了,過得很安逸,但跳槽時面試碰壁。需要在短時間內進修、跳槽拿高薪的可以加群。

3、如果沒有工作經驗,但基礎非常紮實,對java工作機制,常用設計思想,常用java開發框架掌握熟練的,可以加群。

4、覺得自己很牛B,一般需求都能搞定。但是所學的知識點沒有系統化,很難在技術領域繼續突破的可以加群。

5.群號744677563Java高階開發

6.阿里Java高階大牛直播講解知識點,分享知識,上面五大專題都是各位老師多年工作經驗的梳理和總結,帶著大家全面、科學地建立自己的技術體系和技術認知!

相關文章