精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

什么是架構和架構本質

倩倩 ? 來源:芋道源碼 ? 作者:芋道源碼 ? 2022-09-22 14:18 ? 次閱讀

一. 什么是架構和架構本質

二. 架構分層和分類

一. 什么是架構和架構本質

在軟件行業(yè),對于什么是架構,都有很多的爭論,每個人都有自己的理解。此君說的架構和彼君理解的架構未必是一回事。因此我們在討論架構之前,我們先討論架構的概念定義,概念是人認識這個世界的基礎,并用來溝通的手段,如果對架構概念理解不一樣,那溝通起來自然不順暢。

Linux有架構,MySQL有架構,JVM也有架構,使用Java開發(fā)、MySQL存儲、跑在Linux上的業(yè)務系統(tǒng)也有架構,應該關注哪一個?想要清楚以上問題需要梳理幾個有關系又相似的概念:系統(tǒng)與子系統(tǒng)、模塊與組建、框架與架構:

1.1. 系統(tǒng)與子系統(tǒng)

系統(tǒng):泛指由一群有關聯的個體組成,根據某種規(guī)則運作,能完成個別元件不能獨立完成的工作能力的群體。

子系統(tǒng):也是由一群關聯的個體組成的系統(tǒng),多半是在更大的系統(tǒng)中的一部分。

1.2. 模塊與組件

都是系統(tǒng)的組成部分,從不同角度拆分系統(tǒng)而已。模塊是邏輯單元,組件是物理單元。

模塊就是從邏輯上將系統(tǒng)分解, 即分而治之, 將復雜問題簡單化。模塊的粒度可大可小, 可以是系統(tǒng),幾個子系統(tǒng)、某個服務,函數, 類,方法、 功能塊等等。

組件可以包括應用服務、數據庫、網絡、物理機、還可以包括MQ、容器、Nginx等技術組件。

1.3. 框架與架構

框架是組件實現的規(guī)范,例如:MVC、MVP、MVVM等,是提供基礎功能的產品,例如開源框架:Ruby on Rails、Spring、Laravel、Django等,這是可以拿來直接使用或者在此基礎上二次開發(fā)。

框架是規(guī)范,架構是結構。

我在這重新定義架構:軟件架構指軟件系統(tǒng)的頂層結構。

架構是經過系統(tǒng)性地思考, 權衡利弊之后在現有資源約束下的最合理決策, 最終明確的系統(tǒng)骨架: 包括子系統(tǒng), 模塊, 組件. 以及他們之間協(xié)作關系, 約束規(guī)范, 指導原則.并由它來指導團隊中的每個人思想層面上的一致。涉及四方面:

系統(tǒng)性思考的合理決策:比如技術選型、解決方案等。

明確的系統(tǒng)骨架:明確系統(tǒng)有哪些部分組成。

系統(tǒng)協(xié)作關系:各個組成部分如何協(xié)作來實現業(yè)務請求。

約束規(guī)范和指導原則:保證系統(tǒng)有序,高效、穩(wěn)定運行。

因此架構師具備能力:理解業(yè)務,全局把控,選擇合適技術,解決關鍵問題、指導研發(fā)落地實施。

架構的本質就是對系統(tǒng)進行有序化地重構以致符合當前業(yè)務的發(fā)展,并可以快速擴展。

那什么樣的系統(tǒng)要考慮做架構設計 技術不會平白無故的出和自驅動發(fā)展起來,而架構的發(fā)展和需求是基于業(yè)務的驅動。

架構設計完全是為了業(yè)務,

需求相對復雜.

非功能性需求在整個系統(tǒng)占據重要位置.

系統(tǒng)生命周期長,有擴展性需求.

系統(tǒng)基于組件或者集成的需要.

業(yè)務流程再造的需要.

基于 Spring Boot + MyBatis Plus + Vue & Element 實現的后臺管理系統(tǒng) + 用戶小程序,支持 RBAC 動態(tài)權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

項目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro

視頻教程:https://doc.iocoder.cn/video/

二. 架構分層和分類

架構分類可細分為業(yè)務架構、應用架構、技術架構, 代碼架構, 部署架構

80d3573e-3a3d-11ed-9e49-dac502259ad0.jpg

