SlideShare uma empresa Scribd logo
1 de 73
Domain-Driven Design
快快樂樂學DDD
2014/06/20
關於我
 Microsoft C# MVP
 部落格:昏睡領域 http://www.dotblogs.com.tw/clark/
 技術專長:
 軟硬體整合開發
 軟體架構分析設計
 物件導向分析設計
--簡介--
什麼是DDD
Domain-Driven Design
作者:Eric Evans
DDD是一種開發流程
在RA、SA、SD、PG階
段提供[設計方針]
讓開發不再是憑直覺
--設計方針:RA階段--
一般需求分析產出?
Prototype
使用案例
流程圖
功能說明
用途:傳遞知識
問題?
程序導向?物件導向?
大多是系統表象?
怎麼轉化為程式碼?
靠經驗、靠直覺
RA階段設計方針!
領域知識=>領域模型
門禁系統功能說明
1. 遠端開門:保全可以遠端開門。
2. 刷卡開門:住戶可以刷卡開門。
門禁系統領域模型
住戶 大門授權
卡片
1
*
1
* 1
*
優點?
圖形化思考
創造公共語言
挖掘領域知識
模型即程式
重點:消化領域知識
--設計方針:SA階段--
一般系統分析產出?
物理架構圖
拆解伺服器
邏輯架構圖
拆解子系統
分層架構圖
拆解LAYER
模組區塊圖
拆解MODULE
問題?
怎麼拆解模組區塊?
分三層夠嗎?
靠經驗、靠直覺
SA階段設計方針!
領域模型=>架構設計
DDD分層架構
Presentation Layer
Application Layer
Domain Layer
Infrastructure Layer
DDD模組區塊
A CB
F G
D
H
E
I
DDD模組區塊
A CB
F G
D
H
E
I
重點:分離領域
--設計方針:SD階段--
一般系統設計產出?
類別圖
順序圖
狀態圖
問題?
物件定義哪邊來?
系統邊界怎麼定義?
靠經驗、靠直覺
SD階段設計方針!
領域模型=>物件模型
模式:Entity
模式:Value Object
模式:Aggregate
模式:Repository
模式:還有很多
重點:職責散落
--設計方針:PG階段--
一般程式開發產出?
程式碼
PG階段設計方針!
物件模型=>物件程式
程式碼
重點:回饋與反覆
Q & A
Domain-Driven Design
快快樂樂學DDD

Mais conteúdo relacionado

Mais procurados

與設計架構當朋友
與設計架構當朋友 與設計架構當朋友
與設計架構當朋友 Win Yu
 
架構設計入門 twMVC#11
架構設計入門 twMVC#11架構設計入門 twMVC#11
架構設計入門 twMVC#11twMVC
 
使用 .NET Standard 開發跨平台應用程式
使用 .NET Standard 開發跨平台應用程式使用 .NET Standard 開發跨平台應用程式
使用 .NET Standard 開發跨平台應用程式Gelis Wu
 
以敏捷架構打造美國軟體外包專案的經驗談
以敏捷架構打造美國軟體外包專案的經驗談以敏捷架構打造美國軟體外包專案的經驗談
以敏捷架構打造美國軟體外包專案的經驗談Will Huang
 
架構設計好簡單系列 設計符合團隊的範本精靈 (Project template)
架構設計好簡單系列   設計符合團隊的範本精靈 (Project template)架構設計好簡單系列   設計符合團隊的範本精靈 (Project template)
架構設計好簡單系列 設計符合團隊的範本精靈 (Project template)Gelis Wu
 
前端工程化与工具链实践
前端工程化与工具链实践前端工程化与工具链实践
前端工程化与工具链实践ucarticle
 
前端大型系統的基石 TypeScript
前端大型系統的基石 TypeScript前端大型系統的基石 TypeScript
前端大型系統的基石 TypeScriptGelis Wu
 
.NET history and careers
.NET history and careers.NET history and careers
.NET history and careersShiny Zhu
 
軟體開發之路甘苦談(Gelis)
軟體開發之路甘苦談(Gelis)軟體開發之路甘苦談(Gelis)
軟體開發之路甘苦談(Gelis)Gelis Wu
 
Asp.net mvc 基礎
Asp.net mvc 基礎Asp.net mvc 基礎
Asp.net mvc 基礎Gelis Wu
 
