SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
軟體架構模式
Software Architecture Patterns



2015.05.11
Jack Yu
Software
Architecture 

Patterns
出版社:歐萊禮
出版時間:2015.02
作者:Mark Richards
⾴頁數:55 (含封⾯面)
⼤大綱
• 介紹
• 分層架構 (Layered Architecture)
• 事件驅動架構 (Event-Driven Architecture)
• 微核⼼心架構 (Microkernel Architecture)
• 微服務架構 (Microservices Architecture)
• 基於空間的架構 (Space-Based Architecture)
– Wikipedia
“Software architecture is the high level
structure of a software system”
– Wikipedia
“Architectural pattern is a general,
reusable solution to a commonly occurring
problem in software architecture within a
given context.”
為什麼要談軟體架構模式?
• 避免陷⼊入⼤大泥球反模式 (big ball of mud anti-pattern)
• 開發低耦合 、強健的、容易修改、有清楚的開發⽅方向的軟體
• 可以說出&討論應⽤用程式的架構特性
• 選擇對的架構來達成業務需求和⺫⽬目標
請暫時忘記實作,
以減少不必要的煩惱
分層架構
Layered Architecture Pattern
分層架構
• 也叫做多層架構模式 (N-tier architecture pattern)
• 多數 Java EE 的⾮非官⽅方標準
• 架構師、設計師、開發⼈人員最熟悉的架構
• 和傳統 IT 通訊、組織架構最接近 (Conway’s law)
模式描述
• 分層架構模式內的組件被劃分到多個
架構層,每⼀一層都代表應⽤用所需要的
特定⾓角⾊色和職能
• 分層數量不限,但⼀一般分為四層:表
現層、業務層、持久層和資料庫層
重點:關注分離 (separation of concerns)
封閉 vs. 開放
• 封閉層 (Closed Layer) 代表請求必須
⼀一層⼀一層的傳遞,達到隔離的效果
• 限制修改的影響範圍只有上下層,降
低組件之間的耦合
• 重構影響低
封閉 vs. 開放
• 開放層 (Open Layer) 代表請求可以
直接穿越它,存取其下的架構層
• 通常⽤用於提供共⽤用服務/資源
• 定義⼀一層的開放或封閉,確定了請求
流動的⽅方式
• 所有開發⼈人員都要理解這些限制
範例
筆記
• 如果你不知道要⽤用什麼架構,分層架構適合你。
• 避免污⽔水池反模式 (architecture sinkhole anti-pattern)
• 避免⼤大部分的請求在某些架構層總是直接流過
• 80-20 法則
模式分析
評價 原因
整體靈活性 低 修改費時、較為笨重、可能出現⾼高耦合
是否易於佈署 低 ⼩小改動可能影響到整體,需要有計劃進⾏行
可測試性 ⾼高 可分別測試或⽤用 mock 代替
性能 低 ⼀一次業務請求需要穿越⼤大量的架構層
伸縮性 低 架構層間的緊密耦合、通常規模較⼤大
是否容易開發 是 熟悉度⾼高、和組織分層相近
事件驅動架構
Event-Driven Architecture
事件驅動架構
• 主流的異步分發事件架構模式
• 由單⼀一⺫⽬目的、⾼高度解耦合的的事件處理組件 (Event Processor) 構成
• 常⽤用於需要⾼高度可擴展的應⽤用中
• 從⼩小⾄至⼤大型的應⽤用都表現不錯
• 有兩種拓撲結構:中介 (Mediator) 和 代理 (Broker)
中介 (Mediator)拓撲
• 適⽤用於處理事件有相依性和需要協調
的場景
• 組件:
• 事件列隊 (event queue)
• 事件通道 (event channel)
• 事件處理器 (event processor)
• 例如:Apache Camel、Apache
ODE+BPEL
初始事件
待處理
事件
範例
代理(Broker)拓撲
• 適⽤用於事件較為簡單,⾼高效能要求的
場景。
• 沒有核⼼心的事件中介,改由輕量的消
息列隊取代。
• 組件:
• 代理 (Broker)
• 事件處理器 (Event Process)
• 例如:ActiveMQ, ZeroMQ, etc.
Broker
範例
筆記
• 異步處理會造成實現上的困難
• 要處理遠程操作的可⽤用性,各個組件操作失敗的處理
• 顆粒度需要仔細思考
• 不⽀支援交易 (transaction)
• 要⼀一開始就定下事件處理的協定和格式
模式分析
評價 原因
整體靈活性 ⾼高 事件處理器⾼高度解耦合
是否易於佈署 ⾼高 事件處理器⾼高度解耦合
可測試性 低
雖然單元測試簡單,但整合測試困難 

