国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

程序員必知的幾種軟件架構模式

新聞 前端
本文主要介紹了幾種主要的軟件架構模式。架構模式是對給定上下文的軟件架構中常見問題的一種通用的可復用的解決方案。

 本文主要介紹了幾種主要的軟件架構模式。

架構模式是對給定上下文的軟件架構中常見問題的一種通用的可復用的解決方案。

一種模式就是特定上下文的問題的一種解決方案。

然而,很多開發者至今還對各種軟件架構模式之間的差別搞不清,甚至對其所知甚少。

大體上,主要有下面這幾種架構模式:

  • 分層架構
  • 管道 - 過濾器架構
  • 客戶端 - 服務器架構
  • 模型 - 視圖 - 控制器架構
  • 事件驅動架構
  • 微服務架構

1. 分層架構模式

最常見的架構模式就是分層架構或者稱為 n 層架構。

大部分軟件架構師、設計師和開發者都對這個架構模式非常熟悉。盡管對于層的數量和類型沒有具體限制,但大部分分層架構主要由四層組成:展現層、業務層、持久層和數據庫層,如下圖所示。

一個很流行的 n 層架構示例

上下文

所有復雜的系統都會經歷獨立地發展和衍化系統各個部分的需要。出于這個原因,系統開發者需要對關注點進行清晰且條理分明的分離,以便系統的各個模塊可以獨立地開發和維護。

問題

軟件需要以這樣一種方式分割:各個模塊可以獨自開發和衍化,各自部分之間的交互非常少,支持可移植性、可修改性和復用性。

方案

為了實現關注點分離,分層模式將軟件分割成各個單元(稱為“層”)。每一層都是一組模塊,提供了一組高內聚的服務。其使用必須是單向的。層將一組軟件作為一個完整的分區,每個分區暴露一個公開接口。

  • 第一個概念是,每一層都有特定的角色和職責。例如,展現層負責處理所有的用戶界面。分層架構的這種關注點分離,讓構建高效的角色和職責非常簡單。
  • 第二個概念是,分層架構模式是一個技術性的分區架構,而非一個領域性的分區架構。它們是由組件組成的,而不是領域。
  • 最后一個概念是,分層架構中的每一層都被標記為封閉或者開放。封閉層意味著請求從一層移到另一層,它必須通過它正下面的這一層才能達到下面這一層的再下一層。請求不能跳過任何層。

封閉層和請求訪問

弱點

分層會導致性能下降。這種模式不適合高性能應用程序,因為經過架構中的多層來實現一個業務請求的效率是不高的。

分層還會增加系統的前期成本和復雜性。

用途

我們應該將這種方式應用于小型簡單的應用程序或網站。對于預算和時間非常緊張的場景,這是一個不錯的選擇。

2. 多層模式

方案

一個多層模式示例:消費者網站 J2EE

許多系統的執行結構被組織成一系列邏輯組件分組。每個分組被稱為一個層。

上下文:在一個分布式部署中,通常需要將系統的基礎設施分到不同的子集中。

問題:我們如何將系統分割到多個計算上獨立的執行結構:由一些通信媒介連接的軟件和硬件組?

弱點:大量前期成本和復雜性。

用途:用在分布式系統中。

3. 管道 - 過濾器架構

軟件架構中反復出現的一種模式是管道 - 過濾器(pipe-filter)模式。

管道過濾器模式

上下文

許多系統需要轉換從輸入到輸出的離散數據流。許多類型轉換在實踐中重復出現,因此將其創建成獨立的可復用的部分,這是比較理想的。

問題

這些系統需要被分割成可復用的松耦合的組件,組件之間擁有簡單通用的交互機制。這樣它們就可以靈活地相互結合。這些通用松耦合的組件就很容易復用。那些獨立的組件可以并行執行。

方案

這種架構中的管道構成了過濾器之間的通信通道。第一個概念是,由于性能原因,每個管道都是非定向的和點對點的,接受來自一個源的輸入并經常直接輸出到另外一個源。

