十年資深架構師告訴Java程式設計師成為架構師必須要掌握的知識點

NO IMAGE
一、分散式架構
分散式架構是 分散式計算技術的應用和工具,目前成熟的技術包括J2EE, CORBA和.NET(DCOM),這些技術牽扯的內容非常廣,並不是一兩句話就能說清楚的。因此想了解分散式知識點的可以關注我的VX公眾號:“Java架構師學習”。或者進群:688583154獲取免費的視訊錄影學習:Java工程化、高效能及分散式、深入淺出。效能調優、Spring,MyBatis,Netty原始碼分析
二、工程化專題
1、Maven
在如今的網際網路專案開發當中,特別是Java領域,可以說Maven隨處可見。Maven的倉庫管理、依賴管理、繼承和聚合等特性為專案的構建提供了一整套完善的解決方案,可以說如果你搞不懂Maven,那麼一個多模組的專案足以讓你頭疼,依賴衝突就會讓你不知所措,甚至搞不清楚專案是如何執行起來的
2、Git
一個專業的程式設計師,怎麼能不掌握Git呢?版本控制領域,已經發展了一段時間,從古老的CVS,到SVN集中式管理,再到現在的Git。由於Git的分散式、everything is local、分支等諸多特性,讓越來越多的專案開始從SVN遷移到Git進行管理。
3、Jenkins
Jenkins是一個開源的持續整合工具,應用Jenkins搭建持續整合環境,可以進行自動構建、自動編譯和部署,非常方便。
在伺服器比較少的情況下,Jenkins的優勢並不明顯,但是隨著專案發展,伺服器數量的增加,Jenkins的優勢就會凸顯出來,可以很好的提高效率,減少很多人工操作。
公司的專案自動自動化部署是採用 Jenkins,並且編寫自動構建的shell指令碼。
由於專案是前後端分離,前端和後端都是單獨部署的, 後端 採用 JAVA編寫,使用Maven管理多模組和專案依賴, 前段使用 npm 管理專案元件依賴, webpack進行打包。
4、Sonar
Sonar是一個用於程式碼質量管理的開源平臺,用於管理Java原始碼的質量。通過外掛機制,Sonar 可以整合不同的測試工具,程式碼分析工具,以及持續整合工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通過不同的外掛對這些結果進行再加工處理,通過量化的方式度量程式碼質量的變化,從而可以方便地對不同規模和種類的工程進行程式碼質量管理。
同時 Sonar 還對大量的持續整合工具提供了介面支援,可以很方便地在持續整合中使用 Sonar。
此外,Sonar 的外掛還可以對 Java 以外的其他程式語言提供支援,對國際化以及報告文件化也有良好的支援。
三、微服務架構
1、微框架
微服務架構(MSA)是一種架構概念,旨在通過將功能分解到各個離散的服務中以實現對解決方案的解耦。你可以將其看作是在架構層次而非獲取服務的類上應用很多SOLID原則。 用通俗的話來講,就是為了高度解耦軟體之間的依賴性,使每個獨立的模組都能夠單獨測試,單獨運維,最大限度的提高軟體的開發流程。
2、Docker虛擬化
Docker有著小巧、遷移部署快速、執行高效等特點,但隔離性比伺服器虛擬化差:不同的集裝箱屬於不同的運單(Docker上執行不同的應用例項),相互獨立(隔離)。但由同一個庫管人員管理(主機作業系統核心),因此通過庫管人員可以看到所有集裝箱的相關資訊(因為共享作業系統核心,因此相關資訊會共享)。
四、效能優化
效能優化,簡而言之,就是在不影響系統執行正確性的前提下,使之執行地更快,完成特定功能所需的時間更短。效能問題永遠是永恆的主題之一,而優化則更需要技巧。
五、原始碼分析
原始碼主要功用有如下2種作用:
1.生成目的碼,即計算機可以識別的程式碼。
2.對軟體進行說明,即對軟體的編寫進行說明。為數不少的初學者,甚至少數有經驗的程式設計師都忽視軟體說明的編寫,因為這部分雖然不會在生成的程式中直接顯示,也不參與編譯。但是說明對軟體的學習、分享、維護和軟體複用都有巨大的好處
我們在寫程式時,有不少時間都是在看別人的程式碼。
例如看小組的程式碼,看小組整合的守則,若一開始沒規劃怎麼看,不管是參考也好,從開源抓下來研究也好,為了瞭解箇中含意,在有限的時間下,不免會對龐大的原始碼解讀感到壓力。
六、專案實戰
專案實戰,為你的簡歷鍍金,系統的幫你梳理知識體系。想了解這些知識點可以可以關注我的VX公眾號:“Java架構師學習”。或者進群:688583154獲取免費的視訊錄影學習:Java工程化、高效能及分散式、深入淺出。效能調優、Spring,MyBatis,Netty原始碼分析