業(yè)務架構是戰(zhàn)略,應用架構是戰(zhàn)術,技術架構是裝備。其中應用架構承上啟下,一方面承接業(yè)務架構的落地,另一方面影響技術選型。

熟悉業(yè)務,形成業(yè)務架構,根據業(yè)務架構,做出相應的應用架構,最后技術架構落地實施。

如何針對當前需求,選擇合適的應用架構,如何面向未來,保證架構平滑過渡,這個是軟件開發(fā)者,特別是架構師,都需要深入思考的問題。

2.1. 業(yè)務架構(俯視架構):

包括業(yè)務規(guī)劃,業(yè)務模塊、業(yè)務流程,對整個系統(tǒng)的業(yè)務進行拆分,對領域模型進行設計,把現實的業(yè)務轉化成抽象對象。

沒有最優(yōu)的架構,只有最合適的架構,一切系統(tǒng)設計原則都要以解決業(yè)務問題為最終目標,脫離實際業(yè)務的技術情懷架構往往會給系統(tǒng)帶入大坑,任何不基于業(yè)務做異想天開的架構都是耍流氓。

所有問題的前提要搞清楚我們今天面臨的業(yè)務量有多大,增長走勢是什么樣,而且解決高并發(fā)的過程,一定是一個循序漸進逐步的過程。合理的架構能夠提前預見業(yè)務發(fā)展1~2年為宜。這樣可以付出較為合理的代價換來真正達到技術引領業(yè)務成長的效果。

看看京東業(yè)務架構(網上分享圖):

812e6b42-3a3d-11ed-9e49-dac502259ad0.jpg

2.2. 應用架構(剖面架構,也叫邏輯架構圖):

硬件到應用的抽象,包括抽象層和編程接口。應用架構和業(yè)務架構是相輔相成的關系。業(yè)務架構的每一部分都有應用架構。

類似:

8173afd6-3a3d-11ed-9e49-dac502259ad0.png

應用架構:應用作為獨立可部署的單元,為系統(tǒng)劃分了明確的邊界,深刻影響系統(tǒng)功能組織、代碼開發(fā)、部署和運維等各方面. 應用架構定義系統(tǒng)有哪些應用、以及應用之間如何分工和合作。這里所謂應用就是各個邏輯模塊或者子系統(tǒng)。

應用架構圖關鍵有2點:

①. 職責劃分: 明確應用(各個邏輯模塊或者子系統(tǒng))邊界

邏輯分層

子系統(tǒng)、模塊定義。

關鍵類。

②. 職責之間的協(xié)作:

接口協(xié)議:應用對外輸出的接口。

協(xié)作關系:應用之間的調用關系。

應用分層有兩種方式:

一種是水平分(橫向),按照功能處理順序劃分應用,比如把系統(tǒng)分為web前端/中間服務/后臺任務,這是面向業(yè)務深度的劃分。

另一種是垂直分(縱向),按照不同的業(yè)務類型劃分應用,比如進銷存系統(tǒng)可以劃分為三個獨立的應用,這是面向業(yè)務廣度的劃分。

應用的合反映應用之間如何協(xié)作,共同完成復雜的業(yè)務case,主要體現在應用之間的通訊機制和數據格式,通訊機制可以是同步調用/異步消息/共享DB訪問等,數據格式可以是文本/XML/JSON/二進制等。

應用的分偏向于業(yè)務,反映業(yè)務架構,應用的合偏向于技術,影響技術架構。分降低了業(yè)務復雜度,系統(tǒng)更有序,合增加了技術復雜度,系統(tǒng)更無序。

應用架構的本質是通過系統(tǒng)拆分,平衡業(yè)務和技術復雜性,保證系統(tǒng)形散神不散。

系統(tǒng)采用什么樣的應用架構,受業(yè)務復雜性影響,包括企業(yè)發(fā)展階段和業(yè)務特點;同時受技術復雜性影響,包括IT技術發(fā)展階段和內部技術人員水平。業(yè)務復雜性(包括業(yè)務量大)必然帶來技術復雜性,應用架構目標是解決業(yè)務復雜性的同時,避免技術太復雜,確保業(yè)務架構落地。

2.3. 數據架構

數據架構指導數據庫的設計. 不僅僅要考慮開發(fā)中涉及到的數據庫,實體模型,也要考慮物理架構中數據存儲的設計。

