架構師之路:一個架構師需要掌握的知識技能

架構師springboot發表於2018-11-29

沒有設計的思想,你就不能成為一名架構師。架構師是一個能擼的了一手好程式碼,畫的了一個漂亮的UML/原型,寫的了一篇技術文件,更加能解決好專案關鍵技術的綜合人才。架構師=前端工程師+後端程式設計師+系統分析師+關鍵技術解決+各種技術搭配+設計模式+部署調優+其他,可見架構師是多面手,在專案當中起到連線管理與專案成員的重要角色。因此,在通往大神級的架構師的道路上,你需要懂需求、設計、程式碼、部署、架構、伺服器、運維、調優等等。

架構師之路:一個架構師需要掌握的知識技能
一個能擔負起企業級應用的架構師,腦海裡常出現的詞會是這些:負載均衡、叢集、分散式、高併發、高可用、易管理等等,粗略說來,應具備以下知識技能:

(1)資料層:重點在於叢集方案的選擇,比如MySQL叢集,叢集方案很多,需要選擇符合業務的方案,比如多主,主備,讀寫分離等等,是否還需要做高可用,是用lvs,還是zookeeper,是否需要例如mycat類中介軟體來管理資料庫或者做資料分片等等。

(2)服務層:時髦一點,選擇dubbo,微服務讓團隊開發耦合度沒有那麼高,各自關心各自的模組,都以服務方式釋出出去。傳統一點用springmvc+restful,在我看來,對於併發不高的系統,沒有必要用dubbo。快取的選擇,涉及到檔案快取、資料庫快取,可以用memcached、ehcache、redis。

(3)應用層:框架太多,ssh,ssm,jfinal等等,選擇適合專案團隊的框架;UI介面,h5很美觀,但對於瀏覽器的相容就把開發人員搞哭了,可以選擇成熟的ext或者easyui,或者最近很流行的node.js

(4)網路層:多數開發人員都不用涉及,能瞭解下f5之類的就好。

(5)部署:是否需要用docker來部署,開源docker容器讓部署輕量化,很容易就可以擴充套件一個節點,對於高併發、伸縮性要求高的場景可以使用。docker的出現,完全可以實現一鍵部署。是否需要負載均衡,可以選擇硬負載(就是前面說的f5),也可以用軟負載(nginx)。軟負載的方案簡單一點可以是apache+tomcat,需要考慮session複製,複雜一點選擇lvs+haproxy。打包釋出,熟練使用maven,能建立自己的maven私服,能指導專案成員使用maven打包釋出。

(6)安全:大多數安全在網路層就解決了,但應用的安全不容忽視,比如需要考慮SQL隱碼攻擊,授權認證,這些目前框架都能解決,重點的安全問題來自框架本身,大多數應用選擇框架都是開源的,如果團隊沒有能力修復漏洞只能等更新。

(7)其它方面:測試(自動化測試),版本管理(git or svn),大資料(奇熱無比),人工智慧(高大上)等等。

有人問,架構師為什麼還要寫程式碼?我認為,需要一如既往的寫,但寫的目標不一樣,理論水平和動手能力需要同時提高。深度方面,注重的設計思想和模式;廣度方面,對於前沿技術,要不懈的追求和鑽研,這樣才能在未來技術架構選型做出合理的決策。

感興趣可以加Java架構師群獲取Java工程化、高效能及分散式、高效能、深入淺出。高架構。效能調優、Spring,MyBatis,Netty原始碼分析和大資料等多個知識點高階進階乾貨的直播免費學習許可權 都是大牛帶飛 讓你少走很多的彎路的 群..號是:855801563 對了 小白勿進 最好是有開發經驗

注:加群要求

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

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

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

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

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

相關文章