關於架構的思考之一 架構的定義及目的

2021-09-23 13:16:52 字數 1967 閱讀 2575

目錄

架構的定義

架構設計目的是什麼?

如何做架構分析

軟體架構指軟體系統的頂層結構。

架構涉及系統、子系統、模組和元件各部分。

參考rup的4+1檢視:

用例檢視(use cases view),最初稱為場景檢視,關注終端使用者需求,為整個技術架構的上線文環境.通常用uml用例圖和活**描述。

邏輯檢視(logical view),主要是整個系統的抽象結構表述,關注系統提供終端使用者的功能,不涉及具體的編譯即輸出和部署,通常在uml中用類圖,互動圖,時序圖來表述,類似與我們採用ooa的物件模型

處理檢視(process view)處理檢視關注系統動態執行時,主要是程序以及相關的併發、同步、通訊等問題。處理檢視和開發檢視的關係:開發檢視一般偏重程式包在編譯時期的靜態依賴關係,而這些程式執行起來之後會表現為物件、執行緒、程序,處理檢視比較關注的正是這些執行時單元的互動問題,在uml中通常用活**表述。

物理檢視(physical view )物理檢視通常也叫做部署檢視(deploymentview),是從系統工程師解讀系統,關注軟體的物流拓撲結,以及如何部署機器和網路來配合軟體系統的可靠性、可伸縮性等要求。物理檢視和處理檢視的關係:處理檢視特別關注目標程式的動態執**況,而物理檢視重視目標程式的靜態位置問題;物理檢視是綜合考慮軟體系統和整個it系統相互影響的架構檢視。

開發檢視(development view),描述軟體在開發環境下的靜態組織,從程式實現人員的角度透視系統,也叫做實現檢視(implementation view)。開發檢視關注程式包,不僅包括要編寫的源程式,還包括可以直接使用的第三方sdk和現成框架、類庫,以及開發的系統將執行於其上的系統軟體或中介軟體, 在uml中用元件圖,包圖來表述。開發檢視和邏輯檢視之間可能存在一定的對映關係:比如邏輯層一般會對映到多個程式包等。

架構設計的主要目的是為了解決軟體系統複雜度帶來的問題。

架構設計的關鍵思維是判斷和取捨,程式設計的關鍵思維是邏輯和實現。

首先,做到心中有數,而不是一頭霧水。

通過熟悉和理解需求,識別系統複雜性所在的地方,然後針對這些複雜點進行架構設計。

架構設計並不是要面面俱到,不需要每個架構都具備高效能、高可用、高擴充套件等特點,而是要識別出複雜點然後有針對性地解決問題。

理解每個架構方案背後所需要解決的複雜點,然後才能對比自己的業務複雜點,參考複雜點相似的方案。

其次,關注系統的複雜度,有的放矢,而不是貪大求全。

比如系統瓶頸在於效能,才追求tps 能做到幾萬幾十 萬。

比如系統瓶頸在於業務,根據業務搭建架構。

比如系統瓶頸在於解決資源重用和動態分配,可以引入docker 。

效能:根據使用者人數以及訪問量qps分析,選型資料庫(mysql?),web 伺服器(nginx?)是否使用快取性等。

可擴充套件性:分析系統的功能是否穩定,可擴充套件的空間,可擴充套件性複雜度。

高可用:系統宕機 幾 小時,對使用者工作影響,決定做不做負載均衡,是否考慮異地多活

高可靠:考慮多種異常情況:機器故障、機房故障,針對機器故障,是否需要設計資料庫同機房主備方案;針對機房故障,我們需要設計 資料庫跨機房同步方案。

安全性:系統儲存的資訊是否有一定的私隱性,是不是和金融相關的,是否包含強隱私(例如玉照、情感)的資訊,nginx 提供 acl 控制、使用者賬號密碼管理、資料庫訪問許可權控制。

成本:幾台伺服器數量。

一 架構基礎

1.1 系統與子系統 系統 一群有關聯的個體,根據某種規則運作,完成單個元件不能單獨完成的工作能力。1.2 模組與元件 模組 從邏輯的角度來拆分得到的單元。劃分模組的目的是職責分離。元件 從物理的角度來拆分得到的單元。劃分的目的是單元復用。1.3 框架與架構 框架 為了實現元件規範,提供規範的基礎功...

架構學習一 架構概要總覽

架構學習一 架構概要總覽1 架構的主要複雜點 高效能 高可用 可擴充套件 低成本 安全 規模 2 架構設計的目的 根據實際情況,選擇合適的技術方案。一味的套用大公司或者高大上的技術方案是不成熟,大概率會造成異常技術災難。架構設計首先要找到系統的痛點,針對此來進行設計。3 架構設計的主要流程 1 找到...

android 應用架構隨筆一(架構搭建)

1 拷貝積累utils以及pagertab類 3 定義baseactivity類 4 改寫mainactivity 5 定義布局檔案 6 定義basefragment類 7 定義fragmentfactory類 8 定義fragmentfactory類 9 定義子頁fragment 10 定義thr...