在這種模式中,有如下四種過濾器。

  • producer(source):一個過程的起點。
  • transformer (map):對一些或所有數據進行轉換。
  • tester (reduce):測試一個或多個條件。
  • consumer (sink):終點。

弱點

不太適合交互性的系統,因為它們的轉換特性。

過多的解析和反解析會導致性能損失,也會增加編寫過濾器本身的復雜性。

用途

管道 - 過濾器架構用于各種應用程序,特別是簡化單項處理的任務,例如 EDI、ETL 工具。

編譯器:連續的過濾器執行詞法分析、語法分析、語義分析和代碼生成。

4. 客戶端 - 服務器架構

上下文

有許多共享資源和服務是大量分布式的客戶端希望訪問的,我們希望控制訪問或服務質量。

問題

通過管理一組共享資源和服務,我們可以通過分解公共服務并在單個位置或少數位置進行修改來提高可修改性和復用性。我們想要通過在將資源本身分布在多個物理服務器上的同時集中控制這些資源和服務,來提高可伸縮性和可用性。

方案

在客戶端 - 服務器模式中,組件和連接器具有特定的行為。

稱為“客戶端”的組件將請求發送到稱為“服務器”的組件,然后等待回復。

服務器組件接收到客戶端的請求并向其發送回復。

弱點

服務器會成為性能瓶頸和單點故障位置。

在系統建成后,關于功能位置(在客戶端還是在服務器)的決策通常是復雜的而且變動成本很大。

用途

對于有許多組件(客戶端)發送請求到另外一些提供服務的組件(服務器)的系統,我們可以使用客戶端 - 服務器模式來建模這個系統的一部分:在線應用程序,例如電子郵件、共享文檔或銀行服務。

5. 模型 - 視圖 - 控制器架構(MVC)

 

上下文

用戶界面通常是一個交互性應用程序的最頻繁被修改的部分。用戶通常希望從不同的視角查看數據,例如柱狀圖或者餅圖。這些表示形式都應該反映數據當前的狀態。

問題

用戶界面功能如何獨立于應用程序功能,同時還還對用戶輸入或底層應用程序數據的更改做出響應?

當底層應用程序數據更改時,如何創建、維護和協調用戶界面的多個視圖?

方案

模型 - 視圖 - 控制器(model-view-controller,即 MVC)模式將應用程序功能分為以下三種類型的組件:

  • 模型,包含應用程序的數據。
  • 視圖,顯示部分底層數據并與用戶交互。
  • 控制器,在模型和視圖之間進行中介并管理狀態更改的通知。

弱點

對于簡單的用戶界面,其復雜性并不值得這么做。

模型、視圖和控制器抽象可能不適用于某些用戶界面工具包。

用途

MVC 是網站或移動應用程序開發用戶界面常用的一種架構模式。

6. 事件驅動架構

上下文

需要提供計算和信息資源來處理傳入的應用程序生成的獨立異步事件,這種方式可以隨著需求的增加而擴展。

問題

構建分布式系統,這個系統可以服務異步到達的事件相關信息,并且能從簡單小型擴展到復雜大型。

方案

為事件處理部署獨立的事件進程或處理器。到達的事件進入隊列。調度程序根據調度策略從隊列中拉取事件并將它們分配到合適的事件處理器。

弱點

性能和錯誤恢復可能是問題。

用途

使用這個方案的電商應用程序將工作如下:

Order Service 創建一個 Order,這個訂單處于待定狀態,然后發布一個OrderCreated事件。

  • Customer Service 接收到這個事件并嘗試為這個 Order 扣除信用。然后發布一個 Credit Reserved 事件或者CreditLimitExceeded(超出信用限額)事件。
  • Order Service 接收到 Customer Service 發送的事件并將訂單狀態更改為已核準或已取消。

7. 微服務架構

上下文

部署基于服務器的企業應用程序,支持各種瀏覽器和原生移動客戶端。應用程序通過執行業務邏輯、訪問數據庫、與其它系統交換信息并返回響應來處理客戶端請求。這個應用程序可能會暴露一個第三方 API。

問題

一體化應用程序會變得過于龐大和復雜,無法得到有效支持和部署來實現最優的分布式資源利用,例如在云環境中。

