DDD(領域驅動設計)


基本概念:

  領域驅動設計(簡稱 ddd)概念來源於2004年著名建模專家eric evans發表的他最具影響力的書籍:《domain-driven design –tackling complexity in the heart of software》(中文譯名:領域驅動設計—軟件核心復雜性應對之道)一書。,書中提出了“領域驅動設計(簡稱 ddd)”的概念。

         領域驅動設計一般分為兩個階段:

        1.   以一種領域專家、設計人員、開發人員都能理解的“通用語言”作為相互交流的工具,在不斷交流的過程中發現和挖出一些主要的領域概念,然后將這些概念設計成一個領域模型;

         2.   由領域模型驅動軟件設計,用代碼來表現該領域模型。領域需求的最初細節,在功能層面通過領域專家的討論得出。

       領域驅動設計告訴我們,在通過軟件實現一個業務系統時,建立一個領域模型是非常重要和必要的,因為領域模型具有以下特點:

     1.   領域模型是對具有某個邊界的領域的一個抽象,反映了領域內用戶業務需求的本質;領域模型是有邊界的,只反應了我們在領域內所關注的部分;

     2.   領域模型只反映業務,和任何技術實現無關;領域模型不僅能反映領域中的一些實體概念,如貨物,書本,應聘記錄,地址,等;還能反映領域中的一些過程概念,如資金轉賬,等;

     3.   領域模型確保了我們的軟件的業務邏輯都在一個模型中,都在一個地方;這樣對提高軟件的可維護性,業務可理解性以及可重用性方面都有很好的幫助;

     4.   領域模型能夠幫助開發人員相對平滑地將領域知識轉化為軟件構造;

     5.  領域模型貫穿軟件分析、設計,以及開發的整個過程;領域專家、設計人員、開發人員通過領域模型進行交流,彼此共享知識與信息;因為大家面向的都是同一個模型,所以可以防止需求走樣,可以讓軟件設計開發人員做出來的軟件真正滿足需求;

     6.  要建立正確的領域模型並不簡單,需要領域專家、設計、開發人員積極溝通共同努力,然后才能使大家對領域的認識不斷深入,從而不斷細化和完善領域模型;

     7.  為了讓領域模型看的見,我們需要用一些方法來表示它;圖是表達領域模型最常用的方式,但不是唯一的表達方式,代碼或文字描述也能表達領域模型;

     8.  領域模型是整個軟件的核心,是軟件中最有價值和最具競爭力的部分;設計足夠精良且符合業務需求的領域模型能夠更快速的響應需求變化;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM