日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DDD领域驱动设计---战略设计(包括四色原型建模)

發(fā)布時(shí)間:2025/3/19 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DDD领域驱动设计---战略设计(包括四色原型建模) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

????? 相當(dāng)于策略設(shè)計(jì),從宏觀角度著眼于領(lǐng)域的分析設(shè)計(jì),屬于系統(tǒng)分析階段,注重如何從有界上下文中尋找領(lǐng)域模型,戰(zhàn)略模式由有界上下文、無所不在的語言和上下文映射組成。

???? 在戰(zhàn)略設(shè)計(jì)前首先要了解下領(lǐng)域知識(shí)、業(yè)務(wù)策略、業(yè)務(wù)規(guī)劃。

?????? 1、有界上下文:是指再空間或時(shí)間上有邊界的一段環(huán)境背景,它確定了每個(gè)模型的適用范圍,模型體現(xiàn)了這個(gè)范圍內(nèi)的邏輯一致性。

?????? 2、統(tǒng)一語言:統(tǒng)一語言必須在領(lǐng)域模型中表達(dá)出來,主要體現(xiàn)在領(lǐng)域模型中的名稱上。不應(yīng)只由業(yè)務(wù)專家或是其他單一職位定義,而應(yīng)團(tuán)隊(duì)人員共同商定。

?????? 3、上下文映射組成(上下文關(guān)系):

????????????? a、共享內(nèi)核(例如兩個(gè)團(tuán)隊(duì)共享一份類庫)此種方式很少用,耦合度太高。

????????????? b、開發(fā)主機(jī)服務(wù)也就是上下游關(guān)系映射或API調(diào)用,一個(gè)服務(wù)通過RPC等同步方式調(diào)用另一個(gè)上下文的API,這種目前比較普及。

????????????? c、發(fā)布\訂閱模式:一個(gè)發(fā)布,一個(gè)訂閱,只依賴事件或消息,使得兩者之間最大化松耦合。???

????????????? d、發(fā)布語言(Published Language):兩個(gè)有界上下文中的模型溝通的語言表達(dá)方式。例如XML,JSON

?????? 康威第一定理(Conways Law):組織性質(zhì)決定架構(gòu)。即系統(tǒng)架構(gòu)代表實(shí)現(xiàn)系統(tǒng)的組織的溝通結(jié)構(gòu),對(duì)于軟件中的每個(gè)模塊,都對(duì)應(yīng)有一個(gè)組織單元;組織單元之間存在溝通依賴,軟件中對(duì)應(yīng)的模塊之間同樣存在依賴關(guān)系。

?????? 在領(lǐng)域(獨(dú)立的產(chǎn)品或是項(xiàng)目)中劃分{核心子域(業(yè)務(wù)策略和業(yè)務(wù)規(guī)則重點(diǎn)實(shí)施地),支持(輔助)子域,通用子域。}(具體的項(xiàng)目)每個(gè)域確定上下文(領(lǐng)域邊界)

?????? 最佳實(shí)踐:一個(gè)有界上下文對(duì)應(yīng)一個(gè)子域,對(duì)應(yīng)一個(gè)團(tuán)隊(duì),對(duì)應(yīng)一個(gè)微服務(wù)。

?????? DDD建模基本上只需要三種UML圖:用例圖(表達(dá)需求用例)、序列圖(模擬領(lǐng)域中的邏輯流程,能夠記錄和驗(yàn)證邏輯)、類圖(表達(dá)類與結(jié)構(gòu)關(guān)系)。

劃清領(lǐng)域上下文的方法:

????? 1、通過領(lǐng)域故事(Domain Storytelling)的方式,專注于領(lǐng)域知識(shí),通過領(lǐng)域語言來探索和理解用戶流程、工作程序和整體業(yè)務(wù)流程和規(guī)則。

???? 例如:問:“你的工作做什么的?”

??????????????? 答:“進(jìn)行貨運(yùn)計(jì)劃調(diào)度”

??????????????? 問:“具體怎么回事?”

??????????????? 答:“舉個(gè)例子,客戶需要托運(yùn)一批貨物,然后需要讓路線小組規(guī)劃路線,機(jī)場小組再分配計(jì)劃,最后指定機(jī)位。”