(需要整體+異步問題)
性能 ⾼高 ⾼高度解耦合+異步處理
伸縮性 ⾼高 事件處理器⾼高度解耦合
是否容易開發 否 需考慮異步處理、訂定協定和流程、處理錯誤狀況
微核⼼心架構
Microkernel Architecture
微核⼼心架構
• 從 OS 得名,也稱作插件應⽤用架構
• 可以透過插件的⽅方式添加額外的特性到核⼼心系統
• 具備良好的擴展性和隔離性
• 例如 Eclipse IDE
微核⼼心架構
• 組成:核⼼心系統+插件組件
• 核⼼心系統通常只包含能讓系統運作的
最⼩小功能
• 從應⽤用⾓角度來看,核⼼心系統定義了業
務邏輯,⽽而插件則實作了具體業務邏
輯
• 插件是⽤用於提供新特性的獨⽴立模組,
但也可以互相溝通 (不建議)
核⼼心與插件的互動
• 實現上沒有限制
• 核⼼心系統存取插件可能是透過插件註冊表
• 註冊表提供插件名稱、傳輸協定、輸⼊入輸出規範
• 例如: SOAP + WSDL
• 插件連接核⼼心可能是⽤用:OSGi、Message Queue、Web service、DI
範例
筆記
• 微核⼼心架構可以嵌⼊入到另⼀一種架構中
• 良好⽀支援漸進式設計和增量開發
• 對於產品導向的應⽤用來說,微核⼼心架構是第⼀一選擇
模式分析
評價 原因
整體靈活性 ⾼高 插件兼的鬆耦合,可以隔離變化。
是否易於佈署 ⾼高 依據實作,插件可以⽀支援熱差拔
可測試性 ⾼高 各個插件可以分開測試。可使⽤用 mock
性能 ⾼高 透過插件調整可以只包含必要的模組
伸縮性 低 實現是基於產品,⾮非此架構特⻑⾧長
是否容易開發 否 需要設計和管理規約,版本控制,考慮顆粒度
微服務架構
Microservice Architecture
微服務架構
• 最近正夯,⽤用於取代 SOA,但仍在發展中
• 採⽤用獨⽴立佈署、分佈式的服務組件(service component),透過簡化的
傳輸⽅方式互動
• ⾼高擴展性、鬆耦合,容易佈署
• 如何正確設計組件的顆粒度是最⼤大難度
模式描述
• 是⼀一個演化⽽而來的架構
• 透過切割組件,解決分層架構環環
相扣的問題
• 透過概念簡化來消除 SOA 的複雜
度
• 常⾒見拓撲
• 基於 REST API
• 基於 REST 應⽤用
• 集中式消息
基於 REST API 拓撲
• 每⼀一個服務組件皆透過單獨佈署的
Web 服務,以 REST API 的⽅方式提供
服務。
• 顆粒度⾮非常的細 (也是名稱由來)
• 許多⼤大型企業提供此類服務
基於 REST 應⽤用拓撲
• 透過 Web 或是胖客⼾戶端來處理請
求,⽽而⾮非 API。
• 相較於前者,此實現的服務組件顆粒
度較⼤大
• 常⾒見於中⼩小型企業,或複雜度較低的
應⽤用
集中式消息實現
• 透過集中式的消息代理來存取服務。
• 適⽤用於較⼤大型的業務應⽤用,⽀支援排隊
機制、異步、監控、錯誤處理、負載
均衡和增強可擴展性。
• 可以透過代理群集來處理單點問題
決定顆粒度
• 此架構最⼤大挑戰就是決定服務組件的顆粒度
• 顆粒度過⼤大,此服務的好處都享受不到
• 顆粒度過細會造成使⽤用上的複雜度、效能犧牲
• 觀察
• 需要在應⽤用接⼝口中調⽤用多個服務=>可能切太細
• 在服務組件間需要通訊=>可能切太細
筆記
• 怎麼調整顆粒度都不對,代表你的應⽤用不適合
• 微服務架構提供了實時佈署能⼒力
• 他是分佈式架構,和事件驅動模式會有⼀一些共同的問題
模式分析
評價 原因
整體靈活性 ⾼高 服務組件⾼高度解耦合
是否易於佈署 ⾼高 服務組件⾼高度解耦合
可測試性 ⾼高
服務組件可分開測試,且相依度不⾼高,可以減少對整體進
⾏行測試的負擔
性能 低 分佈式特性不適合⾼高性能
伸縮性 ⾼高 服務組件⾼高度解耦合
是否容易開發
⾼高
功能被隔離成不同服務組件,開發範圍⼩小,且互相不影響
參考資料
• http://www.oreilly.com/programming/free/software-architecture-patterns.csp
• http://en.wikipedia.org/wiki/Software_architecture
• http://en.wikipedia.org/wiki/Architectural_pattern
• http://colobu.com/2015/04/08/software-architecture-patterns/
• https://github.com/bboyfeiyu/android-tech-frontier/tree/master/software-
architecture-patterns
• http://jonathanspeaking.blogspot.tw/2010/11/conways-law.html

