什麼是領域驅動設計(DDD)?- mathias
領域驅動設計是一門軟體設計學科,其核心原則是:
- 複雜領域的軟體要求所有設計人員(工程師、測試人員、分析師……)在領域專家的指導下對該領域有深入的、共同的理解
- 這種理解植根於語言:領域語言應該被形式化為一種無處不在的語言(共享、一致、明確)
- 理解表達在專家和設計師之間共享的模型中,該模型表達問題空間(相對於解決方案空間)
- 模型無法迴避用明確方式表示根本複雜域。
- 一個複雜的領域不能有效地表達為單一的通用模型和語言,因此必須由系統設計者分離成有界上下文(即內部一致的語言和模型)
- 模型和語言應該與我們對領域的理解和變化保持同步,透過不斷重構以獲得更深入的洞察力
DDD 是一門設計學科,您可以在其中
- 把握領域
- 同意一種語言
- 在共享模型中表達
- 擁抱複雜性
- 在上下文中分離模型
- ......並不斷進化它們
以上是著名DDD專家mathiasverraes的定義,背景資料:
領域驅動設計提供了一個關於軟體設計的包羅永珍的觀點。它從微觀層面的程式碼和設計模式,到模型及其語言,到模型之間的通訊和關係,再到對系統系統的大規模推理來考慮設計。最重要的是,它旨在務實。您不會在所有地方都應用 DDD,而是在它會產生最大影響的地方進行。
DDD 不是規定性的。它沒有關於如何去做的規則,並且對新的解釋持開放態度。它沒有規定的方法,或做法,甚至圖案書中1是為了說明,而非最後一組。許多人們現在認為是 DDD 的核心方法,例如 EventStorming,在本書撰寫時並不存在。
這使得眾所周知的 DDD 難以定義。這個定義專門將 DDD 作為一門學科,即設計為你所做的,具有一套指導原則的活動。我已經在我的研討會中使用和改進這個定義大約 6 到 7 年了,所以我希望它足夠堅固,對 DDD 的新手和經驗豐富的從業者都有用。我希望它保持最新的新見解。
相關文章
- 什麼是DDD領域驅動設計的戰略設計?
- 什麼是DDD領域驅動設計的戰術設計?
- 什麼是DDD領域驅動設計的統一語言?
- DDD領域驅動設計:領域事件事件
- DDD領域驅動設計pdf
- 領域驅動設計的DDD與ddd - nick
- DDD-領域驅動設計示例
- 淺談DDD(領域驅動設計)
- 淺談 DDD 領域驅動設計
- DDD領域驅動設計:倉儲
- dayatang/dddlib:DDD領域驅動設計庫
- DDD-領域驅動設計簡談
- 領域驅動設計(DDD)入門&概要
- 領域驅動設計 (DDD) 簡介 - jannikwempe
- 領域驅動設計(DDD)實踐之路(一)
- 領域驅動設計(DDD)高手養成記
- 領域驅動設計中的聚合是什麼? - James Hickey
- 【DDD】《如何運用領域驅動設計》彙總
- 領域驅動設計(DDD)實踐之路(二):事件驅動與CQRS事件
- 聊一聊中臺和DDD(領域驅動設計)
- 不容錯過!什麼是領域驅動設計?為什麼落地這麼難?
- 去哪兒網領域驅動設計(DDD)實踐之路
- 領域驅動設計(DDD)中模型的重要性 - Jeronimo模型
- 為什麼要進行領域驅動設計? - Vincent
- DDD領域驅動設計總結和C#程式碼示例C#
- 領域驅動設計DDD和CQRS架構模式落地實踐架構模式
- .NET領域驅動設計—看DDD是如何運用設計模式顛覆傳統架構設計模式架構
- MasaFramework -- 領域驅動設計Framework
- 領域驅動設計示例
- 理解領域驅動設計
- DDD設計中領域模型是否可以依賴第三方? - Mathias Verraes模型
- ABP與DDD領域驅動關係
- 一張圖解釋DDD領域驅動設計的戰術概念圖解
- 領域驅動設計DDD不具備大規模落地的條件!
- DDD社群權威解讀:2020年之領域驅動設計 - ziobrando
- Java開發架構篇《初識領域驅動設計DDD落地》Java架構
- Java開發架構篇:初識領域驅動設計DDD落地Java架構
- DDD領域驅動設計架構模式:防腐層(Anti-corruption layer)架構模式