詳解領(lǐng)域驅(qū)動設(shè)計和spring
領(lǐng)域驅(qū)動設(shè)計
Eric Evans的《領(lǐng)域驅(qū)動設(shè)計》無疑是軟件設(shè)計領(lǐng)域最重要的幾本書之一。
這本書主要集中在軟件開發(fā)中如何處理領(lǐng)域和軟件的映射關(guān)系— 開始強調(diào)領(lǐng)域通用語言(domain ubiquitous language),通過語言來提取模型,最終映射到一個可工作的軟件上。
我們已經(jīng)對軟件設(shè)計模式比較熟悉了,他是用于描述和提煉Class和Class關(guān)系的技術(shù)語言。而DDD是一種用于程序員和業(yè)務(wù)溝通的更通用的語言,使用DDD可以最終將代碼映射到模型上。
基礎(chǔ)構(gòu)建
構(gòu)件是DDD中的一些專有名詞,讓我們看一下圖
1限界上下文(Bounded Context)
當進行領(lǐng)域建模的時候,任何將其作為一個整體進行建模的嘗試注定會失敗。因為各類利益相關(guān)者和他們對領(lǐng)域的看法可能完全不同,試圖建立一個單一的、獨特的模型來滿足所有需求是完全不可能的,會把系統(tǒng)搞得極為復(fù)雜。
讓我們看一個示例圖,這個圖描述了銷售領(lǐng)域已經(jīng)識別出的模型
我們把模型元素稍加區(qū)分,成為分離的模型,就可以看出客戶和訂單的,他們是不同上下文的核心的概念。
在這里,我們確定了系統(tǒng)戰(zhàn)略層面的核心部分,這些部分可能都涉及客戶或訂單的概念,但通常不同限界上下文對它們的屬性感興趣的部分并不相同。比如 Accounting上下文通常對客戶的計費信息和不同的支付選項感興趣,而Shipping上下文的對客戶的唯一目標是運送地址,然后跟蹤訂單。 Order上下文可能通過客戶的訂單項了解商品信息,但實際上只涉及商品類目基本的內(nèi)容(譯者注:商品規(guī)格、商品詳情這些信息Order上下文并不關(guān)注)。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
下載地址
詳解領(lǐng)域驅(qū)動設(shè)計和spring下載
相關(guān)電子資料下載
- SpringBoot物理線程、虛擬線程、Webflux性能比較 37
- Spring Cloud :打造可擴展的微服務(wù)網(wǎng)關(guān) 60
- BeanFactory 和 FactoryBean的區(qū)別 54
- SpringBoot AOP + Redis 延時雙刪功能實戰(zhàn) 69
- Spring Boot 的設(shè)計目標 104
- Spring Boot的啟動原理 125
- SpringBootApplication是什么 200
- Spring Boot怎么通過注解來實現(xiàn)全局異常處理的 92
- Spring 的線程池應(yīng)用 108
- SpringBoot分布式驗證碼登錄方案 145