漫畫:什麼是架構師
轉載自 什麼是架構師?
架構師英文architect,這個詞源於建築學。軟體工程當中的架構師和建築工程當中建築師有許多相通之處,都是負責“產品”巨集觀的架構設計。
在一個團隊裡,架構師充當了技術Leader的角色,不僅要完成專案的整體設計和規劃,還要帶領技術團隊一起解決實際問題,攻克技術難點,使得軟體的設計、開發、測試、釋出流程得以順利完成。
下面這張圖,表達了一個應用架構師(技術Leader)在團隊當中的角色:
需要注意的是,這張圖中的架構師只是應用架構師,所以運維和DBA人員沒有歸入到他的管轄範圍。同時,每個公司的具體組織結構也不盡相同。
架構師都做些什麼?
1.架構設計
架構師,顧名思義,第一職責就是在軟體設計階段,做好軟體“骨架”的設計。架構師需要把產品的需求翻譯成軟體工程的設計文件,確定各個系統與模組的邊界,評估系統的量級。
2.技術選型
從前端到後端,從快取到資料庫,面對為數眾多的第三方元件,架構師需要作出合理的選擇。
前端頁面選擇模板引擎還是動靜分離?
服務端選擇Java還是Node.js?
服務治理選擇DubboX還是Spring Cloud?
訊息佇列選擇RocketMQ還是Kafka?
分散式快取選擇Redis Cluster 還是 Codis?
資料庫選擇Mysql還是Oracle?
全文檢索選擇Solr還是ES?
技術沒有絕對的好壞之分,關鍵看是否適用於公司的業務場景。
3.管理非功能性需求
滿足需求是專案開發和架構設計的根本,而管理非功能性需求則是專案的昇華。
在公司從0到1的創業階段,開發者更關注的是功能性需求,往往一個簡單粗暴的MVC專案就可以搞定一切。當業務量級逐漸增大,使用者需求逐漸多樣化,非功能性需求的重要性就逐漸顯現。
非功能性需求都包含哪些內容呢?
效能(響應時間)
可擴充套件性(適應需求的快速變化)
可用性 (四個9,五個9,必要時的限流和降級)
安全性(防範各種惡意攻擊,實現風控)
可監控(完善的監控和報警機制)
靈活性(便於非開發人員進行配置)
可維護(持續整合,持續部署)
國際化(衝出國門)
4.攻克技術難題
架構師不只需要關注巨集觀的設計,也需要具有攻克技術細節的能力。在團隊開發過程中遇到難以實現和優化的技術問題時,架構師需要發揮技術優勢,解決系統的疑難雜症。
5.技術人員的管理和指導
架構師不只是一個技術大牛,也應該是一個好的管理者,在工作中需要把較大的專案和需求拆分一個個Story,依照每個人的情況分配給研發團隊的成員,並且在必要的時候進行技術上的培訓指導。
架構師都有哪些種類?
1.應用架構師
應用架構師是行業中數量最多的架構師,主要負責公司產品的技術架構。產品架構師需要對業務有足夠的理解,根據產品需求設計架構,在運營團隊的協助下評估量級,並管理專案的整個生命週期。
2.中介軟體架構師
中介軟體架構師主要負責基礎框架、公共元件,通用服務的搭建。比如分散式服務框架諸如Dubbo,HSF;比如訊息佇列諸如 RocketMQ,Kafka。在大型網際網路公司中,往往不是把開源框架簡單“拿來”,而是研發出符合自身業務的企業中介軟體。
3.基礎設施架構師
基礎設施架構師負責伺服器資源、網路資源、資料庫等基礎設施的建設;以及持續整合工具、持續部署工具的搭建。
以上所說的三種,只是架構師最基本的分類。一些特殊領域也有著專門的架構師,比如網路安全架構師、大資料架構師等等。
怎樣才能成為架構師?
1.技術的深度和廣度
有一句話說得好,將軍就是更優秀的士兵。架構師作為程式設計師中的將軍,首先需要有足夠的技術深度,同時需要廣泛瞭解行業內的主流技術,以便更好地設計架構和技術選型。
2.業務的理解
拋開業務談架構就是耍流氓。這一點對應用架構師來說尤其重要。只有對業務有了充分的理解,才能對專案的設計和擴充套件做出合理的規劃。
3.良好的溝通能力
架構師不只是低頭做技術,更需要協調指揮團隊內的成員,也需要跨部門和產品、運營、專案經理等人員做及時有效的溝通,所以溝通能力是必不可少的。
什麼是架構師?
架構師英文architect,這個詞源於建築學。軟體工程當中的架構師和建築工程當中建築師有許多相通之處,都是負責“產品”巨集觀的架構設計。
在一個團隊裡,架構師充當了技術Leader的角色,不僅要完成專案的整體設計和規劃,還要帶領技術團隊一起解決實際問題,攻克技術難點,使得軟體的設計、開發、測試、釋出流程得以順利完成。
下面這張圖,表達了一個應用架構師(技術Leader)在團隊當中的角色:
需要注意的是,這張圖中的架構師只是應用架構師,所以運維和DBA人員沒有歸入到他的管轄範圍。同時,每個公司的具體組織結構也不盡相同。
架構師都做些什麼?
1.架構設計
架構師,顧名思義,第一職責就是在軟體設計階段,做好軟體“骨架”的設計。架構師需要把產品的需求翻譯成軟體工程的設計文件,確定各個系統與模組的邊界,評估系統的量級。
2.技術選型
從前端到後端,從快取到資料庫,面對為數眾多的第三方元件,架構師需要作出合理的選擇。
前端頁面選擇模板引擎還是動靜分離?
服務端選擇Java還是Node.js?
服務治理選擇DubboX還是Spring Cloud?
訊息佇列選擇RocketMQ還是Kafka?
分散式快取選擇Redis Cluster 還是 Codis?
資料庫選擇Mysql還是Oracle?
全文檢索選擇Solr還是ES?
技術沒有絕對的好壞之分,關鍵看是否適用於公司的業務場景。
3.管理非功能性需求
滿足需求是專案開發和架構設計的根本,而管理非功能性需求則是專案的昇華。
在公司從0到1的創業階段,開發者更關注的是功能性需求,往往一個簡單粗暴的MVC專案就可以搞定一切。當業務量級逐漸增大,使用者需求逐漸多樣化,非功能性需求的重要性就逐漸顯現。
非功能性需求都包含哪些內容呢?
效能(響應時間)
可擴充套件性(適應需求的快速變化)
可用性 (四個9,五個9,必要時的限流和降級)
安全性(防範各種惡意攻擊,實現風控)
可監控(完善的監控和報警機制)
靈活性(便於非開發人員進行配置)
可維護(持續整合,持續部署)
國際化(衝出國門)
4.攻克技術難題
架構師不只需要關注巨集觀的設計,也需要具有攻克技術細節的能力。在團隊開發過程中遇到難以實現和優化的技術問題時,架構師需要發揮技術優勢,解決系統的疑難雜症。
5.技術人員的管理和指導
架構師不只是一個技術大牛,也應該是一個好的管理者,在工作中需要把較大的專案和需求拆分一個個Story,依照每個人的情況分配給研發團隊的成員,並且在必要的時候進行技術上的培訓指導。
架構師都有哪些種類?
1.應用架構師
應用架構師是行業中數量最多的架構師,主要負責公司產品的技術架構。產品架構師需要對業務有足夠的理解,根據產品需求設計架構,在運營團隊的協助下評估量級,並管理專案的整個生命週期。
2.中介軟體架構師
中介軟體架構師主要負責基礎框架、公共元件,通用服務的搭建。比如分散式服務框架諸如Dubbo,HSF;比如訊息佇列諸如 RocketMQ,Kafka。在大型網際網路公司中,往往不是把開源框架簡單“拿來”,而是研發出符合自身業務的企業中介軟體。
3.基礎設施架構師
基礎設施架構師負責伺服器資源、網路資源、資料庫等基礎設施的建設;以及持續整合工具、持續部署工具的搭建。
以上所說的三種,只是架構師最基本的分類。一些特殊領域也有著專門的架構師,比如網路安全架構師、大資料架構師等等。
怎樣才能成為架構師?
1.技術的深度和廣度
有一句話說得好,將軍就是更優秀的士兵。架構師作為程式設計師中的將軍,首先需要有足夠的技術深度,同時需要廣泛瞭解行業內的主流技術,以便更好地設計架構和技術選型。
2.業務的理解
拋開業務談架構就是耍流氓。這一點對應用架構師來說尤其重要。只有對業務有了充分的理解,才能對專案的設計和擴充套件做出合理的規劃。
3.良好的溝通能力
架構師不只是低頭做技術,更需要協調指揮團隊內的成員,也需要跨部門和產品、運營、專案經理等人員做及時有效的溝通,所以溝通能力是必不可少的。
相關文章
- 漫畫:什麼是機器學習機器學習
- 什麼是架構師架構
- 漫畫 | 程式設計師的悲哀是什麼?程式設計師
- 漫畫版:什麼是機器學習?機器學習
- 漫畫:什麼是氣泡排序?排序
- 漫畫:什麼是計數排序?排序
- 漫畫:什麼是單例模式?單例模式
- 漫畫 | 什麼是區塊鏈?區塊鏈
- 漫畫:什麼是大資料?大資料
- 漫畫:什麼是人工智慧人工智慧
- 架構C01: 什麼是架構?為什麼做架構?架構師需要做什麼?架構
- 漫畫版:什麼是深度學習?深度學習
- 漫畫版:什麼是人工智慧?人工智慧
- 漫畫:什麼是LRU演算法?演算法
- 漫畫:什麼是HashMap?(底層原理)HashMap
- 漫畫:容器技術docker是什麼?Docker
- 漫畫:什麼是動態規劃?動態規劃
- 漫畫版:什麼是神經網路?神經網路
- 漫畫演算法:什麼是 B 樹?演算法
- 什麼是企業架構師? (tpierrain)架構AI
- 什麼是軟體測試架構師架構
- 架構師的定義是什麼?架構師需要具備哪些能力?架構
- 用漫畫的形式展現——什麼是webWeb
- 漫畫演算法:什麼是跳躍表?演算法
- 漫畫:為什麼不能打斷程式設計師?程式設計師
- 什麼是Lambda架構架構
- VIE架構是什麼架構
- 什麼是Saas架構?架構
- DCI架構是什麼?架構
- 概念架構是什麼架構
- 什麼是池架構?架構
- 漫畫 | 到底是什麼讓IT人如此苦逼???
- 你和架構師的的區別是什麼?架構
- [原創]測試架構師是做什麼的?架構
- 漫畫:為什麼程式設計師會死不瞑目程式設計師
- 漫畫演算法:輾轉相除法是什麼鬼?演算法
- Android 什麼是架構?Android架構
- 請問是什麼架構架構