方案

將應用程序構建成服務套件。每個服務都是獨立部署和可擴展的,擁有自己的 API 邊界。不同的服務可以用不同的編程語言編寫,管理它們自己的數據庫,由不同的團隊開發。

弱點

系統設計必須能容忍服務失敗,需要更多的系統監控。服務編排和事件協作開銷比較大。

當然,我們還需要更多錢。

用途

許多使用場景都可以應用微服務架構,特別是那些涉及大量數據管道的場景。例如,一個微服務系統對關于一個公司的零售店銷售的報表系統會比較理想。數據展現過程的每一步都會被一個微服務處理:數據收集、清理、規范化、濃縮、聚合、報告等。

 

責任編輯:張燕妮 來源: 架構頭條
相關推薦

2021-01-07 09:57:46

軟件架構服務器

2019-07-23 17:20:02

Java微服務軟件架構模式

2015-12-04 09:33:15

程序員前端演進史

2019-01-30 14:14:16

LinuxUNIX操作系統

2023-09-12 11:25:15

2015-11-30 11:01:34

前端程序員歷史

2017-08-03 14:25:13

Python陷阱與缺陷

2012-06-28 14:01:30

Java程序員排序

2023-10-26 18:05:37

Git命令差異

2018-07-11 14:04:53

Python陷阱缺陷

2015-05-19 14:34:17

程序員編程語言

2020-05-13 11:20:57

MySQL規范數據庫

2014-02-09 10:30:17

Python程序員工具

2024-12-04 10:12:06

2023-06-16 13:34:00

軟件架構模式

2020-11-25 10:40:58

程序員技能開發者

2018-09-18 10:56:52

Android開發http

2020-03-31 08:42:14

程序員操作系統 Linux

2024-09-20 08:04:54

2023-05-11 08:01:08

Code開發保護機制
點贊
收藏

51CTO技術棧公眾號