??????????????? 這里“客戶需要托運(yùn)一批貨物”主語是“客戶”,謂語動(dòng)詞“托運(yùn)”,賓語是“貨物”。可以使用不同顏色表示他們:黃色是主語,粉紅色表謂語,藍(lán)色表示賓語,具體顏色取決自己,也可參考下面的四色原型。

???? 2、還有填寫表格法和事件風(fēng)暴會(huì)議發(fā)現(xiàn)有界上下文。

本環(huán)節(jié)最主要的就是劃清領(lǐng)域上下文。也是整個(gè)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的難點(diǎn)。

領(lǐng)域事件:事件代表過去發(fā)生完成的事,它既是業(yè)務(wù)架構(gòu)概念也是技術(shù)架構(gòu)概念,以事件為驅(qū)動(dòng)的編程技術(shù)模型稱為事件驅(qū)動(dòng)架構(gòu)(EDA)。領(lǐng)域事件強(qiáng)調(diào)其業(yè)務(wù)概念。事件即指已經(jīng)發(fā)生的事情,可以從動(dòng)詞完成時(shí)理解

命令:命令表示事件的觸發(fā)器。命令是請(qǐng)求,而事件是完成。命令相當(dāng)于頁面(UI)點(diǎn)擊的按鈕來觸發(fā)一個(gè)需要完成的任務(wù),這個(gè)完成的任務(wù)既是指一個(gè)事件。

命令命名和事件命名,命令命名相當(dāng)于動(dòng)詞結(jié)尾的ing,事件命名相當(dāng)于結(jié)尾的ed。

關(guān)鍵事件:即指識(shí)別狀態(tài)機(jī)狀態(tài)之間轉(zhuǎn)換的事件,關(guān)鍵事件是領(lǐng)域邊界劃分的重要指標(biāo)。

還有事件建模頭腦風(fēng)暴法,這個(gè)也是工作中會(huì)使用的方法,但是這種方法一定要確定會(huì)議各階段目標(biāo),要不效率太低。

例如:首先,確定探索子域。

? ? ? ? ? ?2、確定探索有節(jié)上下文。

? ? ? ? ? ?3、確定用戶角色,那些角色發(fā)出那些命令,完成那些事件。

? ? ? ? ? ?4、確定關(guān)鍵測試場景。


????? 可參考四色原型建模

????? 1、moment-interval(某個(gè)時(shí)刻(moment)或一段很短時(shí)間(interval)內(nèi). 意味在某個(gè)時(shí)刻發(fā)生的事情因?yàn)闃I(yè)務(wù)要求或合法性原因需要跟蹤;或者過一段時(shí)間以后,應(yīng)該是很短的時(shí)間,可以幫助我們尋找到它。)

?????? 賣東西是在某個(gè)時(shí)刻發(fā)生的,它有發(fā)生日期和時(shí)間。租賃行為是在一段時(shí)間內(nèi)發(fā)生,從開始出租和歸還所租物品;預(yù)定也是持續(xù)一段時(shí)間,什么時(shí)候預(yù)定;什么時(shí)候過期等。

  這些我們都使用moment-interval原型來表達(dá)。Moment-intervals經(jīng)常封裝的是最關(guān)鍵的方法,為讓其顯目,moment-interval的UML圖我們使用粉紅顏色表示

????? 2、role(角色原型比較容易理解,任何一個(gè)系統(tǒng)都需要人或某個(gè)組織介入運(yùn)行,例如論壇系統(tǒng)需要注冊(cè)者角色發(fā)言;銷售訂單需要業(yè)務(wù)員角色制定,等等。)

?????? 這里有一個(gè)Party原型定義:它表示一個(gè)可標(biāo)識(shí)、可定位的單元,這個(gè)單元有自己正常的狀態(tài)并且能夠自主控制自己的一些行為,通常情況下,人或組織是一種Party,但象護(hù)照,身份證等注冊(cè)性標(biāo)志等都可以作為Party。

