SlideShare a Scribd company logo
1 of 25
DDD x Architecture
K.NET Clark
2020-11-27
關於我 - Clark
Microsoft MVP (2013~2018)
部落格:昏睡領域
http://www.dotblogs.com.tw/clark/
技術專長:
領域驅動設計開發
軟體架構分析設計
軟/韌/硬體整合開發
架構師的願景及策略 - Clark
商業
目標
持續累積領域知識
系統架構
簡單、重覆、習慣、文化
Agenda - DDD x Architecture
 技術很多要學習
 功能很多要開發
 客戶很多要服務
 模組很多要重用
 總結
Agenda - DDD x Architecture
 技術很多要學習
 功能很多要開發
 客戶很多要服務
 模組很多要重用
 總結
技術很多要學,怎麼辦?
 以DomainContext模型為原點,定位及滲透技術領域
Python
Java
C#
iOSSOAP
REST Xamarin
Android
MVC
Microservice
SaaS
MVVM
SOA
PaaS
DomainContext
Model
DomainContext模型,是甚麼?
 DomainContext模型,提供標準化設計、將模型轉為程式
領域知識
領域模型
物件模型
物件程式
Domain Layer
Repostory Service Provider
Entity
Context
Presentation Layer
Access Layer
DomainContext模型,怎麼用?
 DomainContext模型,減少思考關注點、循序學習技術
Python
Java
C#
iOS
Android
MVC
MVVM
1
2
3
Domain Layer
Repostory Service Provider
Entity
Context
Presentation Layer
Access Layer
Agenda - DDD x Architecture
 技術很多要學習
 功能很多要開發
 客戶很多要服務
 模組很多要重用
 總結
功能很多要開發,怎麼辦?
 以DomainContext模型為單位,將系統功能切割為多個
Context (Context Mapping、三層立體模型)
Domain Layer
行銷活動
物流管理
會員管理
商品管理
優惠票卷
電子郵件
客群分析
Presentation Layer
Access Layer
Context之間的關係是甚麼?
 套用物件導向、設計模式, 進行Context之間連結
參考
繼承
轉接
行銷活動 會員管理
會員管理
VIP
會員管理
商品交易
Mail
交易通知
電子郵件
SMS
交易通知
手機簡訊
Context變「多」怎麼管理?
 套用Layer架構,依領域分類橫向切割 (前後台同模型)
ApplicationInfrastructure
Mail Logging
SMS
行銷活動
客群分析
優惠票卷 會員管理
物流管理 商品管理
商場管理聖誕活動 過年活動
Context變「超多」怎麼管理?
 套用中台戰略,依領域分類直向切割(三層立體模型、展示層可抽換)
ApplicationPlatformInfrastructure
行銷系統 交易系統
Mail Logging
SMS
行銷活動
客群分析
優惠票卷 會員管理
物流管理
商品管理
網路商城 直播帶貨聖誕活動 過年活動
Agenda - DDD x Architecture
 技術很多要學習
 功能很多要開發
 客戶很多要服務
 模組很多要重用
 總結
客戶很多要服務,怎麼辦?
 以DomainContext模型為單位,將Context切割至獨立Node
進行資源分配
Node A Node B
CPU
IO
Scale-up
Scale-out
1
2
DB
Context之間的關係是甚麼?
 套用通訊協定, 進行Context之間連結,以提供資源分配
Node A Node B
REST
SOAP1
gRPC
Software
Load Balancer
Hardware
Load Balancer
2
Context變「多」怎麼管理?
 套用Microservice架構,提供平台等級管理功能 (功能是長出來的)
Node A Node B
Node C
Microservice
服務註冊
自動擴展
服務探索
流量管制
附載平衡
異常監控
調用追蹤
異常融斷
調用權限
Context變「超多」怎麼管理?
 套用Tier架構、中台戰略,依領域分類切割 (Layer+Tier混搭)
ApplicationPlatform
行銷系統 交易系統
行銷活動
客群分析
優惠票卷 會員管理
物流管理
商品管理
網路商城 直播帶貨聖誕活動 過年活動
Microservice
服務註冊
自動擴展
服務探索
流量管制
附載平衡
異常監控
調用追蹤
異常熔斷
調用權限
Agenda - DDD x Architecture
 技術很多要學習
 功能很多要開發
 客戶很多要服務
 模組很多要重用
 總結
模組很多要重用,怎麼辦?
 以DomainContext模型為單位,提供各種重用 (Layer+Tier混搭)
Application
Context
Context
Application
Context
Node
Context
Application
Context
Platform
Context
Platform
Context
Library Service Platform
PaaS也是一種重用方式,怎麼做?
 平台等級重用,搭配DevOps自動佈署Context (動態配置、薄厚比例)
DevOps
源碼儲存
參數配置
分支策略
數據監控
自動編譯
Infrastructure
as Code
自動測試
Database
as Code
自動佈署
Application
網路商城
Platform
會員管理 商品管理
物流管理
Application
直播帶貨
Platform
會員管理 商品管理
物流管理
SaaS也是一種重用方式,怎麼做?
 應用等級重用,搭配TenantContext提供多租戶使用