從實戰經驗看到的 K8S 導入痛點
從實戰經驗看到的 K8S 導入痛點從實戰經驗看到的 K8S 導入痛點
從實戰經驗看到的 K8S 導入痛點Will Huang
 
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定Kyle Shen
 
你的軟體架構夠敏捷嗎?
你的軟體架構夠敏捷嗎?你的軟體架構夠敏捷嗎?
你的軟體架構夠敏捷嗎?Gelis Wu
 
專業顧問的技能成長日記
專業顧問的技能成長日記專業顧問的技能成長日記
專業顧問的技能成長日記Gelis Wu
 
軟體架構設計的技術養成之路
軟體架構設計的技術養成之路軟體架構設計的技術養成之路
軟體架構設計的技術養成之路Gelis Wu
 
Net 6 的 blazor 開發新視界
Net 6 的 blazor 開發新視界Net 6 的 blazor 開發新視界
Net 6 的 blazor 開發新視界Gelis Wu
 
DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作teddysoft
 
I os与android多平台开发心得
I os与android多平台开发心得I os与android多平台开发心得
I os与android多平台开发心得drewz lin
 

Mais procurados (20)

與設計架構當朋友
與設計架構當朋友 與設計架構當朋友
與設計架構當朋友
 
架構設計入門 twMVC#11
架構設計入門 twMVC#11架構設計入門 twMVC#11
架構設計入門 twMVC#11
 
使用 .NET Standard 開發跨平台應用程式
使用 .NET Standard 開發跨平台應用程式使用 .NET Standard 開發跨平台應用程式
使用 .NET Standard 開發跨平台應用程式
 
軟體架構模式
軟體架構模式軟體架構模式
軟體架構模式
 
以敏捷架構打造美國軟體外包專案的經驗談
以敏捷架構打造美國軟體外包專案的經驗談以敏捷架構打造美國軟體外包專案的經驗談
以敏捷架構打造美國軟體外包專案的經驗談
 
架構設計好簡單系列 設計符合團隊的範本精靈 (Project template)
架構設計好簡單系列   設計符合團隊的範本精靈 (Project template)架構設計好簡單系列   設計符合團隊的範本精靈 (Project template)
架構設計好簡單系列 設計符合團隊的範本精靈 (Project template)
 
前端工程化与工具链实践
前端工程化与工具链实践前端工程化与工具链实践
前端工程化与工具链实践
 
前端大型系統的基石 TypeScript
前端大型系統的基石 TypeScript前端大型系統的基石 TypeScript
前端大型系統的基石 TypeScript
 
.NET history and careers
.NET history and careers.NET history and careers
.NET history and careers
 
軟體開發之路甘苦談(Gelis)
軟體開發之路甘苦談(Gelis)軟體開發之路甘苦談(Gelis)
軟體開發之路甘苦談(Gelis)
 
Asp.net mvc 基礎
Asp.net mvc 基礎Asp.net mvc 基礎
Asp.net mvc 基礎
 
從實戰經驗看到的 K8S 導入痛點
從實戰經驗看到的 K8S 導入痛點從實戰經驗看到的 K8S 導入痛點
從實戰經驗看到的 K8S 導入痛點
 
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
 
你的軟體架構夠敏捷嗎?
你的軟體架構夠敏捷嗎?你的軟體架構夠敏捷嗎?
你的軟體架構夠敏捷嗎?
 
專業顧問的技能成長日記
專業顧問的技能成長日記專業顧問的技能成長日記
專業顧問的技能成長日記
 
Android工作坊
Android工作坊Android工作坊
Android工作坊
 
軟體架構設計的技術養成之路
軟體架構設計的技術養成之路軟體架構設計的技術養成之路
軟體架構設計的技術養成之路
 
Net 6 的 blazor 開發新視界
Net 6 的 blazor 開發新視界Net 6 的 blazor 開發新視界
Net 6 的 blazor 開發新視界
 
DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作
 
I os与android多平台开发心得
I os与android多平台开发心得I os与android多平台开发心得
I os与android多平台开发心得
 

Semelhante a [DDD] 快快樂樂學DDD

領域驅動設計 (Domain Driven Design)
領域驅動設計 (Domain Driven Design)領域驅動設計 (Domain Driven Design)
領域驅動設計 (Domain Driven Design)Jeff Chu
 
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
 
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗Drupal Taiwan
 