?????? Role角色是Party扮演的(a role that a Party plays),Party是角色Role的扮演者(role-player)。角色原型在UML中是使用黃顏色標(biāo)識(shí)的。角色模型是第二重要的原型,所以使用黃色。

????? 3、description archetype

?????? 比如你的紅色福克斯是福特生產(chǎn)的一輛轎車,它有車牌號(hào)、購買日期、顏色和里程表等,這些代表Thing原型,那么作為轎車這個(gè)種類來說,它有一些種類屬性,例如:生產(chǎn)廠家、生產(chǎn)批號(hào)、適用顏色等,這些屬性是轎車這類所有車輛都共有的。

??????? 在設(shè)計(jì)模式這個(gè)實(shí)現(xiàn)級(jí)別,我們通常使用組合模式來實(shí)現(xiàn)種類原型。Description原型在UML中使用藍(lán)色表達(dá)。

????? 4、party, place or thing

???????? party place或thing都可以成為角色原型,注意到角色原型中的UML圖,party圖是以綠色表達(dá)。

????

總結(jié)

以上是生活随笔為你收集整理的DDD领域驱动设计---战略设计(包括四色原型建模)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美整片sss | 久久久久99精品成人片直播 | 亚洲av无一区二区三区 | 成人爱爱网站 | 国产精品久久久久久久久久直播 | 99久久精品一区二区成人 | 日韩aa | 中文字幕有码视频 | 国产一级片视频 | 色站av| 精品国产午夜福利 | 亚洲欧美日韩动漫 | 伊伊总综合网 | 51成人 | 熟女丰满老熟女熟妇 | 久精品免费视频 | 免费在线观看av网站 | 久久久亚洲精品无码 | 五月天激情小说 | 91色交| 19禁大尺度做爰无遮挡电影 | 欧美精品三区 | 亚洲国产精品二区 | 精品国产午夜福利 | 337p日本欧洲亚洲大胆张筱雨 | 亚洲三级小视频 | 天天操中文字幕 | 超碰成人久久 | 无码精品黑人一区二区三区 | 亚洲色图20p | 久久久久久久久久电影 | 免费看国产黄色 | 日韩欧美一区在线观看 | 午夜寻花| 草草影院国产 | 国产女人18毛片水18精 | 免费超碰在线 | 操极品美女 | 亚洲精品国产精品乱码不卡 | 日本在线视频中文字幕 | 午夜看片在线观看 | www免费黄色 | 亚洲午码| 疯狂做受xxxx高潮人妖 | 免费视频99 | 久久靖品 | 一区二区在线视频免费观看 | 后入内射无码人妻一区 | 性——交——性——乱免费的 | 久久久久久欧美 | 欧美中文字幕 | 色午夜av | 亚洲风情亚aⅴ在线发布 | 日韩videos| 这里只有精品在线播放 | 五月天色综合 | 成人91| 亚洲艹 | 大牛影视剧免费播放在线 | 国产免费黄色 | 韩国黄色av | 少妇户外露出[11p] | 中文字幕乱码亚洲无线三区 | 在线亚洲人成电影网站色www | 亚洲视频第一页 | 亚洲av乱码久久精品蜜桃 | 六月丁香激情网 | 国产精品视频合集 | 成人图片小说 | 福利视频三区 | 热久久av | 欧美激情性做爰免费视频 | 日本一区二区三区在线观看视频 | 免费在线观看网址入口 | 粗大黑人巨茎大战欧美成人免费看 | 免费大片在线观看www | 人人爽人人爽人人爽 | 特级毛片在线 | 欧美日韩激情在线观看 | 三上悠亚影音先锋 | 日本精品一区二区三区四区 | 中文字幕成人 | 国产精品无码乱伦 | 高清国产mv在线观看 | 成人在线视频一区二区三区 | 500部大龄熟乱视频 亚洲乱码精品 | 99热在线这里只有精品 | 日韩在线色 | 亲子伦视频一区二区三区 | 韩国一区二区在线观看 | 可以免费看的毛片 | 国产剧情在线视频 | av美女网站 | 日韩一区二区影视 | 成人精品一区二区三区中文字幕 | 免费看91视频 | 真人一毛片 | 鸭子av| 一本色道久久88亚洲精品综合 |