.net core webapi +ddd(領域驅動)+nlog配置+swagger配置 學習筆記(2)
阿新 • • 發佈:2018-09-02
struct 名詞 領域驅動設計 .com 模型 webapi 添加 傳統 bapi
DDD領域驅動模型設計
什麽是DDD
軟件開發不是一蹴而就的事情,我們不可能在不了解產品(或行業領域)的前提下進行軟件開發,在開發前,通常需要進行大量的業務知識梳理,而後到達軟件設計的層面,最後才是開發。而在業務知識梳理的過程中,我們必然會形成某個領域知識,根據領域知識來一步步驅動軟件設計,就是領域驅動設計的基本概念。
聽起來這和傳統意義的軟件開發沒啥區別,只是換了點新鮮的名詞而已,其實不然。
該架構分成了Interfaces、Applications和Domain三層以及包含各類基礎設施的Infrastructure。下圖簡略描述了它們之間的關系:
圖1:領域驅動設計風格的架構草圖(來自於DDDSample官網)
下圖是詳細架構:
圖2:領域驅動設計參考架構
- Interface
負責向用戶展現信息,並且會解析用戶行為,即常說的展現層。
- Application
應用層沒有任何的業務邏輯代碼,它很簡單,它主要為程序提供任務處理。
- Domain
這一層包含有關領域的信息,是業務的核心,領域模型的狀態都直接或間接(持久化至數據庫)存儲在這一層。
- Infrastructure
為其他層提供底層依賴操作。
層結構的劃分是很有必要的,只有清晰的結構,那麽最終的領域設計才宜用,比如用戶要預定航班,向Application的service發起請求,而後Domain從Infrastructure獲取領域對象,校驗通過後會更新用戶狀態,最後再次通過Infratructure持久化到數據庫中。
那麽根據這些我們就可以設計出自己得項目。當然需要靈活運用。
在此之前 我們先添加一些基礎類庫,然後分開層次。
(先睡覺了 明天繼續)
.net core webapi +ddd(領域驅動)+nlog配置+swagger配置 學習筆記(2)