Domain Layer
行銷活動
TenantContext
會員管理
商品管理
優惠票卷
電子郵件 客群分析
Presentation Layer
Access Layer
Set
Get
Agenda - DDD x Architecture
 技術很多要學習
 功能很多要開發
 客戶很多要服務
 模組很多要重用
 總結
DomainContext模型,是甚麼?
DDD 滿足功能性需求
Architecture 滿足非功能性需求
DomainContext 模型為原點承上啟下
DomainContext
Model
Domain Driven Design
功能性需求
Architecture
非功能性需求
DDD x Architecture
Q & A
K.NET Clark
2020-11-27

More Related Content

What's hot

.NET history and careers
.NET history and careers.NET history and careers
.NET history and careersShiny Zhu
 
架構設計入門 twMVC#11
架構設計入門 twMVC#11架構設計入門 twMVC#11
架構設計入門 twMVC#11twMVC
 
團隊開發永遠的痛 談導入團隊開發的共同規範(Final)
團隊開發永遠的痛   談導入團隊開發的共同規範(Final)團隊開發永遠的痛   談導入團隊開發的共同規範(Final)
團隊開發永遠的痛 談導入團隊開發的共同規範(Final)Gelis Wu
 
「許一個未來」軟體工程師的一天
「許一個未來」軟體工程師的一天「許一個未來」軟體工程師的一天
「許一個未來」軟體工程師的一天mailiChrist
 
使用 .NET Standard 開發跨平台應用程式
使用 .NET Standard 開發跨平台應用程式使用 .NET Standard 開發跨平台應用程式
使用 .NET Standard 開發跨平台應用程式Gelis Wu
 
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定Kyle Shen
 
前端工程化与工具链实践
前端工程化与工具链实践前端工程化与工具链实践
前端工程化与工具链实践ucarticle
 
Asp.net mvc 基礎
Asp.net mvc 基礎Asp.net mvc 基礎
Asp.net mvc 基礎Gelis Wu
 
前端大型系統的基石 TypeScript
前端大型系統的基石 TypeScript前端大型系統的基石 TypeScript
前端大型系統的基石 TypeScriptGelis Wu
 
以敏捷架構打造美國軟體外包專案的經驗談
以敏捷架構打造美國軟體外包專案的經驗談以敏捷架構打造美國軟體外包專案的經驗談
以敏捷架構打造美國軟體外包專案的經驗談Will Huang
 

What's hot (11)

.NET history and careers
.NET history and careers.NET history and careers
.NET history and careers
 
架構設計入門 twMVC#11
架構設計入門 twMVC#11架構設計入門 twMVC#11
架構設計入門 twMVC#11
 
團隊開發永遠的痛 談導入團隊開發的共同規範(Final)
團隊開發永遠的痛   談導入團隊開發的共同規範(Final)團隊開發永遠的痛   談導入團隊開發的共同規範(Final)
團隊開發永遠的痛 談導入團隊開發的共同規範(Final)
 
「許一個未來」軟體工程師的一天
「許一個未來」軟體工程師的一天「許一個未來」軟體工程師的一天
「許一個未來」軟體工程師的一天
 
使用 .NET Standard 開發跨平台應用程式
使用 .NET Standard 開發跨平台應用程式使用 .NET Standard 開發跨平台應用程式
使用 .NET Standard 開發跨平台應用程式
 
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
 
軟體架構模式
軟體架構模式軟體架構模式
軟體架構模式
 
前端工程化与工具链实践
前端工程化与工具链实践前端工程化与工具链实践
前端工程化与工具链实践
 
Asp.net mvc 基礎
Asp.net mvc 基礎Asp.net mvc 基礎
Asp.net mvc 基礎
 
前端大型系統的基石 TypeScript
前端大型系統的基石 TypeScript前端大型系統的基石 TypeScript
前端大型系統的基石 TypeScript
 
以敏捷架構打造美國軟體外包專案的經驗談
以敏捷架構打造美國軟體外包專案的經驗談以敏捷架構打造美國軟體外包專案的經驗談
以敏捷架構打造美國軟體外包專案的經驗談
 

Similar to DDD x Architecture

海通证券金融云思考与实践(数据技术嘉年华2017)
海通证券金融云思考与实践(数据技术嘉年华2017)海通证券金融云思考与实践(数据技术嘉年华2017)
海通证券金融云思考与实践(数据技术嘉年华2017)Zhaoyang Wang
 
領域驅動設計 (Domain Driven Design)
領域驅動設計 (Domain Driven Design)領域驅動設計 (Domain Driven Design)
領域驅動設計 (Domain Driven Design)Jeff Chu
 
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗Drupal Taiwan
 
Ddd(meetup 2) ddd with clean architecture
Ddd(meetup 2) ddd with clean architectureDdd(meetup 2) ddd with clean architecture
Ddd(meetup 2) ddd with clean architecture國昭 張
 
微服務的基礎建設 - Service Discovery, Andrew Wu
微服務的基礎建設 - Service Discovery, Andrew Wu微服務的基礎建設 - Service Discovery, Andrew Wu
微服務的基礎建設 - Service Discovery, Andrew WuAndrew Wu
 
