1. 程式人生 > >成為一名Java高階架構師到底需要學習什麼?

成為一名Java高階架構師到底需要學習什麼?

Java架構師,應該算是一些Java程式設計師們的一個職業目標了吧。很多碼農碼了五六年的程式碼也沒能成為架構師。那成為Java架構師要掌握哪些技術呢,總體來說呢,有兩方面,一個是基礎技術,另一個就是組織能力和提出解決方案能力了。我就跟大家來簡要地說說吧。

如果你是想成為Java架構師,那麼你首先要是一個Java高階攻城獅。也就是說,基礎必須牢固,對Java的瞭解全面而且深入。

熟練使用各種框架,並知道它們實現的原理。

Jvm虛擬機器原理、調優操作,懂得jvm能讓你寫出效能更好的程式碼;

池技術也是要掌握的,物件池、連線池、執行緒池都要會;

Java反射技術,寫框架必備的技術;

Java各種集合物件的實現原理,瞭解這些可以讓你在解決問題時選擇合適的資料結構,高效地解決問題,寫出程式碼;

nio,注意“直接記憶體”的特點,使用場景。

還沒完,除了上邊那些,你還要熟練使用各種資料結構和演算法,陣列、雜湊、連結串列、排序樹等等都是;熟練使用Linux作業系統,也是必備的;熟悉各種協議,比如tcp協議,建立連線三次握手和斷開連線四次握手的整個過程,不瞭解就沒法對高併發網路應用做優化,http協議,session和cookie的生命週期與關聯;熟悉系統叢集、負載均衡、反向代理、動靜分離,網站靜態化;懂得分散式儲存系統nfs,fastdfs,tfs,Hadoop瞭解他們的優缺點,適用場景,以及分散式快取技術memcached,redis,提高系統性能必備。

以上這些夠了嗎?當然不。還有呢,工具nginx必備技能超級好用,高效能,基本不會掛掉的伺服器,功能多多,解決各種問題;掌握資料庫的設計能力,Mysql必備,最基礎的資料工具,主要是免費且好用,對它基本的引數優化,慢查詢日誌分析,主從複製的配置,至少要成為半個mysql dba,其他資料庫也要至少略懂一二;還有佇列中介軟體也要會操作,如訊息推送,可以先把訊息寫入資料庫,推送放佇列伺服器上,由推送伺服器去佇列獲取處理,這樣就可以將訊息放資料庫和佇列裡後直接給使用者反饋,推送過程則由推送伺服器和佇列伺服器完成,好處非同步處理、緩解伺服器壓力,解藕系統。

說了這麼多,其實都還是純粹的基礎技術,並且還沒有列全。要想成為架構師,除了這些之外,就還要具備我們說的組織能力和解決問題的能力了。

架構師思考的是全域性的東西,是如何組織系統,以達到業務要求、效能要求。架構師要針對業務特點、系統的效能要求提出解決問題成本最低的設計方案。為了架構而架構,這是絕對不可取的。你想啊,人家一個幾百人使用者的系統,訪問量不大,資料量也不大,你給人家上叢集、分散式儲存、高階伺服器,肯定能到達效能要求,但是成本高啊。要知道,架構師的作用,一是滿足業務需求,二是最低的硬體網路成本和技術維護成本。

架構師還要根據業務發展階段,提前預見發展到下一個階段系統架構的解決方案,並且設計當前架構時將架構的升級擴充套件考慮進去,做到易於升級;否則等系統瓶頸來了,出問題了再去出方案,或現有架構無法擴充套件直接扔掉重做,或擴充套件麻煩問題一大堆,這會對企業造成損失。

架構師是經過程式設計師,開發員,高階開發員等一步步積累而來。一個好的架構師不太可能看一些書就能短期內看會。建議平時寫程式碼時,多思考,而不是僅僅滿足於完成功能。可以試著用不同的方法去實現一個功能,分析優缺點。看別人的程式碼時也要學會別人為什麼這麼寫。等到有了些積累,可以去系統地學些design pattern,並逐漸運用到工作中。熟練後你會發現自己可以寫變種的pattern了。到這一步你已經積累了不少需求分析的經驗,也能夠把需求中的問題抽象出來,程式碼已經能很好的重用了。這就已經踏入架構師的門檻了,接下來,你要做的是培養自己預測需求變化的能力。當你的設計總是能夠以最小的代價適應需求的改變時,就是個合格的架構師了。

第一階段:java基礎知識要牢固,java程式設計思想,設計模式,effective java這些都算是基礎知識。在這基礎上,要結合多種專案經驗,利用實踐來提高基礎能力。

第二階段:開闊眼光,借鑑優秀的專案或開原始碼。例如jstorm、hadoop等開源軟體,可以下載後利用業餘時間研讀,提升能力。

第三階段:結合業務進行架構設計和實踐,並多與行業高手交流,提升領域建模等能力

選一個方向,然後多閱讀一些高質量程式碼,站在前輩架構師的肩膀上,才能比較快速的進步,長時間的技術積累,業務專案的積累,合理的方案解決通用問題。多讀多寫多思考。多讀的目的是開拓自己的視野,讓自己具備舉一反三觸類旁通的能力。多寫是腳踏實地,避免誇誇其談紙上談兵。多思考是融會貫通所讀所寫。

架構師的學習之路也正式開始。

效能調優專題:

常用框架原始碼分析:

B2C商城顯目實戰:

團隊協作開發專題:

微服務專題:

網際網路分散式架構專題:

學到這裡之後,你的薪資可謂不可同日而語了

學完這些你才能真的稱得上是Java架構師了。

歡迎工作一到五年的Java工程師朋友們加入Java架構開發:760940986 群內提供免費的Java架構學習資料(裡面有高可用、高併發、高效能及分散式、Jvm效能調優、Spring原始碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!