09猾愿、DDD分層架構(gòu)與微服務(wù)代碼模型

DDD分層架構(gòu)與微服務(wù)代碼模型

微服務(wù)代碼模型

  • Interface(用戶接口層):主要存放用戶接口層與前端交互突琳、展示數(shù)據(jù)相關(guān)的代碼拯啦。用來處理用戶發(fā)送的Restful請求澡匪,解析用戶輸入的配置文件,并將數(shù)據(jù)傳遞給Application層
  • Application(應(yīng)用層):主要存放應(yīng)用層服務(wù)組合和編排相關(guān)的代碼褒链。應(yīng)用服務(wù)和事件等代碼會放在這一層目錄里唁情。
  • Domain(領(lǐng)域?qū)樱褐饕娣蓬I(lǐng)域?qū)雍诵臉I(yè)務(wù)邏輯相關(guān)的代碼。聚合以及聚合內(nèi)的實體甫匹、方法甸鸟、領(lǐng)域服務(wù)和事件等代碼會放在這一層目錄里惦费。
  • Infrastructure(基礎(chǔ)層):主要存放基礎(chǔ)資源服務(wù)相關(guān)的代碼,為其他層提供通用技術(shù)能力抢韭、三方軟件包薪贫、數(shù)據(jù)庫服務(wù)、配置和基礎(chǔ)資源服務(wù)的代碼都會放在這一層目錄里刻恭。

1瞧省、用戶接口層

  • Assembler:實現(xiàn) DTO 與領(lǐng)域?qū)ο笾g的相互轉(zhuǎn)換和數(shù)據(jù)交換。一般來說 Assembler 與 DTO 總是一同出現(xiàn)鳍贾。
  • Dto:它是數(shù)據(jù)傳輸?shù)妮d體鞍匾,內(nèi)部不存在任何業(yè)務(wù)邏輯,我們可以通過 DTO 把內(nèi)部的領(lǐng)域?qū)ο笈c外界隔離骑科。
  • Facade:提供較粗粒度的調(diào)用接口橡淑,將用戶請求委派給一個或多個應(yīng)用服務(wù)進(jìn)行處理

2、應(yīng)用層

  • Event(事件):這層目錄主要存放事件相關(guān)的代碼纵散。它包括兩個子目錄:publish 和 subscribe梳码。前者主要存放事件發(fā)布相關(guān)代碼隐圾,后者主要存放事件訂閱相關(guān)代碼(事件處理相關(guān)的核心業(yè)務(wù)邏輯在領(lǐng)域?qū)訉崿F(xiàn))伍掀。
  • Service(應(yīng)用服務(wù)):這層的服務(wù)是應(yīng)用服務(wù)。應(yīng)用服務(wù)會對多個領(lǐng)域服務(wù)或外部應(yīng)用服務(wù)進(jìn)行封裝暇藏、編排和組合蜜笤,對外提供粗粒度的服務(wù)。應(yīng)用服務(wù)主要實現(xiàn)服務(wù)組合編排盐碱,是一段獨(dú)立的業(yè)務(wù)邏輯把兔。

3、領(lǐng)域?qū)?/h4>
  • Aggregate(聚合):它是聚合軟件包的根目錄瓮顽,可以根據(jù)實際項目的聚合名稱命名县好,比如權(quán)限聚合。在聚合內(nèi)定義聚合根暖混、實體和值對象以及領(lǐng)域服務(wù)之間的關(guān)系和邊界缕贡。聚合內(nèi)實現(xiàn)高內(nèi)聚的業(yè)務(wù)邏輯,它的代碼可以獨(dú)立拆分為微服務(wù)拣播。
  • Entity(實體):存放聚合根晾咪、實體、值對象以及工廠模式(Factory)相關(guān)代碼贮配。實體類采用充血模型谍倦,同一實體相關(guān)的業(yè)務(wù)邏輯都在實體類代碼中實現(xiàn)±崂眨跨實體的業(yè)務(wù)邏輯代碼在領(lǐng)域服務(wù)中實現(xiàn)昼蛀。
  • Event(事件):存放事件實體以及與事件活動相關(guān)的業(yè)務(wù)邏輯代碼宴猾。
  • Service(領(lǐng)域服務(wù)):一個領(lǐng)域服務(wù)是多個實體組合出來的一段業(yè)務(wù)邏輯。領(lǐng)域服務(wù)封裝多個實體或方法后向上層提供應(yīng)用服務(wù)調(diào)用叼旋。
  • Repository(倉儲):存放所在聚合的查詢或持久化代碼鳍置,通常包括倉儲接口和倉儲實現(xiàn)方法。為了方便聚合的拆分和組合送淆,我們設(shè)定了一個原則:一個聚合對應(yīng)一個倉儲税产。

