1. gzyueqian
      13352868059

      想要成為一名Java架構師到底需要學習什么?

      更新時間: 2018-09-16 15:00:00來源: java培訓瀏覽量:6238

          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,其他數據庫也要至少略懂一二;還有隊列中間件也要會操作,如消息推送,可以先把消息寫入數據庫,推送放隊列服務器上,由推送服務器去隊列獲取處理,這樣就可以將消息放數據庫和隊列里后直接給用戶反饋,推送過程則由推送服務器和隊列服務器完成,好處異步處理、緩解服務器壓力,解藕系統。
          說了這么多,其實都還是純粹的基礎技術,并且還沒有列全。要想成為架構師,除了這些之外,就還要具備我們說的組織能力和解決問題的能力了。
          架構師思考的是全局的東西,是如何組織系統,以達到業務要求、性能要求。架構師要針對業務特點、系統的性能要求提出解決問題成本的設計方案。為了架構而架構,這是不可取的。你想啊,人家一個幾百人用戶的系統,訪問量不大,數據量也不大,你給人家上集群、分布式儲存、高端服務器,肯定能到達性能要求,但是成本高啊。要知道,架構師的作用,一是滿足業務需求,二是的硬件網絡成本和技術維護成本。
          架構師還要根據業務發展階段,提前預見發展到下一個階段系統架構的解決方案,并且設計當前架構時將架構的升級擴展考慮進去,做到易于升級;否則等系統瓶頸來了,出問題了再去出方案,或現有架構無法擴展直接扔掉重做,或擴展麻煩問題一大堆,這會對企業造成損失。

          架構師是經過程序員,開發員,開發員等一步步積累而來。一個好的架構師不太可能看一些書就能短期內看會。建議平時寫代碼時,多思考,而不是僅僅滿足于完成功能??梢栽囍貌煌姆椒ㄈ崿F一個功能,分析優缺點。看別人的代碼時也要學會別人為什么這么寫。等到有了些積累,可以去系統地學些design pattern,并逐漸運用到工作中。熟練后你會發現自己可以寫變種的pattern了。到這一步你已經積累了不少需求分析的經驗,也能夠把需求中的問題抽象出來,代碼已經能很好的重用了。這就已經踏入架構師的門檻了,接下來,你要做的是培養自己預測需求變化的能力。當你的設計總是能夠以小的代價適應需求的改變時,就是個合格的架構師了。


          階段:java基礎知識要牢固,java編程思想,設計模式,effective java這些都算是基礎知識。在這基礎上,要結合多種項目經驗,利用實踐來提高基礎能力。
          第二階段:開闊眼光,借鑒的項目或開源代碼。例如jstorm、hadoop等開源軟件,可以下載后利用業余時間研讀,提升能力。

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


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

          再者,你在這這個階段已經不能局限于滿足于講代碼寫出來,此時此刻的你需要追求高質量高性能的代碼了,你此時需要研究的知識就會如下圖所示:

          是不是學習了上面做這些技術就夠了呢?相信看到這里的碼友已經知道答案了,沒錯,你還需要知道分布式架構的知識



          另外,目前企業有大小,平臺有限制,甚至對開放的方式方案都出現了獨立的方式,Facebook每個模塊的功能從設計到開發再到維護,由后端到前端再到客戶端都是通過一程序員來進行的,這些就是所謂的全棧工程師,那么java開發中,我們服務器也有其自身的獨到性;那么如何將龐大的后臺系統分部成為多個功能獨立,部署獨立,維護獨立,松耦合的獨立服務呢?從而減少企業的溝通成本和維護成本呢?毫無疑問,這就是微服務。



          ,如果說開發是一個戰場,那么程序猿們就是勇猛的戰士,我們的戰斗需要協調合作,統一調度,統一部署。那么完美的配合自然需要的開發工具,那就就是我們的團隊協作工具的學習。

          1、團隊協作開發
          2、Git
          3、Maven
          4、Jenkins
          5、Sonar

          如果不結合實戰,那么說什么都是空話,來看看B2C商城項目實戰。當你面對Hr的時候,是不是可以跟Ta說你有一個落地的大型互聯網B2C商城項目,你的商城項目是前后端分離的,用到了ZooKeep,Redis,Monggodb等等一些熱門的技術,這樣子是否會顯得更有逼格呢?
          1、系統設計
          2、用戶管理子系統
          3、商品管理子系統
          4、搜索子系統
          5、訂單子系統
          6、支付系統
          7、分布式調度系統
          8、后臺系統

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲欧美性综合在线 | 日韩精品另类图区中文字幕 | 亚洲欧美久久一区二区 | 在线播放亚洲人成电影 | 一本久道久久综合婷婷日韩 | 精品国产丁香五月天在线观看 |