Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

1

Share

深入淺出領域驅動設計:以 .NET 5 與線上房貸申請系統為例

Agenda
● 領域驅動設計 DDD, Domain-Driven Design 的 Domain 是什麼?
● DDD 的戰略(Strategic)、戰術(Tactical)
● 領域驅動開發基本名詞介紹
● 軟體架構設計的基本準則相依性
● 線上房貸申請的需求簡單說明
● 套上整潔架構實作篇

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

深入淺出領域驅動設計:以 .NET 5 與線上房貸申請系統為例

  1. 1. Gelis 程式設計訓練營 軟體開發之路
  2. 2. 吳俊毅 Gelis - FB 軟體開發之路-經營者 關於我 • 部落格 (Gelis 技術隨筆) http://gelis-dotnet.blogspot.tw/ • FB 粉絲團(Gelis 的程式設計訓練營) https://www.facebook.com/gelis.dev.learning/?ref=bookmarks • FB 社團 (軟體開發之路) https://www.facebook.com/groups/361804473860062/?ref=ts&fref=ts 集英信誠 -資深.NET技術顧問
  3. 3. Domain Domain 相依性 實作篇
  4. 4. Web page title http://www.url.com XX銀行線上房屋貸款申請系統 存檔 取消 中文姓名: text 行動電話: 電子信箱: text text 出生日期: 婚姻狀況: 公司名稱: 收入來源: 現住房屋: 通訊地址: / / text 年收入: 職稱: text text text text text text
  5. 5. 領域驅動開發
  6. 6. 領域驅動開發 程式碼結構 業務領域 習慣用 法 建模 通用語言(Ubiquitous Language) 迭代 • 完善模型的同時,也同步完善程式碼
  7. 7. Business Language 商業語言 Technical Language 技術語言 線上房貸 申請系統 Use Case Scenario 銀行 顧客 貸款條件 .NET Core Framework Message Queue Two-Phase Commit MSSQL Redis Clean Architecture CQRS SMPP Server Account Ubiquitous Language 通用語言 Domain Modeling 房貸利率 契約 擔保品 MVC C# Project Templates
  8. 8. 領域驅動分為兩大部分: (一). 戰略建模(Strategic) (二). 戰術建模(Tactical)
  9. 9. Bounded Context (限界上下文) Sub Domain (子領域) Context Map (上下文地圖) Bounded Context A Housing Loans Application Bounded Context B Message System Bounded Context C Interest rate U D U D U D
  10. 10. • Application Service (應用服務) • Entities (實體) • Value Object (值物件) • Aggregates (聚合) • Domain Service (領域服務) • Repository (儲存庫)
  11. 11. Entities (實體) 生命週期 獨一無二
  12. 12. Value Object (值物件) 度量一個東 西 只要兩個值對象的屬性 相等,那麼它們就是相等的 • 值對像是不可變的,如果要改變值對象的內容,那 就重新創建一個值對象 • 值對像沒有生命週期 • 例如:金額、數值 或 貨幣單位,顏色 等等..
  13. 13. Domain Service (領域服務) 操作 • 領域服務不具有狀態性
  14. 14. Application Service (應用服務) Use Case
  15. 15. Aggregates (聚合) 領域邊界 聚合邊界 建模 一群具有關聯的 領域物件集合在一起
  16. 16. Repository (儲存庫) (封裝/儲存)
  17. 17. • 根據業務情境與領域思維來設計實體、而非由資料儲存來設計 ≠ Domain Modeling ORM Model or ER-Model 領域實體結構不一定完全等於≠資料儲存結 戰術建模(Tactical Modeling)
  18. 18. 相依性 【Policy and Levels】 『各元件的〔層級〕』 • 【低層級】 【高層級】 • 例子:
  19. 19. 案例:線上房貸申請系統 • 銀行顧客,或是非銀行顧客可到網路銀行線上房貸申請首頁,使用網銀帳號或 簡訊密碼進行身份認證後,可填寫「基本資料」與「貸款資料」, • 非銀行顧客須先填寫「基本資料」 • 誰與系統互動? • 確認哪些為外部系統?  Scenario
  20. 20. Demo: 使用 .NET 5 建立程式碼
  21. 21. Q&A
  • nomadnite

    May. 9, 2021

Agenda ● 領域驅動設計 DDD, Domain-Driven Design 的 Domain 是什麼? ● DDD 的戰略(Strategic)、戰術(Tactical) ● 領域驅動開發基本名詞介紹 ● 軟體架構設計的基本準則相依性 ● 線上房貸申請的需求簡單說明 ● 套上整潔架構實作篇

Views

Total views

957

On Slideshare

0

From embeds

0

Number of embeds

7

Actions

Downloads

1

Shares

0

Comments

0

Likes

1

×