Más contenido relacionado

La actualidad más candente

從零開始做架構圖
從零開始做架構圖從零開始做架構圖
從零開始做架構圖Philip Zheng
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)Takuya Kawabe
 
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニーUnity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニーYoshifumi Kawai
 
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)A AOKI
 
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したことドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したことBIGLOBE Inc.
 
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)Mikiya Okuno
 
91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOpsAndrew Wu
 
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2  深いモデルの探求(ドメイン駆動設計 第3部)3週連続DDDその2  深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)増田 亨
 
DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作teddysoft
 
微服務基礎建設 - Message Queue
微服務基礎建設 - Message Queue微服務基礎建設 - Message Queue
微服務基礎建設 - Message QueueAndrew Wu
 
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Masahito Zembutsu
 
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発Takafumi ONAKA
 
Riverpodでテストを書こう
Riverpodでテストを書こうRiverpodでテストを書こう
Riverpodでテストを書こうShinnosuke Tokuda
 
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動するStargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動するKohei Tokunaga
 
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発Yahoo!デベロッパーネットワーク
 
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったことドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと増田 亨
 
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8Koichiro Matsuoka
 
Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。Yuya Yamaki
 
MVC の Model を考える
MVC の Model を考えるMVC の Model を考える
MVC の Model を考えるtomo_masakura
 

La actualidad más candente (20)

從零開始做架構圖
從零開始做架構圖從零開始做架構圖
從零開始做架構圖
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)
 
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニーUnity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
 
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
 
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したことドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
 
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
 
91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps
 
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2  深いモデルの探求(ドメイン駆動設計 第3部)3週連続DDDその2  深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
 
DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作
 
微服務基礎建設 - Message Queue
微服務基礎建設 - Message Queue微服務基礎建設 - Message Queue
微服務基礎建設 - Message Queue
 
Jenkins 再入門
Jenkins 再入門Jenkins 再入門
Jenkins 再入門
 
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解
 
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
 
Riverpodでテストを書こう
Riverpodでテストを書こうRiverpodでテストを書こう
Riverpodでテストを書こう
 
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動するStargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
 
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
 
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったことドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
 
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
 
Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。
 
