DDD(領域驅動設計)

2021-09-26 06:37:11 字數 1622 閱讀 8678

domain:領域

driven:驅動

design:設計

由eric evans最先提出,目的是對軟體所涉及到的領域進行建模,以應對系統規模過大時引起的軟體複雜性的問題。整個過程大概是這樣 ,開發團隊和領域專家一起通過「通用語言(ubiquitous language)」去理解和消化領域知識,從領域知識中提取和劃分為乙個乙個的子領域(核心子域、通過子域、支撐子域),並在子域上建立模式,在重複以上步驟,這樣周而復始,構建出一套符合當前領域的模型。

baidu-domain-demo 領域層,包含核心域的業務規則抽象,是能夠標準化的,不依賴於任何其他層的內容,抽象程度最高     

|--service 介面

baidu-domain-demo-service (類以domainservice結尾)

|--單域服務實現

|--service 介面

|-- impl  介面實現

baidu-domain-demo-core (類以repo結尾)

|--model  領域模型物件

|--extension     領域擴充套件點

|--manager   調dao介面做資料轉換

baidu-domain-demo-dal  (類以dao結尾)       資料層,主要為資料庫操作

|--dao             資料模型操作

|--do            資料庫對映物件

|--query  只解決頁面查詢物件

project-demo 專案工程

|-- start 啟動

|--start

|-- common

|-- constants 各種常量

|-- message 訊息相關

|-- util 工具

|-- integration 介面整合

|--xxsdk 各種sdk介面

|-- business demo 業務工程

|-- biz

|--api api

|--enums 列舉

|--message 訊息

|--model do->model

|--convert 物件轉換

|--service 介面

|--impl 介面實現

|--spi spi

|--util 工具

|--***業務功能 業務功能

|-- engin 工程

|--api api

|--impl api實現

|--engin

|--***功能點

提煉領域知識:who、what、why

分析業務:結構化分解

抽象、應用、平台化、產品化

應用架構核心:抽象、復用、能力下層

DDD領域驅動設計

公司裡面敏捷專案要講ddd領域驅動設計,加緊學習了一下,找了一些資料研究。eric evans的 domain driven design領域驅動設計 簡稱ddd,evans ddd是一套綜合軟體系統分析和設計的物件導向建模方法,本站jdon.com是國內公開最早討論ddd 之一,可訂閱 ddd專題...

DDD領域驅動設計

極客時間學習筆記 為什麼微服務設計的時候需要ddd?1 軟體架構模式演進的三個階段 第一階段是單機架構 第二階段是集中式架構 第三階段是分布式微服務架構 2 在單機和集中式架構這兩種模式下,軟體無法快速響應需求和業務的迅速變化,最終錯失發展良機。3 微服務拆分困境產生的根本原因就是不知道業務或者微服...

領域驅動設計(DDD)

ddd是一種軟體設計方法,簡單來說,就是先建立一套業務領域的軟體模型,然後以此模型為核心進行軟體設計和開發。ddd主要有以下幾個優點 1 ddd會建立一套模型,即領域模型,這個模型是業務領域知識的濃縮,可以避免領域知識的流失。2 ddd和物件導向程式設計高度契合,領域模型將一比一直接反映到 中,由此...