日韩av电影免费播放| jizz日韩| 1024精品久久久久久久久| 91官网在线免费观看| 亚洲色成人一区二区三区小说| 亚洲色图欧美| 久久国产精品久久久久久| 国模吧精品人体gogo| 国产亚洲欧洲一区高清在线观看| 国产日韩久久| 欧美xxxx在线| 亚洲最新av在线网站| www.在线视频.com| 国产精品久久久久久久久免费樱桃| 欧美在线播放一区二区| 欧美裸体在线版观看完整版| 久久久精品国产亚洲| 国产桃色电影在线播放| 都市激情亚洲色图| 久久精品香蕉视频| 国产精品一区二区三区99| 蜜桃麻豆91| 午夜精品婷婷| 国产精品青草久久久久福利99| 国产日韩欧美中文在线| 亚洲精品999| 超碰免费公开在线| 色系网站成人免费| 色网址在线观看| 综合久久国产九一剧情麻豆| 玩弄中年熟妇正在播放| 国产一二三精品| 在线码字幕一区| 国产精品美女| 久久久久久久久久久久久久一区| 在线成人超碰| 成人蜜桃视频| 黄色亚洲在线| 97伦理在线四区| 国产精品久久久久久影院8一贰佰 国产精品久久久久久麻豆一区软件 | 日韩一区二区三区四区| 国产露出视频在线观看| 性做久久久久久久免费看| wwwav91com| 国产欧美视频一区二区| 狠狠热免费视频| 欧美高清在线精品一区| 日本成人在线免费视频| 久久久久久久久久美女| 欧美少妇性生活视频| 91麻豆文化传媒在线观看| 99久久久无码国产精品6| 久久久精品2019中文字幕之3| 少妇性饥渴无码a区免费| 久久久久国产精品麻豆ai换脸| 欧在线一二三四区| 国产片一区二区| 成人伦理视频网站| 精品久久久久久久久久国产| 一级毛片在线观| 欧美视频一区二| 成人福利电影| 综合网中文字幕| 国产色噜噜噜91在线精品| 日韩av手机在线| 国产一区二区三区四区老人| 日韩国产欧美一区| 成人av电影在线| 九色丨porny丨| 色视频欧美一区二区三区| av在线free| 中文欧美在线视频| 欧美一区二区三区红桃小说| 91在线视频导航| 久久精品1区| www国产精品内射老熟女| 亚洲人成亚洲人成在线观看图片| 九色在线播放| 日韩精品黄色网| 亚洲v天堂v手机在线| 99久久自偷自偷国产精品不卡| 久久婷婷亚洲| 久久婷婷五月综合色国产香蕉| 自拍偷拍亚洲激情| 亚洲s色大片| 日韩在线视频中文字幕| 红桃成人av在线播放| 亚洲精品自在在线观看| 国产亲近乱来精品视频| 浮生影视网在线观看免费| 国产一区二区三区在线免费观看| 久久国产精品免费精品3p| www.久久爱.cn| 99精品国产热久久91蜜凸| 青柠在线影院观看日本| 日韩电影第一页| 国产精品欧美在线观看| 日本一区二区三区四区高清视频| 久久久精品黄色| 在线国产91| 欧美超级免费视 在线| 一区二区三区午夜探花| 国产日韩亚洲欧美在线| 性欧美疯狂xxxxbbbb| 成人小电影网站| 成人网欧美在线视频| 国产91富婆露脸刺激对白| 中文字幕一区免费| 在线观看欧美日韩国产| 国产精品久久久乱弄 | 日本精品影院| 日韩电影大全在线观看| 国产精品久线观看视频| av片在线观看网站| 国产精品久久久av久久久| 国产酒店精品激情| jizz视频在线观看| 51精品国产黑色丝袜高跟鞋| 久久精品国产免费| 日韩大胆视频| 欧美日韩国产91| 美国三级日本三级久久99| 中文字幕在线视频观看| 欧美大成色www永久网站婷| 日韩av中文在线观看| 四虎精品成人免费网站| 久久久久国色av免费观看性色| 人人精品人人爱| 国产在线小视频| 国产mv久久久| 9久草视频在线视频精品| 国产不卡在线| 91成人免费观看| 亚洲免费伊人电影| 国产精品毛片aⅴ一区二区三区| 视频三区二区一区| 欧美在线观看一区| 欧美r级电影| 男人艹女人在线观看| 中文字幕日本欧美| 美国一区二区三区在线播放 | 国产手机免费视频| 精品久久久久久久久久久院品网| 久久国产小视频| 91麻豆福利| 欧美精品成人在线| 99天天综合性| 625成人欧美午夜电影| 精品国产91亚洲一区二区三区www 精品国产_亚洲人成在线 | 人人精品亚洲| 国产激情在线观看视频| 日韩成人在线视频网站| 久久国产高清| 国产欧美久久久久久久久| 亚洲直播在线一区| 日韩欧美亚洲范冰冰与中字| 欧美午夜精彩| 一本免费视频| 国产精品777| 亚洲综合免费观看高清完整版在线| 日韩精品成人在线观看| 国产精品50p| 久久久电影免费观看完整版| 高清免费成人av| 欧美少妇激情| 1024精品视频| 欧美激情免费视频| 欧美韩国日本一区| 欧美调教网站| 中文字幕一区免费| 国产精品一区二区不卡视频| 欧美日韩成人高清| 青青草国产精品97视觉盛宴| 精品丝袜在线| 狠狠干 狠狠操| 久久久久国产精品免费| 一区二区三区在线高清| 亚洲经典一区| 超碰个人在线| www.日本在线播放| 97av在线播放| 欧美丝袜一区二区三区| 亚洲激情女人| 中文字幕在线视频网站| www黄色日本| 欧美伊久线香蕉线新在线| 亚洲电影一级黄| 亚洲永久在线| 亚洲不卡系列| 蜜桃视频网站www| 国产偷国产偷亚洲高清97cao| 91精品国产综合久久小美女| 精品亚洲国产成人av制服丝袜| 欧洲午夜精品| 性网站在线免费观看| 韩国成人一区| 在线精品91av| 亚洲福利视频一区二区| 久久中文欧美| 91午夜精品|