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和物件導向程式設計高度契合,領域模型將一比一直接反映到 中,由此...