2021 DDDTW Study Group 第一場 導讀
2021 DDDTW Study Group 第一場 導讀2021 DDDTW Study Group 第一場 導讀
2021 DDDTW Study Group 第一場 導讀hoblues
 
前端开发的那些事儿
前端开发的那些事儿前端开发的那些事儿
前端开发的那些事儿jndream
 
Software Development via A.I.
Software Development via A.I.Software Development via A.I.
Software Development via A.I.f62vj7ctgx
 
N-layer design & development
N-layer design & developmentN-layer design & development
N-layer design & developmentXuefeng Zhang
 
你所不知道的 DDD - 文件驅動開發
你所不知道的 DDD - 文件驅動開發你所不知道的 DDD - 文件驅動開發
你所不知道的 DDD - 文件驅動開發志龍 陳
 
前端样式开发演变之路
前端样式开发演变之路前端样式开发演变之路
前端样式开发演变之路Zhao Lei
 
2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设Tianwei Liu
 
移动互联网的机遇与挑战
移动互联网的机遇与挑战移动互联网的机遇与挑战
移动互联网的机遇与挑战Courtney Chow
 
Top100summit前端的云时代支付宝前端平台架构 王保平
Top100summit前端的云时代支付宝前端平台架构  王保平Top100summit前端的云时代支付宝前端平台架构  王保平
Top100summit前端的云时代支付宝前端平台架构 王保平drewz lin
 
Ibm Soa编程模型
Ibm Soa编程模型Ibm Soa编程模型
Ibm Soa编程模型olderp
 
软件项目管理与团队合作
软件项目管理与团队合作软件项目管理与团队合作
软件项目管理与团队合作晟 沈
 
达尔文信息云平台
达尔文信息云平台达尔文信息云平台
达尔文信息云平台SmartData
 
在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训
在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训 在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训
在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训 zhiyanhui
 

Semelhante a [DDD] 快快樂樂學DDD (20)

領域驅動設計 (Domain Driven Design)
領域驅動設計 (Domain Driven Design)領域驅動設計 (Domain Driven Design)
領域驅動設計 (Domain Driven Design)
 
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)
 
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
 
2021 DDDTW Study Group 第一場 導讀
2021 DDDTW Study Group 第一場 導讀2021 DDDTW Study Group 第一場 導讀
2021 DDDTW Study Group 第一場 導讀
 
前端开发的那些事儿
前端开发的那些事儿前端开发的那些事儿
前端开发的那些事儿
 
Ria lqj
Ria lqjRia lqj
Ria lqj
 
Software Development via A.I.
Software Development via A.I.Software Development via A.I.
Software Development via A.I.
 
N-layer design & development
N-layer design & developmentN-layer design & development
N-layer design & development
 
你所不知道的 DDD - 文件驅動開發
你所不知道的 DDD - 文件驅動開發你所不知道的 DDD - 文件驅動開發
你所不知道的 DDD - 文件驅動開發
 
前端样式开发演变之路
前端样式开发演变之路前端样式开发演变之路
前端样式开发演变之路
 
2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设
 
移动互联网的机遇与挑战
移动互联网的机遇与挑战移动互联网的机遇与挑战
移动互联网的机遇与挑战
 
Top100summit前端的云时代支付宝前端平台架构 王保平
Top100summit前端的云时代支付宝前端平台架构  王保平Top100summit前端的云时代支付宝前端平台架构  王保平
Top100summit前端的云时代支付宝前端平台架构 王保平
 
DDD引導
DDD引導DDD引導
DDD引導
 
Jobforcompal
JobforcompalJobforcompal
Jobforcompal
 
Ibm Soa编程模型
Ibm Soa编程模型Ibm Soa编程模型
Ibm Soa编程模型
 
Ibm Soa编程模型
Ibm Soa编程模型Ibm Soa编程模型
Ibm Soa编程模型
 
软件项目管理与团队合作
软件项目管理与团队合作软件项目管理与团队合作
软件项目管理与团队合作
 
达尔文信息云平台
达尔文信息云平台达尔文信息云平台
达尔文信息云平台
 
在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训
在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训 在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训
在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训
 

[DDD] 快快樂樂學DDD