- Data Mesh權威指南
- (澳)扎馬克·德加尼
- 640字
- 2023-11-02 19:29:48
2.1 領域驅動設計簡介
領域驅動設計是一種基于業務接縫分解軟件設計(模型)和團隊分配的方法。它根據業務分解到領域的方式來分解軟件,并根據每個業務領域使用的語言對軟件進行建模。
2003年,Eric Evans在其著作Domain-Driven Design(https://oreil.ly/T5saX)中首次引入這個概念。從此以后,DDD深刻地影響了現代架構思維,進而影響了組織建模。DDD是對源于業務數字化的快速增長的軟件設計復雜性的一種回應。隨著組織日益增長的數字資產(后臺應用、數字服務、We b和移動技術)以及持續增加的特性,軟件變得越來越復雜和難以管理。
DDD把領域定義為“知識、影響力或活動的領域的范圍”。在Daff的例子中,聽眾訂閱領域知曉在訂閱和退訂時發生的事件、管理訂閱的規則,以及在訂閱事件中生成的數據等。訂閱領域確切地影響應該如何完成訂閱,以及在訂閱的過程中應該知道和捕獲哪些數據。它有一組活動來完成諸如接入新的聽眾、觸發支付等功能。我想給這個描述中添加成果。領域有特定的業務目標以及優化的成果。訂閱領域的優化成果是最大化訂閱者的數量,以及易于上手的流程和最小化中途退出的情況。
領域驅動設計以及基于領域拆分軟件建模的想法極大地影響了過去十年的軟件架構,比如微服務架構。微服務架構圍繞業務領域能力將大型復雜系統分解為分布式服務,通過服務的松散集成,交付用戶旅程和復雜的業務流程。
領域驅動設計從根本上改變了技術團隊的組成方式,并促成了業務和技術跨功能團隊的對齊。它極大地影響了組織規模化的方式,使得團隊能夠獨立和自主地擁有領域能力和數字服務。
我強烈建議在將DDD的概念應用到數據之前,先熟悉DDD。