MVC の Model を考える
MVC の Model を考えるMVC の Model を考える
MVC の Model を考える
 

Destacado

軟體開發之路甘苦談(Gelis)
軟體開發之路甘苦談(Gelis)軟體開發之路甘苦談(Gelis)
軟體開發之路甘苦談(Gelis)Gelis Wu
 
活用 Application insight
活用 Application insight活用 Application insight
活用 Application insightGelis Wu
 
Natural Interfaces for Augmented Reality
Natural Interfaces for Augmented RealityNatural Interfaces for Augmented Reality
Natural Interfaces for Augmented RealityMark Billinghurst
 
How to make ir sensor using bread board
How to make ir sensor using bread boardHow to make ir sensor using bread board
How to make ir sensor using bread boardPeeyush Vishwakarma
 
Wireless Sensor System Architecture
Wireless Sensor System ArchitectureWireless Sensor System Architecture
Wireless Sensor System Architecturevarun kumar
 
使用 DesignSpark PCB 軟體製作感應燈電路板
使用 DesignSpark PCB 軟體製作感應燈電路板使用 DesignSpark PCB 軟體製作感應燈電路板
使用 DesignSpark PCB 軟體製作感應燈電路板CAVEDU Education
 
用20分鐘搞懂 《系統分析、軟體工程、專案管理與設計模式》
用20分鐘搞懂   《系統分析、軟體工程、專案管理與設計模式》用20分鐘搞懂   《系統分析、軟體工程、專案管理與設計模式》
用20分鐘搞懂 《系統分析、軟體工程、專案管理與設計模式》鍾誠 陳鍾誠
 
用十分鐘搞懂《離散數學》
用十分鐘搞懂《離散數學》用十分鐘搞懂《離散數學》
用十分鐘搞懂《離散數學》鍾誠 陳鍾誠
 
System Analysis and Design
System Analysis and DesignSystem Analysis and Design
System Analysis and DesignAamir Abbas
 

Destacado (10)

軟體開發之路甘苦談(Gelis)
軟體開發之路甘苦談(Gelis)軟體開發之路甘苦談(Gelis)
軟體開發之路甘苦談(Gelis)
 
活用 Application insight
活用 Application insight活用 Application insight
活用 Application insight
 
Natural Interfaces for Augmented Reality
Natural Interfaces for Augmented RealityNatural Interfaces for Augmented Reality
Natural Interfaces for Augmented Reality
 
Information system architecture
Information system architectureInformation system architecture
Information system architecture
 
How to make ir sensor using bread board
How to make ir sensor using bread boardHow to make ir sensor using bread board
How to make ir sensor using bread board
 
Wireless Sensor System Architecture
Wireless Sensor System ArchitectureWireless Sensor System Architecture
Wireless Sensor System Architecture
 
使用 DesignSpark PCB 軟體製作感應燈電路板
使用 DesignSpark PCB 軟體製作感應燈電路板使用 DesignSpark PCB 軟體製作感應燈電路板
使用 DesignSpark PCB 軟體製作感應燈電路板
 
用20分鐘搞懂 《系統分析、軟體工程、專案管理與設計模式》
用20分鐘搞懂   《系統分析、軟體工程、專案管理與設計模式》用20分鐘搞懂   《系統分析、軟體工程、專案管理與設計模式》
用20分鐘搞懂 《系統分析、軟體工程、專案管理與設計模式》
 
用十分鐘搞懂《離散數學》
用十分鐘搞懂《離散數學》用十分鐘搞懂《離散數學》
用十分鐘搞懂《離散數學》
 
System Analysis and Design
System Analysis and DesignSystem Analysis and Design
System Analysis and Design
 

Similar a 軟體架構模式

微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open CampAndrew Wu
 
廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰Paul Chao
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updatedPaul Chao
 