81d496d4-3a3d-11ed-9e49-dac502259ad0.jpg

2.4. 代碼架構(也叫開發(fā)架構):

子系統(tǒng)代碼架構主要為開發(fā)人員提供切實可行的指導,如果代碼架構設計不足,就會造成影響全局的架構設計。比如公司內不同的開發(fā)團隊使用不同的技術?;蛘呓M件,結果公司整體架構設計就會失控。

代碼架構主要定義:

①. 代碼單元:

配置設計

框架、類庫。

②. 代碼單元組織:

編碼規(guī)范,編碼的慣例。

項目模塊劃分

頂層文件結構設計,比如mvc設計。

依賴關系

81efaa46-3a3d-11ed-9e49-dac502259ad0.jpg

2.5. 技術架構

技術架構:確定組成應用系統(tǒng)的實際運行組件(lvs,nginx,tomcat,php-fpm等),這些運行組件之間的關系,以及部署到硬件的策略。

技術架構主要考慮系統(tǒng)的非功能性特征,對系統(tǒng)的高可用、高性能、擴展、安全、伸縮性、簡潔等做系統(tǒng)級的把握。

系統(tǒng)架構的設計要求架構師具備軟件和硬件的功能和性能的過硬知識,這也是架構設計工作中最為困難的工作。

2.6. 部署拓撲架構圖(實際物理架構圖):

拓撲架構,包括架構部署了幾個節(jié)點,節(jié)點之間的關系,服務器的高可用,網路接口和協(xié)議等,決定了應用如何運行,運行的性能,可維護性,可擴展性,是所有架構的基礎。這個圖主要是運維工程師主要關注的對象。

8206c41a-3a3d-11ed-9e49-dac502259ad0.jpg

物理架構主要考慮硬件選擇和拓撲結構,軟件到硬件的映射,軟硬件的相互影響。

8227e0d2-3a3d-11ed-9e49-dac502259ad0.jpg

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 模塊
    +關注

    關注

    7

    文章

    2674

    瀏覽量

    47350
  • Linux
    +關注

    關注

    87

    文章

    11232

    瀏覽量

    208945
  • 架構
    +關注

    關注

    1

    文章

    510

    瀏覽量

    25451

