如何進行DDD實作
by
SoftLeader
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
如何進行DDD實作
Slide 2
Slide 2 text
I am Steven SoftLeader Engineer
Slide 3
Slide 3 text
q戰略設計與戰術設計 q架構風格 q常見問題 q重構 Agenda
Slide 4
Slide 4 text
Google Trends
Slide 5
Slide 5 text
系統變化的原因 I/O 的變化 市場需求的變化 技術的自我挑戰
Slide 6
Slide 6 text
金髮姑娘原則 https://language.chinadaily.com.cn/trans/2013-10/23/content_17053444.htm 剛剛好就好
Slide 7
Slide 7 text
Domain Driven Design 戰略設計 戰術設計 Domain Sub-Domain Bounded Context Entity Value Object Aggregate Factory Repository Domain Service Domain Event
Slide 8
Slide 8 text
Domain and Business Domain Business
Slide 9
Slide 9 text
Bounded Context
Slide 10
Slide 10 text
三層架構對比 傳統 DDD分層
Slide 11
Slide 11 text
機制在外,策略在內 https://medium.com/clean-architecture-stories/clean-architecture-the-real-journey-starts-here-c550837d2ec6
Slide 12
Slide 12 text
Monolith DDD結構
Slide 13
Slide 13 text
Microservices https://martinfowler.com/articles/microservice-testing/#anatomy-modules
Slide 14
Slide 14 text
Microservices DDD結構
Slide 15
Slide 15 text
Q1. 邊界 微服務的大小和 DDD 沒有絕對關係 1 微服務的數量和 DDD 沒有絕對關係 2
Slide 16
Slide 16 text
Q1. 邊界 內聚性 負載狀況 服務邊界
Slide 17
Slide 17 text
Q2. 規則 不是每個功能都可以是一個微服務 1 處理服務間依賴問題 2
Slide 18
Slide 18 text
Q3. 開發 資料驅動 vs UI 驅動 vs 領域驅動 1 God Object 2 程式規範 3
Slide 19
Slide 19 text
開發結構參考
Slide 20
Slide 20 text
Layers 四層 五層 六層
Slide 21
Slide 21 text
God Object 使用 Creational Patterns 管理物件建立過程 1 選擇適合的 3rd Library 處理欄位問題 2
Slide 22
Slide 22 text
Q4. 資料 不與其他服務共用資料庫表 1 最小化資料庫表數量 2 考慮有狀態和無狀態 3 資料可用性 4
Slide 23
Slide 23 text
Q4. 資料
Slide 24
Slide 24 text
CQRS / Event Sourcing CQRS Event Sourcing
Slide 25
Slide 25 text
一致性事件
Slide 26
Slide 26 text
原子性事件
Slide 27
Slide 27 text
Q5. 維運 Trace ID 1 Centralized log management 2 DevOps 3
Slide 28
Slide 28 text
重構 https://dzone.com/articles/a-transition-from-monolith-to-microservices
Slide 29
Slide 29 text
重構
Slide 30
Slide 30 text
重構
Slide 31
Slide 31 text
重構
Slide 32
Slide 32 text
重構
Slide 33
Slide 33 text
FINAL! 1 2 3