微服務對IT人員的衝擊
微服務對IT人員的衝擊微服務對IT人員的衝擊
微服務對IT人員的衝擊Philip Zheng
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)Duran Hsieh
 
應用 Azure Platform-as-a-Service & DevOps 打造彈性企業服務
應用 Azure Platform-as-a-Service & DevOps 打造彈性企業服務應用 Azure Platform-as-a-Service & DevOps 打造彈性企業服務
應用 Azure Platform-as-a-Service & DevOps 打造彈性企業服務Edward Kuo
 
twMVC#11 | 架構設計入門
twMVC#11 | 架構設計入門twMVC#11 | 架構設計入門
twMVC#11 | 架構設計入門twMVC
 
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境drewz lin
 
淘宝网前端应用与发展
淘宝网前端应用与发展淘宝网前端应用与发展
淘宝网前端应用与发展taobao.com
 
实习生答辩Finally
实习生答辩Finally实习生答辩Finally
实习生答辩FinallyMars007
 
学术讲座
学术讲座学术讲座
学术讲座cun
 
2023 08 - SRE 實踐與開發平台指南 - 書友見面會
2023 08 - SRE 實踐與開發平台指南 - 書友見面會2023 08 - SRE 實踐與開發平台指南 - 書友見面會
2023 08 - SRE 實踐與開發平台指南 - 書友見面會Rick Hwang
 
Big Data Technology - Cloud Computing
Big Data Technology - Cloud ComputingBig Data Technology - Cloud Computing
Big Data Technology - Cloud ComputingRen-Hao (PAN) Pan
 
20170108 微軟大數據整合解決方案- cortana intelligence suite
20170108 微軟大數據整合解決方案- cortana intelligence suite20170108 微軟大數據整合解決方案- cortana intelligence suite
20170108 微軟大數據整合解決方案- cortana intelligence suiteMeng-Ru (Raymond) Tsai
 
Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京
Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京
Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京Li Yi
 
浅谈架构升级
浅谈架构升级浅谈架构升级
浅谈架构升级Hardway Hou
 
2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设Tianwei Liu
 

Similar to DDD x Architecture (20)

海通证券金融云思考与实践(数据技术嘉年华2017)
海通证券金融云思考与实践(数据技术嘉年华2017)海通证券金融云思考与实践(数据技术嘉年华2017)
海通证券金融云思考与实践(数据技术嘉年华2017)
 
領域驅動設計 (Domain Driven Design)
領域驅動設計 (Domain Driven Design)領域驅動設計 (Domain Driven Design)
領域驅動設計 (Domain Driven Design)
 
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
 
Ddd(meetup 2) ddd with clean architecture
Ddd(meetup 2) ddd with clean architectureDdd(meetup 2) ddd with clean architecture
Ddd(meetup 2) ddd with clean architecture
 
微服務的基礎建設 - Service Discovery, Andrew Wu
微服務的基礎建設 - Service Discovery, Andrew Wu微服務的基礎建設 - Service Discovery, Andrew Wu
微服務的基礎建設 - Service Discovery, Andrew Wu
 
Ria lqj
Ria lqjRia lqj
Ria lqj
 
微服務對IT人員的衝擊
微服務對IT人員的衝擊微服務對IT人員的衝擊
微服務對IT人員的衝擊
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
 
應用 Azure Platform-as-a-Service & DevOps 打造彈性企業服務
應用 Azure Platform-as-a-Service & DevOps 打造彈性企業服務應用 Azure Platform-as-a-Service & DevOps 打造彈性企業服務
應用 Azure Platform-as-a-Service & DevOps 打造彈性企業服務
 
twMVC#11 | 架構設計入門
twMVC#11 | 架構設計入門twMVC#11 | 架構設計入門
twMVC#11 | 架構設計入門
 
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
 
淘宝网前端应用与发展
淘宝网前端应用与发展淘宝网前端应用与发展
淘宝网前端应用与发展
 
实习生答辩Finally
实习生答辩Finally实习生答辩Finally
实习生答辩Finally
 
学术讲座
学术讲座学术讲座
学术讲座
 
2023 08 - SRE 實踐與開發平台指南 - 書友見面會
2023 08 - SRE 實踐與開發平台指南 - 書友見面會2023 08 - SRE 實踐與開發平台指南 - 書友見面會
2023 08 - SRE 實踐與開發平台指南 - 書友見面會
 
Big Data Technology - Cloud Computing
Big Data Technology - Cloud ComputingBig Data Technology - Cloud Computing
Big Data Technology - Cloud Computing
 
20170108 微軟大數據整合解決方案- cortana intelligence suite
20170108 微軟大數據整合解決方案- cortana intelligence suite20170108 微軟大數據整合解決方案- cortana intelligence suite
20170108 微軟大數據整合解決方案- cortana intelligence suite
 
Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京
Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京
Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京
 
浅谈架构升级
浅谈架构升级浅谈架构升级
浅谈架构升级
 
2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设
 

DDD x Architecture