原文標題:談談架構的本質和架構分類

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    架構與設計 常見微服務分層架構的區(qū)別和落地實踐

    前言 從強調內外隔離的六邊形架構,逐漸發(fā)展衍生出的層層遞進、注重領域模型的洋蔥架構,再到和DDD完美契合的整潔架構。架構風格的不斷演進,其實就是為了適應軟件需求越來越復雜的特點。 可以
    的頭像 發(fā)表于 10-22 15:34 ?158次閱讀
    <b class='flag-5'>架構</b>與設計 常見微服務分層<b class='flag-5'>架構</b>的區(qū)別和落地實踐

    指令集架構與微架構的區(qū)別

    指令集架構(Instruction Set Architecture,ISA)與微架構(Microarchitecture)是計算機體系結構中的兩個重要概念,它們在處理器的設計和實現中扮演著不同的角色。以下是對兩者區(qū)別的詳細闡述。
    的頭像 發(fā)表于 10-05 15:10 ?407次閱讀

    京東廣告投放平臺整潔架構演進之路

    作者:京東零售 趙嘉鐸 前言 從去年開始京東廣告投放系統(tǒng)做了一次以領域驅動設計為思想內核的架構升級,在深入理解DDD思想的同時,我們基于廣告投放業(yè)務的本質特征大膽地融入了自己的理解和改造。新架構是從
    的頭像 發(fā)表于 09-18 10:26 ?787次閱讀
    京東廣告投放平臺整潔<b class='flag-5'>架構</b>演進之路

    RISC--V架構的目標和特點

    RISC--V架構的目標 RISC--V架構的目標如下 成為一種完全開放的指令集,可以被任何學術機構或商業(yè)組織所自由使用 成為一種真正適合硬件實現且穩(wěn)定的標準指令集 RISC--V架構的特點 特 性
    發(fā)表于 08-23 00:42

    X86架構和ARM架構有什么區(qū)別

    X86架構和ARM架構是兩種主流的CPU架構,它們在多個方面存在顯著的差異。以下是對這兩種架構的詳細比較,涵蓋了追求目標、應用領域、技術特點、性能功耗比、軟件生態(tài)以及未來趨勢等方面。
    的頭像 發(fā)表于 08-22 11:21 ?8739次閱讀

    ai服務器是什么架構類型

    AI服務器,即人工智能服務器,是專門為人工智能應用設計的高性能計算服務器。AI服務器的架構類型有很多種,以下是一些常見的架構類型: CPU架構 CPU架構的AI服務器主要依賴于CPU進
    的頭像 發(fā)表于 07-02 09:51 ?946次閱讀

    龍芯CPU統(tǒng)一系統(tǒng)架構規(guī)范及參考設計下載

    *附件:LoongArch 系統(tǒng)調用(syscall)ABI.pdf *附件:龍芯 CPU 統(tǒng)一系統(tǒng)架構規(guī)范(適用于 LA 架構通用 PC、服務器系列)-v4.1.0.pdf *附件:龍芯CPU統(tǒng)一
    發(fā)表于 06-20 14:42

    RISC--V架構的特點

    RISC--V架構的特點 RISC-V架構RISC-V 架構是基于 精簡指令集計算(RISC)原理建立的開放 指令集架構(ISA),RISC-V是在指令集不斷發(fā)展和成熟的基礎上建立的全
    發(fā)表于 05-24 08:01

    MySQL的整體邏輯架構

    支持多種存儲引擎是眾所周知的MySQL特性,也是MySQL架構的關鍵優(yōu)勢之一。如果能夠理解MySQL Server與存儲引擎之間是怎樣通過API交互的,將大大有利于理解MySQL的核心基礎架構
    的頭像 發(fā)表于 04-30 11:14 ?428次閱讀
    MySQL的整體邏輯<b class='flag-5'>架構</b>

    超融合架構解決方案

    隨著信息技術的發(fā)展,企業(yè)對數據中心的依賴日益增強,對存儲、計算和網絡資源的需求也在不斷增長。超融合架構作為一種新興的IT基礎設施解決方案,正逐漸成為企業(yè)數據中心建設的首選。本文將詳細介紹超融合架構
    的頭像 發(fā)表于 04-10 14:57 ?585次閱讀

    交換芯片架構是什么意思 交換芯片架構怎么工作

    交換芯片架構是指交換芯片內部的設計和組織方式,包括其硬件組件、處理單元、內存結構、接口以及其他關鍵部分的布局和相互作用。交換芯片的架構決定了其處理網絡數據包的能力和效率。
    的頭像 發(fā)表于 03-22 16:45 ?696次閱讀

    交換芯片架構設計

    交換芯片的架構設計是網絡設備性能和功能的關鍵。一個高效的交換芯片架構能夠處理大量的數據流量,支持高速數據傳輸,并提供先進的網絡功能。
    的頭像 發(fā)表于 03-21 16:28 ?509次閱讀

    fpga芯片架構介紹

    FPGA(現場可編程門陣列)芯片架構是一種高度靈活和可編程的集成電路架構,它以其獨特的結構和功能,在現代電子系統(tǒng)中扮演著至關重要的角色。FPGA芯片架構的核心在于其可編程性和高度的并行處理能力,這使得它能夠在各種應用中實現高效、
    的頭像 發(fā)表于 03-15 14:56 ?704次閱讀

    arm架構和x86架構區(qū)別 linux是x86還是arm

    ARM架構和x86架構是兩種不同的計算機處理器架構,它們在體系結構、指令集、應用領域等方面有著明顯的區(qū)別。Linux操作系統(tǒng)則具有廣泛的適配性,可以運行在各種架構上,包括x86和ARM
    的頭像 發(fā)表于 01-30 13:46 ?1.7w次閱讀

    什么是分布式架構?

    分布式架構是指將一個系統(tǒng)或應用拆分成多個獨立的節(jié)點,這些節(jié)點通過網絡連接進行通信和協(xié)作,以實現共同完成任務的一種架構模式。這種架構模式旨在提高系統(tǒng)的可擴展性、可靠性和性能表現。 一、分布式架構
    的頭像 發(fā)表于 01-12 15:04 ?1175次閱讀
    什么是分布式<b class='flag-5'>架構</b>?