4、基礎(chǔ)層

Infrastructure 的代碼目錄結(jié)構(gòu)有:config 和 util 兩個子目錄偷崩。

Config主要存放配置相關(guān)代碼辟拷;Util主要存放平臺、開發(fā)框架、消息射众、數(shù)據(jù)庫汇陆、緩存、文件隅俘、總線、網(wǎng)關(guān)笤喳、三方類庫为居、通用算法等基礎(chǔ)代碼,你可以為不同的資源類別建立不同的子目錄杀狡。

總結(jié)

第一點(diǎn):聚合之間的代碼邊界一定要清晰蒙畴。在以后業(yè)務(wù)發(fā)展和需求變更時,可以很方便地實現(xiàn)業(yè)務(wù)功能和聚合代碼的重組呜象,在微服務(wù)架構(gòu)演進(jìn)中將會起到非常重要的作用膳凝。

第二點(diǎn):一定要有代碼分層的概念,搞清楚代碼的職責(zé)恭陡,將它放在職責(zé)對應(yīng)的代碼目錄內(nèi)蹬音。如果將核心領(lǐng)域邏輯代碼放到應(yīng)用層,微服務(wù)慢慢就會演變成傳統(tǒng)的三層架構(gòu)模型了休玩。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末著淆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子哥捕,更是在濱河造成了極大的恐慌牧抽,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遥赚,死亡現(xiàn)場離奇詭異扬舒,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)凫佛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進(jìn)店門讲坎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來孕惜,“玉大人,你說我怎么就攤上這事晨炕∩阑” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵瓮栗,是天一觀的道長削罩。 經(jīng)常有香客問我,道長费奸,這世上最難降的妖魔是什么弥激? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮愿阐,結(jié)果婚禮上微服,老公的妹妹穿的比我還像新娘。我一直安慰自己缨历,他們只是感情好以蕴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辛孵,像睡著了一般丛肮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上觉吭,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天腾供,我揣著相機(jī)與錄音,去河邊找鬼鲜滩。 笑死,一個胖子當(dāng)著我的面吹牛节值,可吹牛的內(nèi)容都是我干的徙硅。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼搞疗,長吁一口氣:“原來是場噩夢啊……” “哼嗓蘑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起匿乃,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤桩皿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后幢炸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泄隔,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年宛徊,在試婚紗的時候發(fā)現(xiàn)自己被綠了佛嬉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逻澳。...
    茶點(diǎn)故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖暖呕,靈堂內(nèi)的尸體忽然破棺而出斜做,到底是詐尸還是另有隱情,我是刑警寧澤湾揽,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布瓤逼,位于F島的核電站,受9級特大地震影響库物,放射性物質(zhì)發(fā)生泄漏抛姑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一艳狐、第九天 我趴在偏房一處隱蔽的房頂上張望定硝。 院中可真熱鬧,春花似錦毫目、人聲如沸蔬啡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽箱蟆。三九已至,卻和暖如春刮便,著一層夾襖步出監(jiān)牢的瞬間空猜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工恨旱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辈毯,地道東北人。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓搜贤,卻偏偏與公主長得像谆沃,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子仪芒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評論 2 355