SlideShare a Scribd company logo
軟體架構模式
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

More Related Content

What's hot

Testing in Production, Deploy on Fridays
Testing in Production, Deploy on FridaysTesting in Production, Deploy on Fridays
Testing in Production, Deploy on Fridays
Yi-Feng Tzeng
 
團隊協作實戰DDD
團隊協作實戰DDD團隊協作實戰DDD
團隊協作實戰DDD
Jed Lin
 
微服務的基礎建設 - Service Discovery, Andrew Wu
微服務的基礎建設 - Service Discovery, Andrew Wu微服務的基礎建設 - Service Discovery, Andrew Wu
微服務的基礎建設 - Service Discovery, Andrew Wu
Andrew Wu
 
事件風暴-領域建模
事件風暴-領域建模事件風暴-領域建模
事件風暴-領域建模
國昭 張
 
我的 DevOps 故事
我的 DevOps 故事我的 DevOps 故事
我的 DevOps 故事
Poy Chang
 
gRPC:更高效的微服務介面
gRPC:更高效的微服務介面gRPC:更高效的微服務介面
gRPC:更高效的微服務介面
William Yeh
 
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
増田 亨
 
三層式架構設計
三層式架構設計三層式架構設計
三層式架構設計
Clark
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
Hannah Farrugia
 
Summary of Scrum Guide
Summary of Scrum GuideSummary of Scrum Guide
Summary of Scrum Guide
Naoto Nishimura
 
大規模微服務導入 - #2 從零開始的微服務 .NET Core 框架設計
大規模微服務導入 - #2 從零開始的微服務 .NET Core 框架設計大規模微服務導入 - #2 從零開始的微服務 .NET Core 框架設計
大規模微服務導入 - #2 從零開始的微服務 .NET Core 框架設計
Andrew Wu
 
モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013
モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013
モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013
Kinji Akemine
 
CI CD Basics
CI CD BasicsCI CD Basics
CI CD Basics
Prabhu Ramkumar
 
微服務對IT人員的衝擊
微服務對IT人員的衝擊微服務對IT人員的衝擊
微服務對IT人員的衝擊
Philip Zheng
 
我們與Azure DevOps的距離
我們與Azure DevOps的距離我們與Azure DevOps的距離
我們與Azure DevOps的距離
Edward Kuo
 
從實戰經驗看到的 K8S 導入痛點
從實戰經驗看到的 K8S 導入痛點從實戰經驗看到的 K8S 導入痛點
從實戰經驗看到的 K8S 導入痛點
Will Huang
 
GitLab CI/CD パイプライン
GitLab CI/CD パイプラインGitLab CI/CD パイプライン
GitLab CI/CD パイプライン
Tetsurou Yano
 
Apache OpenWhiskで実現するプライベートFaaS環境 #tjdev
Apache OpenWhiskで実現するプライベートFaaS環境 #tjdevApache OpenWhiskで実現するプライベートFaaS環境 #tjdev
Apache OpenWhiskで実現するプライベートFaaS環境 #tjdev
Yahoo!デベロッパーネットワーク
 
スクラム開発チームの立ち上げでアンチパターンを踏みまくった話 #GWD_Nulab
スクラム開発チームの立ち上げでアンチパターンを踏みまくった話 #GWD_Nulab スクラム開発チームの立ち上げでアンチパターンを踏みまくった話 #GWD_Nulab
スクラム開発チームの立ち上げでアンチパターンを踏みまくった話 #GWD_Nulab
@yuzutas0 Yokoyama
 
Github codespaces すごく良い。もうこれで 十分なんじゃという話
Github codespaces すごく良い。もうこれで 十分なんじゃという話Github codespaces すごく良い。もうこれで 十分なんじゃという話
Github codespaces すごく良い。もうこれで 十分なんじゃという話
xiidec
 

What's hot (20)

Testing in Production, Deploy on Fridays
Testing in Production, Deploy on FridaysTesting in Production, Deploy on Fridays
Testing in Production, Deploy on Fridays
 
團隊協作實戰DDD
團隊協作實戰DDD團隊協作實戰DDD
團隊協作實戰DDD
 
微服務的基礎建設 - Service Discovery, Andrew Wu
微服務的基礎建設 - Service Discovery, Andrew Wu微服務的基礎建設 - Service Discovery, Andrew Wu
微服務的基礎建設 - Service Discovery, Andrew Wu
 
事件風暴-領域建模
事件風暴-領域建模事件風暴-領域建模
事件風暴-領域建模
 
我的 DevOps 故事
我的 DevOps 故事我的 DevOps 故事
我的 DevOps 故事
 
