架構(gòu)設(shè)計(jì)的 15 個(gè)關(guān)鍵概念
今天給大家?guī)硪环菁軜?gòu)設(shè)計(jì)小抄,包含了系統(tǒng)設(shè)計(jì)的 15 個(gè)核心概念。請(qǐng)保存以備將來參考!
01 需求收集
需求收集是從利益相關(guān)者、用戶和其他相關(guān)方那里收集特定需求和期望的過程,以清晰地定義系統(tǒng)的目標(biāo)。這一步驟對(duì)于確保最終產(chǎn)品滿足其既定目的和用戶需求至關(guān)重要。我們?cè)谒鸭枨髸r(shí),需要搜集功能性需求和非功能性需求(包括性能、高可用、擴(kuò)展性等),并且排出優(yōu)先級(jí)。有效的搜集方法包括訪談、調(diào)查、文檔分析和研討會(huì)。最終這些需求會(huì)以“用戶故事”的形式記錄下來,成為用戶和開發(fā)團(tuán)隊(duì)的需求藍(lán)圖。
02 系統(tǒng)架構(gòu)
系統(tǒng)架構(gòu)是定義系統(tǒng)結(jié)構(gòu)、行為和更多視圖的概念模型。它作為系統(tǒng)的藍(lán)圖,概述了組件、它們之間的關(guān)系以及指導(dǎo)它們?cè)O(shè)計(jì)和演變的準(zhǔn)則。良好的架構(gòu)支持系統(tǒng)的需求,是實(shí)現(xiàn)可擴(kuò)展性、可靠性和性能的基礎(chǔ)。我們需要選擇一個(gè)合適的架構(gòu)風(fēng)格,比如前后端通信使用 REST ,服務(wù)間通信使用 gRPC等。
03 數(shù)據(jù)設(shè)計(jì)
數(shù)據(jù)設(shè)計(jì)專注于數(shù)據(jù)元素的結(jié)構(gòu)化以及高效存儲(chǔ)、管理和檢索數(shù)據(jù)的模式定義。它涉及定義數(shù)據(jù)類型、關(guān)系和約束,以確保數(shù)據(jù)完整性并與系統(tǒng)的需求保持一致。有效的數(shù)據(jù)設(shè)計(jì)優(yōu)化性能并支持可擴(kuò)展性和可靠性。根據(jù)數(shù)據(jù)模型和存儲(chǔ)的需求,我們要選擇合適的數(shù)據(jù)庫,并定義符合監(jiān)管要求和業(yè)務(wù)要求的留存規(guī)則。比如監(jiān)管可能要求所有交易信息需保留 3 年以便問詢。
04 領(lǐng)域設(shè)計(jì)
領(lǐng)域設(shè)計(jì),或領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(DDD),涉及對(duì)系統(tǒng)的業(yè)務(wù)領(lǐng)域進(jìn)行建模,以創(chuàng)建對(duì)問題空間的豐富、可理解的模型。它強(qiáng)調(diào)技術(shù)專家和領(lǐng)域?qū)<抑g的合作,確保系統(tǒng)準(zhǔn)確反映并解決領(lǐng)域的復(fù)雜性。這一步對(duì)于降低系統(tǒng)整體復(fù)雜性尤為重要,好的設(shè)計(jì)使得領(lǐng)域之間的耦合降低,而領(lǐng)域內(nèi)部高聚合。
05 可擴(kuò)展性
可擴(kuò)展性是系統(tǒng)在不影響性能的情況下處理增加負(fù)載的能力,可以通過增加單個(gè)節(jié)點(diǎn)的資源(Scale Up)或增加更多節(jié)點(diǎn)(Scale Out)來實(shí)現(xiàn)。設(shè)計(jì)可擴(kuò)展性涉及無狀態(tài)架構(gòu)、分布式系統(tǒng)原則和數(shù)據(jù)分區(qū)策略等考慮因素。為了更好地管理增加的節(jié)點(diǎn),我們通常需要使用負(fù)載均衡,并且處理好節(jié)點(diǎn)的冷啟動(dòng)。
06 可靠性
可靠性指的是系統(tǒng)正確且持續(xù)運(yùn)行的能力。它包括容錯(cuò)、冗余和故障轉(zhuǎn)移機(jī)制,以確保系統(tǒng)在硬件故障、軟件缺陷或外部干擾的情況下仍然運(yùn)行且數(shù)據(jù)完整性得到維護(hù)。
07 可用性
可用性衡量系統(tǒng)正確運(yùn)行的情況。通過冗余、故障轉(zhuǎn)移系統(tǒng)和強(qiáng)大的基礎(chǔ)設(shè)施實(shí)現(xiàn)高可用性,這些措施最大限度地減少停機(jī)時(shí)間,并確保用戶在需要時(shí)可以訪問系統(tǒng)。它通常以正常運(yùn)行時(shí)間的百分比來量化。
08 性能
系統(tǒng)設(shè)計(jì)中的性能指的是系統(tǒng)在給定負(fù)載下的響應(yīng)性和吞吐量。它涉及優(yōu)化代碼、高效的數(shù)據(jù)訪問模式、緩存策略以及選擇合適的硬件和軟件以滿足速度和效率要求。
09 安全性
系統(tǒng)設(shè)計(jì)中的安全性確保數(shù)據(jù)的保密性、完整性和可用性。它包括采取措施防止未經(jīng)授權(quán)的訪問、數(shù)據(jù)泄露和其他網(wǎng)絡(luò)威脅。這包括加密、認(rèn)證、授權(quán)和定期的安全評(píng)估。
10 可維護(hù)性
可維護(hù)性是指系統(tǒng)易于修改以添加功能、修復(fù)缺陷或改善性能的程度。通過清晰、良好文檔化的代碼、遵循設(shè)計(jì)原則和模塊化架構(gòu)來實(shí)現(xiàn)高可維護(hù)性,這允許輕松進(jìn)行更新和升級(jí)。
11 測試
測試涉及驗(yàn)證系統(tǒng)是否滿足其要求并按預(yù)期工作。它包括單元測試、集成測試、系統(tǒng)測試、性能測試、安全測試等一系列測試,每種測試都針對(duì)系統(tǒng)的不同層級(jí)。有效的測試在部署前識(shí)別出錯(cuò)誤和問題,確保質(zhì)量和可靠性。
12 用戶體驗(yàn)設(shè)計(jì)
用戶體驗(yàn)設(shè)計(jì)(UX)專注于確保系統(tǒng)用戶友好、直觀并滿足用戶的需求和期望。它涉及用戶研究、可用性測試和交互設(shè)計(jì),以創(chuàng)建為用戶提供無縫且滿意體驗(yàn)的產(chǎn)品。
13 成本估算
成本估算涉及預(yù)測開發(fā)、部署和維護(hù)系統(tǒng)所需的財(cái)務(wù)資源。它考慮了硬件、軟件、人員、培訓(xùn)和運(yùn)營成本等因素。準(zhǔn)確的成本估算有助于預(yù)算和資源分配。
14 文檔
文檔提供有關(guān)系統(tǒng)設(shè)計(jì)、功能和使用的書面詳細(xì)信息和解釋。它對(duì)于維護(hù)、故障排除和升級(jí)系統(tǒng)以及培訓(xùn)新用戶和開發(fā)人員至關(guān)重要。文檔應(yīng)該清晰、全面且保持最新。
15 遷移計(jì)劃
遷移計(jì)劃概述了以最小化中斷將系統(tǒng)從舊系統(tǒng)遷移到新系統(tǒng)的策略。它包括數(shù)據(jù)遷移、系統(tǒng)測試、用戶培訓(xùn)和出現(xiàn)問題時(shí)的回滾程序的步驟。有效的遷移計(jì)劃確保平穩(wěn)過渡并減少數(shù)據(jù)丟失或停機(jī)的風(fēng)險(xiǎn)。