首頁>Club>
小白,想成為一名java架構師,求學習路線和書籍推薦
8
回覆列表
  • 1 # 會點程式碼的大叔

    每一個架構師都是從小白成長過來的,IT是個努力回報比很高行業,只要勤奮努力,在稍加方法,你還是會實現你的目標的。

    自己的經驗總結一下,優秀的架構師應該從三個方面提升自己:

    廣度

    架構師是一個比較有挑戰的職位,如果你的知識面過窄的話,會限制你的能力。

    你應該對你所在的領域的各項技術都有一定的瞭解,比如四年前我還在上一家單位的時候,是一個【偽架構】,一個功能需要快取大量資料,我自己開發了一個功能,知識面稍微廣一些的人,都知道可以用Redis解決。

    對每一項技術不一定有深入的瞭解,但是最好能知道:這項技術是用來解決什麼問題的?優缺點是什麼?適用場景是什麼?

    這裡的廣度甚至不侷限於技術,包括你的業務知識、溝通能力、演講能力等等。

    深度

    廣度裡面說了,對每一項技術不一定有深入的瞭解,但是核心技術和主流技術,最好有較為深入的理解:對主流技術的原理有一個基本的理解;至少要對兩三門技術有著原始碼級的研究。

    高度

    到了架構師這個級別,處理問題應該可以站在一定的高度去考慮了。一是可以把複雜的業務邏輯抽象成業務實體;另外一方面,把複雜的技術分層,服務化和元件化,並能夠為服務和服務之間、元件和元件之間建立好合理的“關係”。

  • 2 # 千鋒青島

    在Java程式設計師行業中,有不少Java開發人員的理想是成為一名優秀的Java架構師,Java架構師的主要任務不是從事具體的軟體程式的編寫,而是從事更高層次的開發構架工作。他必須對開發技術非常瞭解,並且需要有良好的組織管理能力。可以這樣說,一個Java架構師工作的好壞決定了整個軟體開發專案的成敗。那麼Java架構師需要掌握哪些知識點呢?

    1、框架原始碼分析

    設計模式:Singleton單例模式,Factory工廠模式,Proxy代理模式,Template模板模式,Prototype原型模式等

    Spring5:Spring提醒結構,IOC注入原理,AOP設計原理,Spring事務處理機制,SpringMVC,Spring原始碼分析。

    Mybatis:Mybatis體系結構,Mybatis核心應用與配置,Mybatis關聯查詢,與Spring整合,Mybatis原始碼分析。

    2、效能最佳化

    JVM效能最佳化:剖析JVM整體結構,詳解垃圾回收機制GC,JVM效能調優與工具排查

    Nginx調優:Nginx專案架構,Nginx核心配置,Nginx負載演算法配置

    Tomcat調優:Tomcat執行機制及框架,Tomcat執行緒模型,Tomcat效能調優

    MySQL效能最佳化:SQL執行計劃,AQL最佳化,索引最佳化。

    3、掌握池技術

    物件池,連線池,執行緒池,Java反射技術,寫框架必備的技術,但是有嚴重的效能問題,替代方案Java位元組碼技術。

    4、掌握nio,值得注意的是“直接記憶體”的特點,使用場景。

    5、掌握Java多執行緒同步非同步。

    6、掌握Java各種集合物件的實現原理,瞭解這些可以讓你在解決問題時選擇合適的資料結構,高效的解決問題。

    7、熟練使用各種資料結構和演算法,陣列、雜湊、連結串列、排序樹……就是一句話要麼是時間換空間要麼是空間換時間。

    8、熟悉tcp協議,建立連線三次握手和斷開連線四次握手的整個過程,不瞭解的話,無法對高併發網路應用做最佳化。

    9、熟悉http協議,尤其是http頭,我發現好多工作五年以上的都弄不清session和cookie的生命週期以及它們之間的關聯。

    10、熟悉系統叢集、負載均衡、反向代理、動靜分離,網站靜態化。

    11、掌握分散式。

    Java併發程式設計和網路程式設計:Java執行緒狀態,執行緒池,執行緒通訊,執行緒安全,Netty高效能原理

    分散式開發框架:分散式系統口呼叫技術:RPC,Apache分散式系統Zookeeper原理與應用,阿里Dubbo設計思想與應用

    分散式中介軟體:分散式伺服器治理,分散式訊息通訊,分散式資料快取,MongoDB企業叢集解決方案

    12、掌握資料庫的設計能力,對它基本的引數最佳化,慢查詢日誌分析,主從複製的配置,至少要成為半個mysqldba。

  • 3 # 千鋒武漢

    一般來講,Java架構師是一個比較全面的職位,它既需要學習Java開發工具、效能最佳化、原始碼分析、分散式架構、微服務架構和多執行緒併發程式設計等基礎技術,又需要有組織能力和提出解決方案的能力。

    因此能力越大工資也越高,普通的Java架構師一年三、四十萬沒有問題,當然乾的更好的Java架構師的薪資待遇遠遠不止如此。

    下面,我詳細說說一名Java程式設計師如何成為一名Java架構師?

    Java架構師學習路線

    首先我們先來看一下Java架構師需要掌握什麼樣的技能。換句話說,如何成為一步步從普通的Java程式設計師成為Java架構師大神。第一階段要閱讀原始碼,分析原始碼知識點。只有結合Spring5和MyBatis原始碼,才能理解框架思維,找到分析原始碼的切入點,進行一次巨大的提升。

    第二階段是學習分散式架構。大家必須透徹理解分散式架構的好處和必然性,適應市場需求,才能夠找到更大更好的發展平臺,提升自己的綜合技術能力和薪資。從布式架構原理,到分散式架構策略,再到分散式架構中介軟體,最後在加上分散式架構實戰,讓程式設計師可以在技術深度和技術廣度上得到飛躍的提升,成為網際網路行業所需要的T型人才。

    第三個階段學習微服務架構技能。要知道隨著業務的發展,程式碼量的膨脹和團隊成員的增加,傳統單體式架構的弊端越來越凸顯,嚴重製約了業務的快速創新和敏捷交付。為了解決傳統單體架構面臨的挑戰,先後演進出了SOA服務化架構、RPC框架、分散式服務框架,最後就是當今非常流行的微服務架構。因此掌握了微服務架構技能,也就掌握了Java架構的必備技能,也是提升薪資的重要技能之一。

    第四個階段是學習併發程式設計。從Java基礎接觸多執行緒,到分散式架構環境下的高併發訪問,併發程式設計充分利用好各個伺服器處理器,以最高的效率處理各個任務協同有序工作。因為它的重要性,Java架構師也必須熟練掌握它。

    第五階段就是學習效能最佳化。效能一直是讓程式設計師比較頭疼的問題。當系統架構變得複雜而龐大之後,效能方面就會下降,如果想成為一名優秀的架構師,效能最佳化就是你必須思考的問題。所以效能最佳化專題從JVM底層原理到記憶體最佳化再到各個中介軟體的效能調優,比如Tomcat調優,MySQL調優等,讓你洞悉效能本質,全面認識效能最佳化,你的薪資也會有一個較大的提升。

    第六階段就是了解Java開發的常用工具。一名優秀的架構師必須有適合自己的兵器,也就是工欲善其事必先利其器,不管是小白,還是資深開發,都需要先選擇好的工具。工程化專題的學習能幫助你和團隊提升開發效率,讓自己有更多時間來思考。像Git、Maven、Jenkins、Sonar等開發工具都能夠提升程式碼的質量,更加高效地提升開發效率。

    因此Java架構師一般的薪資確實是高於許多行業,這也意味著大家需要更努力地提升自己的能力。無論是有一定基礎的Java開發者還是零基礎想要轉行的人,成為Java架構師都是一份十分有前景的工作,而想要擁有一份高薪且好前途的職業,就需要不斷地學習,補充自己的內在競爭力。

    10本Java架構師必讀書籍

    1、大型網站系統與JAVA中介軟體實踐

    本書圍繞大型網站和支撐大型網站架構的Java中介軟體的實踐展開介紹。

    從分散式系統的知識切入,讓讀者對分散式系統有基本的瞭解;然後介紹大型網站隨著資料量、訪問量增長而發生的架構變遷;接著講述構建Java中介軟體的相關知識;之後的幾章都是根據筆者的經驗來介紹支撐大型網站架構的Java中介軟體系統的設計和實踐。希望讀者透過本書可以瞭解大型網站架構變遷過程中的較為通用的問題和解法,並瞭解構建支撐大型網站的Java中介軟體的實踐經驗。

    對於有一定網站開發、設計經驗,並想了解大型網站架構和支撐這種架構的系統的開發、測試等的相關工程人員,本書有很大的參考意義;對於沒有網站開發設計經驗的人員,透過本書也能宏觀瞭解大型網站的架構及相關問題的解決思路和方案。

    2、大型分散式網站架構設計與實踐

    本書主要介紹了大型分散式網站架構所涉及的一些技術細節,包括SOA架構的實現,網際網路安全架構,構建分散式網站所依賴的基礎設施,系統穩定性保障,海量資料分析等內容,深入地講述了大型分散式網站架構設計的核心原理,並透過一些架構設計的典型案例,幫助讀者瞭解大型分散式網站設計的一些常見場景及遇到的問題。

    3、Web資訊架構設計大型網站

    針對新技術做了全面更新——搭配新穎範例、全新場景及最佳實踐資訊——但是,其焦點依然放在基礎原理上。其結構嚴謹,圖文並貌,內容涵蓋了資訊架構基本原理和實踐應用的方方面面。本書兼具較高的理論價值和實用價值,曾被Web設計領域籍重點推薦,是資訊架構領域公認的經典書籍,不論新手還是專家都能各取所需。

    4、深入分析Java Web技術內幕(修訂版)

    本書新增了淘寶在無線端的應用實踐,包括:CDN動態加速、多終端化改造、多終端Session統一,以及在大流量的情況下,如何跨越效能、網路和一個地區的電力瓶頸等內容,並提供了比較完整的解決方案。

    本書主要圍繞Java Web相關技術從三方面全面、深入地進行了闡述。首先介紹前端知識,即在JavaWeb開發中涉及的一些基本知識,包括Web請求過程、HTTP、DNS技術和CDN技術。其次深入介紹了Java 技術,包括I/O技術、中文編碼問題、Javac 編譯原理、class 檔案結構解析、ClassLoader工作機制及JVM的記憶體管理等。最後介紹了Java服務端技術,主要包括Servlet、Session與Cookie、Tomcat 與Jetty伺服器、Spring容器、iBatis框架和Velocity框架等原理介紹,並介紹了服務端的一些最佳化技術。

    不僅介紹這些技術和框架的工作原理,而且結合示例來講解,透過通俗易懂的文字和豐富、生動的配圖,讓讀者充分並深入理解它們的內部工作原理,同時還結合設計模式來介紹這些技術背後的架構思維。

    5、實用負載均衡技術:網站效能最佳化攻略

    網站負載均衡架構全揭秘,完美應對雲環境及大資料的挑戰,網站效能最佳化必備指南,從整體上來看本書是一本比較好的負載均衡入門書籍,內容也較新(已出版的幾本相關英文著作都較早)。

    本書介紹了處理負載均衡問題的相關概念和工具,說明了如何避免效能退化和伺服器上的服務突然崩潰的風險,闡述了單個伺服器以及可以執行cookie插入或者改善SSL吞吐量的負載均衡器,最後還探討了雲計算中的負載均衡。適合對系統架構、效能維護感興趣的初級、中級讀者以及有經驗的系統架構師和運維師。

    6、高效能網站建設指南

    本書結合Web2.0以來Web開發領域的最新形勢和特點,介紹了網站效能問題的現狀、產生的原因,以及改善或解決效能問題的原則、技術技巧和最佳實踐。重點關注網頁的行為特徵,闡釋最佳化Ajax、CSS、JavaScript、Flash和圖片處理等要素的技術,全面涵蓋瀏覽器端效能問題的方方面面。

    7、高效能電子商務平臺構建:架構、設計與開發

    中國最領先的電商系統解決方案提供商ShopNC官方核心研發團隊撰寫。宏觀介紹電商平臺技術架構,詳細講解各種套件的模組構成、設計思路和程式碼實現,以及電商平臺的介面設計、使用者體驗,為構建安全、可靠、易維護、高效能電商平臺提供完整技術和解決方案。

    8、大規模分散式系統架構與設計實戰

    本書從作者的實戰經驗出發,深入淺出地講解了如何建立一個Hadoop那樣的分散式系統,實現對多臺計算機CPU、記憶體、硬碟的統一利用,從而獲取強大計算能力去解決複雜問題。一般網際網路企業的分散式儲存計算系統都是個大平臺,系統複雜、程式碼龐大,而且只適合公司的業務,工程師很難下載安裝到自己的電腦裡學習和吃透。

    本書對分散式核心技術進行了大量歸納和總結,並從中抽取出一套簡化的框架和程式設計API進行講解,方便工程師瞭解分散式系統的主要技術實現。這不是一本空談概念、四處摘抄的書,這本書包含了大量精煉示例,手把手教你掌握分散式核心技術。

    9、ZeroC Ice權威指南

    本書是業界第一本關於Ice這個知名開源分散式RPC中介軟體的紙質書籍,全書內容涵蓋了分散式系統架構概述、RPC原理、Ice基礎原始碼研讀、高階進階、多語言呼叫、效能調優、SSL安全呼叫、IceGrid運維與開發、分散式部署、移動應用開發實戰等精彩內容。

    10、架構之美

    本書圍繞5個主題領域來組織《架構之美》的內容:概述、企業應用、系統、終使用者應用和程式語言。《架構之美》讓優秀的設計師和架構師來描述他們選擇的軟體架構,剝開架構的各層,展示他們如何讓軟體做到實現功能、可靠、易用、高效率、可維護、可移植和優雅。

    希望以上分享的Java架構師的學習路線及書籍能幫到樓主!

  • 中秋節和大豐收的關聯?
  • 聯合國憲章第55條內容?