實現(xiàn)領域驅(qū)動設計

第二章 領域 子域 限界上下文

用戶和權限從核心域抽離,作為支撐域或者通用域

為模型每個階段各自的限界上下文,共享一個身份標識

REST資源即被稱為開放主機服務 Open Host Service

應用服務扮演的是一種門面模式,具有任務管理功能

一個團隊 一個限界上下文 一個項目

用戶權限應該獨立一個限界上下文 IdOvation

image.png
第三章 上下文映射圖

Customer-Supplier 客戶方-供應方
Conformist 遵奉者

image.png

image.png

image.png

image.png

image.png

image.png

應用服務和領域服務是不同的,領域邏輯不應該出現(xiàn)在應用中,應用服務可以用于控制持久化事務和安全認證,或者向其他系統(tǒng)發(fā)送基于事件的消息通知,還可以用于創(chuàng)建郵件發(fā)送給用戶,應用服務本身不處理業(yè)務邏輯,主要用于協(xié)調(diào)領域?qū)ο蟮牟僮?比如聚合,
應用服務通常用途是:接受來自用戶界面的輸入?yún)?shù),再通過資源庫獲取聚合實例,執(zhí)行相應命令


image.png

應用服務應該使用工廠或聚合的構(gòu)造函數(shù)來實例化對象,然后采用資源庫進行持久化,應用服務還可以調(diào)用領域服務來完成領域相關的操作,但此時的操作應該是無狀態(tài)的
應用層可以將領域事件的訂閱方注冊到任意數(shù)量的事件上,好處是可以對事件進行存儲和轉(zhuǎn)發(fā)
基礎設施層
持久化和消息機制,電子郵件 SMS都在這一層

依賴倒置
高層模塊不應該依賴于底層模塊, 兩者都應該依賴于抽象
抽象不應該依賴于細節(jié),細節(jié)應該依賴于抽象

REST和DDD
不建議將領域模型直接暴露給外界,原因是領域模型的每次改變都會導致對系統(tǒng)接口的該百年

CQRS
一個方法要么是執(zhí)行某種動作的命令,要么是返回數(shù)據(jù)的查詢,不能兩者皆是
如果一個方法修改了對象的狀態(tài),該方法便是一個命令,他不應該返回數(shù)據(jù),方法聲明為void
如果一個方法返回了數(shù)據(jù),該方法便是一個查詢,他不應該通過直接或間接的手段修改對象的狀態(tài)
命令模型 Command Model : 資源庫只有add() save()方法,同時只有一個查詢方法 fromId() 命令模型每個方法再執(zhí)行完都將發(fā)布領域事件(觀察者模式 設計模式),查詢模型根據(jù)領域事件進行更新
查詢模型 Query Model: 比如對屬性進行過濾,是一種非規(guī)范的模型,不反映領域行為

長時處理過程 Saga 按需重新看

事件源 Event Sourcing
跟蹤單個實體和聚合的變化,記錄所有操作的歷史記錄
事件源可以取代ORM 以二進制的方式保存在事件存儲中

第五章 實體

值對象可以存放實體唯一標識,值對象是不變的,這樣可以保證實體身份的穩(wěn)定性

應用程序生成唯一標識,如UUID/GUID/雪花算法等

對于聚合根的唯一標識,我們可以采用資源庫來生成唯一標識


image.png

委派標識 泛指主鍵id
領域標識不需要作為數(shù)據(jù)庫主鍵

角色和擔責 沒看懂

創(chuàng)建實體
使用及早生成唯一標識時,構(gòu)造函數(shù)至少需要接受一個唯一標識作為參數(shù),如果還有可能通過其他方式對實體進行查找,也需要一并傳給構(gòu)造函數(shù)

驗證整體對象
驗證邏輯比領域?qū)ο蟊旧碜兓€快,將驗證邏輯嵌入在領域?qū)ο笾幸彩沟妙I域?qū)ο蟪袚颂嗟穆氊?此時我們可以創(chuàng)建一個單獨的組件來完成模型驗證
驗證類可以實現(xiàn)規(guī)范模式或策略模式


image.png
第六章 值對象

不變性:值對象中不引用實體,因為實體瞬息萬變

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末听隐,一起剝皮案震驚了整個濱河市球切,隨后出現(xiàn)的幾起案子厚宰,更是在濱河造成了極大的恐慌,老刑警劉巖既绕,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件菲茬,死亡現(xiàn)場離奇詭異卵沉,居然都是意外死亡宁舰,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門蓖议,熙熙樓的掌柜王于貴愁眉苦臉地迎上來虏杰,“玉大人,你說我怎么就攤上這事勒虾》睦” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵修然,是天一觀的道長笛钝。 經(jīng)常有香客問我质况,道長,這世上最難降的妖魔是什么玻靡? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任结榄,我火速辦了婚禮,結(jié)果婚禮上囤捻,老公的妹妹穿的比我還像新娘臼朗。我一直安慰自己,他們只是感情好蝎土,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布视哑。 她就那樣靜靜地躺著,像睡著了一般誊涯。 火紅的嫁衣襯著肌膚如雪挡毅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天暴构,我揣著相機與錄音跪呈,去河邊找鬼。 笑死取逾,一個胖子當著我的面吹牛庆械,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播菌赖,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼沐序!你這毒婦竟也來了琉用?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤策幼,失蹤者是張志新(化名)和其女友劉穎邑时,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體特姐,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡晶丘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了唐含。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浅浮。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖捷枯,靈堂內(nèi)的尸體忽然破棺而出滚秩,到底是詐尸還是另有隱情,我是刑警寧澤淮捆,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布郁油,位于F島的核電站本股,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏桐腌。R本人自食惡果不足惜拄显,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望案站。 院中可真熱鬧躬审,春花似錦、人聲如沸嚼吞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽舱禽。三九已至炒刁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間誊稚,已是汗流浹背翔始。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留里伯,地道東北人城瞎。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像疾瓮,于是被迫代替她去往敵國和親脖镀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容