什麼是架構以及架構的分類

寫這篇文章的目的是弄明白到底什麼是架構,我們在開發設計過程中會遇到各種各樣的圖,到底哪些是屬於架構圖?別人讓你畫架構圖的時候,你要知道你畫的到底是不是架構圖,怎麼畫架構圖。

一、什麼是架構

把一個整體(完成人類生存的所有工作)切分成不同的部分(分工),由不同角色來完成這些分工,並通過建立不同部分相互溝通的機制,使得這些部分能夠有機的結合爲一個整體,並完成這個整體所需要的所有活動,這就是架構。

  1. 邊界劃分:根據要解決的問題,對目標系統的邊界進行界定。
  2. 能力劃分:對目標系統按某個原則的進行切分。切分的原則,要便於不同的角色,對切分出來的部分,並行或串行開展工作,一般並行才能減少時間。
  3. 交互機制:並對這些切分出來的部分,設立溝通機制。
  4. 根據3,使得這些部分之間能夠進行有機的聯繫,合併組裝成爲一個整體,完成目標系統的所有工作

二、架構的分類

架構可以分爲:業務架構、應用架構、數據架構和技術架構,整體邏輯關係如下:
在這裏插入圖片描述

  1. 業務(邏輯)架構:使用一套方法論對產品(項目)所涉及到的需求的業務進行業務邊界劃分,簡單的講就是根據一套邏輯思路進行業務的拆分,總體原則是對業務進行業務邊界的劃分,比如做一個企業訂購服務網站,你需要把商品類目、商品、訂單、訂單服務、支付、退款很清晰的劃分出來,而業務架構不需要考慮諸如我用什麼技術開發、我的併發大怎麼辦、我選擇什麼樣的硬件等等。
    在這裏插入圖片描述
  2. 應用架構:應用是介於業務語言與技術語言之間,是對整個系統實現的總體上的架構,他需要指出系統的層次、系統開發的原則、系統各個層次的應用服務,例如,上述系統中可以分爲、數據層(資源層)、數據服務層、中間構建服務層、業務邏輯層、表現層,並寫明每個層次應用服務。應用架構是要說明產品架構分哪些應用系統,應用系統間是如何集成的,考慮兩個事情:第一、考慮的是子系統間的關係。第二、考慮將可複用的組件或模塊進行下沉,沉澱到平臺層,爲業務組件提供統一的支撐。
    在這裏插入圖片描述
  3. 數據(持久化)架構:對存儲數據(資源)的架構方法論,其架構原則同應用架構大同小異,即考慮到各個系統應用場景、不同時間段的應用場景對數據進行諸如數據異構、讀寫分離、數據庫或NOSQL的策略、緩存的使用、分佈式數據(數據庫)策略等等。 數據架構主要解決三個問題:第一,系統需要什麼樣的數據;第二,如何存儲這些數據;第三,如何進行數據架構設計。
    在這裏插入圖片描述
  4. 技術架構:應用架構本身只關心需要哪些應用系統,哪些平臺來滿足業務目標的需求,而不會關心在整個構建過程中你需要使用哪些技術。技術架構是應接應用架構的技術需求,並根據識別的技術需求,進行技術選型,把各個關鍵技術和技術之間的關係描述清楚。技術架構解決的問題包括:如何進行純技術層面的分層、開發框架的選擇、開發語言的選擇、涉及非功能性需求的技術選擇。
    在這裏插入圖片描述

總體來看,首先需要熟悉業務,形成業務架構,根據業務架構,做出相應的數據架構和應用架構,最後通過技術架構落地實施。業務架構是戰略,應用架構是承上啓下,一方面承接業務架構的落地,另一方面影響技術架構的選型。如何針對當前需求,選擇合適的架構,如何面向未來,保證架構平滑過渡,這個是軟件開發者,特別是架構師,都需要深入思考的問題。

沒有最優的架構,只有最合適的架構,一切系統設計原則都要以解決業務問題爲最終目標,脫離實際業務的技術情懷架構往往是空中樓閣。

說明:以上圖片來自下邊參考文章中。

參考文檔:
https://blog.csdn.net/u010486495/article/details/79650505
https://blog.csdn.net/weixin_37625953/article/details/80141430
https://blog.csdn.net/enweitech/article/details/80505082
https://mp.weixin.qq.com/s/FnyubN7IfPL4POrQYSbAyw
https://terrastruct.com/blog/10-tips-diagrams-system-design-interview/
https://blog.csdn.net/ITLearnHall/article/details/82985480
https://hyperj.net/note.data-management/data-architecture/
https://www.infoq.cn/article/ZzI05OBgks2kspUWa5y7
https://www.infoq.cn/article/RQDwWxDcwbxtwU8LBFSG

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章