去哪儿Ugc平台设计经验
去哪儿Ugc平台设计经验去哪儿Ugc平台设计经验
去哪儿Ugc平台设计经验mysqlops
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updatedPaul Chao
 
从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1天青 王
 
事件驱动编程
事件驱动编程事件驱动编程
事件驱动编程banq jdon
 
京东实时消息队列JDQ技术实践与探索
京东实时消息队列JDQ技术实践与探索京东实时消息队列JDQ技术实践与探索
京东实时消息队列JDQ技术实践与探索confluent
 
Agile development
Agile developmentAgile development
Agile developmentSway Wang
 
網站上線了,然後呢?
網站上線了,然後呢?網站上線了,然後呢?
網站上線了,然後呢?Kirk Chen
 
ASP.Net MVC Framework
ASP.Net MVC FrameworkASP.Net MVC Framework
ASP.Net MVC Framework國昭 張
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介pan weizeng
 
纵览Loadrunner核心功能
纵览Loadrunner核心功能纵览Loadrunner核心功能
纵览Loadrunner核心功能beiyu95
 
众行业公司系统架构案例介绍
众行业公司系统架构案例介绍众行业公司系统架构案例介绍
众行业公司系统架构案例介绍mysqlops
 
202203-技术沙龙-k8s-v1.pptx
202203-技术沙龙-k8s-v1.pptx202203-技术沙龙-k8s-v1.pptx
202203-技术沙龙-k8s-v1.pptxQiming Teng
 
持續交付高品質程式碼 公開版
持續交付高品質程式碼 公開版持續交付高品質程式碼 公開版
持續交付高品質程式碼 公開版Kirk Chen
 
我們與Azure DevOps的距離
我們與Azure DevOps的距離我們與Azure DevOps的距離
我們與Azure DevOps的距離Edward Kuo
 
1 opening-jeff-storagesummit-347340-zhs
1 opening-jeff-storagesummit-347340-zhs1 opening-jeff-storagesummit-347340-zhs
1 opening-jeff-storagesummit-347340-zhsITband
 
王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计YANGL *
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAEq3boy
 

Similar a 軟體架構模式 (20)

微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
 
廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
 
去哪儿Ugc平台设计经验
去哪儿Ugc平台设计经验去哪儿Ugc平台设计经验
去哪儿Ugc平台设计经验
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
 
从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1
 
事件驱动编程
事件驱动编程事件驱动编程
事件驱动编程
 
京东实时消息队列JDQ技术实践与探索
京东实时消息队列JDQ技术实践与探索京东实时消息队列JDQ技术实践与探索
京东实时消息队列JDQ技术实践与探索
 
Agile development
Agile developmentAgile development
Agile development
 
網站上線了,然後呢?
網站上線了,然後呢?網站上線了,然後呢?
網站上線了,然後呢?
 
ASP.Net MVC Framework
ASP.Net MVC FrameworkASP.Net MVC Framework
ASP.Net MVC Framework
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介
 
纵览Loadrunner核心功能
纵览Loadrunner核心功能纵览Loadrunner核心功能
纵览Loadrunner核心功能
 
众行业公司系统架构案例介绍
众行业公司系统架构案例介绍众行业公司系统架构案例介绍
众行业公司系统架构案例介绍
 
202203-技术沙龙-k8s-v1.pptx
202203-技术沙龙-k8s-v1.pptx202203-技术沙龙-k8s-v1.pptx
202203-技术沙龙-k8s-v1.pptx
 
持續交付高品質程式碼 公開版
持續交付高品質程式碼 公開版持續交付高品質程式碼 公開版
持續交付高品質程式碼 公開版
 
我們與Azure DevOps的距離
我們與Azure DevOps的距離我們與Azure DevOps的距離
我們與Azure DevOps的距離
 
1 opening-jeff-storagesummit-347340-zhs
1 opening-jeff-storagesummit-347340-zhs1 opening-jeff-storagesummit-347340-zhs
1 opening-jeff-storagesummit-347340-zhs
 
王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAE
 

軟體架構模式