gRPC:更高效的微服務介面
gRPC:更高效的微服務介面gRPC:更高效的微服務介面
gRPC:更高效的微服務介面
 
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
 
三層式架構設計
三層式架構設計三層式架構設計
三層式架構設計
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Summary of Scrum Guide
Summary of Scrum GuideSummary of Scrum Guide
Summary of Scrum Guide
 
大規模微服務導入 - #2 從零開始的微服務 .NET Core 框架設計
大規模微服務導入 - #2 從零開始的微服務 .NET Core 框架設計大規模微服務導入 - #2 從零開始的微服務 .NET Core 框架設計
大規模微服務導入 - #2 從零開始的微服務 .NET Core 框架設計
 
モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013
モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013
モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013
 
CI CD Basics
CI CD BasicsCI CD Basics
CI CD Basics
 
微服務對IT人員的衝擊
微服務對IT人員的衝擊微服務對IT人員的衝擊
微服務對IT人員的衝擊
 
我們與Azure DevOps的距離
我們與Azure DevOps的距離我們與Azure DevOps的距離
我們與Azure DevOps的距離
 
從實戰經驗看到的 K8S 導入痛點
從實戰經驗看到的 K8S 導入痛點從實戰經驗看到的 K8S 導入痛點
從實戰經驗看到的 K8S 導入痛點
 
GitLab CI/CD パイプライン
GitLab CI/CD パイプラインGitLab CI/CD パイプライン
GitLab CI/CD パイプライン
 
Apache OpenWhiskで実現するプライベートFaaS環境 #tjdev
Apache OpenWhiskで実現するプライベートFaaS環境 #tjdevApache OpenWhiskで実現するプライベートFaaS環境 #tjdev
Apache OpenWhiskで実現するプライベートFaaS環境 #tjdev
 
スクラム開発チームの立ち上げでアンチパターンを踏みまくった話 #GWD_Nulab
スクラム開発チームの立ち上げでアンチパターンを踏みまくった話 #GWD_Nulab スクラム開発チームの立ち上げでアンチパターンを踏みまくった話 #GWD_Nulab
スクラム開発チームの立ち上げでアンチパターンを踏みまくった話 #GWD_Nulab
 
Github codespaces すごく良い。もうこれで 十分なんじゃという話
Github codespaces すごく良い。もうこれで 十分なんじゃという話Github codespaces すごく良い。もうこれで 十分なんじゃという話
Github codespaces すごく良い。もうこれで 十分なんじゃという話
 

Viewers also liked

軟體開發之路甘苦談(Gelis)
軟體開發之路甘苦談(Gelis)軟體開發之路甘苦談(Gelis)
軟體開發之路甘苦談(Gelis)
Gelis Wu
 
活用 Application insight
活用 Application insight活用 Application insight
活用 Application insight
Gelis Wu
 
Natural Interfaces for Augmented Reality
Natural Interfaces for Augmented RealityNatural Interfaces for Augmented Reality
Natural Interfaces for Augmented Reality
Mark Billinghurst
 
Information system architecture
Information system architectureInformation system architecture
Information system architecture
Dr. Vardhan choubey
 
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
Peeyush Vishwakarma
 
Wireless Sensor System Architecture
Wireless Sensor System ArchitectureWireless Sensor System Architecture
Wireless Sensor System Architecture
varun 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 Design
Aamir Abbas
 

Viewers also liked (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 to 軟體架構模式

微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
Andrew Wu
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
Paul Chao
 
廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰
Paul Chao
 
去哪儿Ugc平台设计经验
去哪儿Ugc平台设计经验去哪儿Ugc平台设计经验
去哪儿Ugc平台设计经验
mysqlops
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
Paul 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 development
Sway 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.pptx
Qiming Teng
 
持續交付高品質程式碼 公開版
持續交付高品質程式碼 公開版持續交付高品質程式碼 公開版
持續交付高品質程式碼 公開版
Kirk Chen
 
1 opening-jeff-storagesummit-347340-zhs
1 opening-jeff-storagesummit-347340-zhs1 opening-jeff-storagesummit-347340-zhs
1 opening-jeff-storagesummit-347340-zhs
ITband
 
王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计YANGL *
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAEq3boy
 
02.wls概览
02.wls概览02.wls概览
02.wls概览Meng He
 

Similar to 軟體架構模式 (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
 
持續交付高品質程式碼 公開版
持續交付高品質程式碼 公開版持續交付高品質程式碼 公開版
持續交付高品質程式碼 公開版
 
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
 
02.wls概览
02.wls概览02.wls概览
02.wls概览
 

軟體架構模式