郵箱:www.jungshuodz@163.com
手機:18268652722
電話:18268652722
地址:寧波市北侖區大碶廟前山路45號
人氣:
因為實踐DDD 的關鍵不是這個戰術層面模型的實現,而是遵守其宏觀的領域驅動設計思想,比如統一語言、領域模型與代碼的一致性、子領域與上下文的拆分與映射、領域的分離等。在劃分領域時,我們也離不開時間尺度對象,通過收斂相關的時間尺度對象來劃分領域。 Eric Evans提供的模型驅動設計的結構要素以及它們之間的關系如下圖所示: 上線活動:當運營方確認該活動可以上線后,就可以對該活動進行上線操作。
如果團隊沒有熟悉應用程序所需領域知識的領域專家,那么即使是最熟練的開發人員也無濟于事。領域驅動的設計實踐依靠持續迭代和持續集成來構建高度可擴展的項目,但這種基于時間的迭代和持續集成可能會成為某些團隊的障礙,特別是如果過去的經驗是基于僵化的開發模型,例如瀑布模型。
不要太關注書中描述的具體技術和設計方法。領域模型貫穿概念模型、邏輯和物理設計模型,貫穿從需求收集、分析、設計、實現到測試部署的整個開發過程。要注意從整體的角度去理解。領域驅動思維收集需求時,與業務專家的溝通就開始了領域模型的建模工作;深入分析和整合需求。領域驅動設計是要深入了解大象并了解其特征、行為和需求。
一個域可以劃分為多個子域,一個子域又可以劃分為多個子子域。有界上下文本質上是一種子子域。那么在分解業務時,業務模塊是域、子域還是子子域呢?領域是知識或活動的集合。與軟件系統相比,領域是軟件應用程序要解決的實際問題的領域。但主要區別在于,領域模型設計的出發點是客觀世界,因此保證了客觀需求與直接需求的一致性。在此基礎上指導程序開發,保證軟件與需求的一致性。
DDD強調需要領域專家才能構建項目所依賴的統一語言和領域模型。然而,如果項目的技術復雜度很高,那么領域理解它就是一個挑戰。領域服務:領域服務就好比一個專業的服務提供者,可以處理領域內復雜的業務邏輯或者跨多個實體的操作,類似于醫生或律師。
本書提供了領域驅動設計的系統方法,集成了一些普遍接受的最佳實踐,融入了作者的見解和經驗,并展示了一些可擴展的設計最佳實踐和經過驗證的技術和基本原則,有助于復雜領域中軟件項目的開發。戰略設計的初衷是保持模型的完整性,通過戰略設計將整個軟件系統分解為多個有界上下文,然后針對每個有界上下文進行戰術設計。
領域驅動設計(DDD)是一種軟件開發方法,旨在幫助開發團隊更好地理解業務需求并將其映射到軟件設計中。
相關推薦