大廠面試:說說DDD分層架構(gòu)

0 評論 1631 瀏覽 9 收藏 4 分鐘

大廠面試中,會經(jīng)常聊到DDD分層架構(gòu)這個(gè)問題,這是一種幫助開發(fā)者更好地管理和解耦復(fù)雜系統(tǒng),是在三層架構(gòu)的基礎(chǔ)上,優(yōu)化過的四層架構(gòu)。本文就給大家詳細(xì)解釋。

在大廠面試中,DDD分層架構(gòu)常常是一個(gè)熱門話題。

DDD分層方法能幫助開發(fā)者更好地管理和解耦復(fù)雜系統(tǒng),同時(shí)也評估候選人對架構(gòu)設(shè)計(jì)的深度理解。

關(guān)于DDD的各層:用戶接口層、應(yīng)用層、領(lǐng)域?qū)右约盎A(chǔ)設(shè)施層,候選人如果不能清楚地說出各層的職責(zé),基本面試也就涼涼。

DDD分層架構(gòu)是在三層架構(gòu)的基礎(chǔ)上,優(yōu)化過的四層架構(gòu)。

在下圖中,從上到下分別是:用戶接口層、應(yīng)用層、領(lǐng)域?qū)雍突A(chǔ)層。

一、用戶接口層

用戶接口層主要負(fù)責(zé)管理系統(tǒng)與用戶之間的交互。這一層接收用戶的輸入,如表單數(shù)據(jù)或操作,之后,用戶接口層將應(yīng)用層的處理結(jié)果呈現(xiàn)給用戶,結(jié)果通過Web頁面、移動應(yīng)用界面等形式展示。

二、應(yīng)用層

應(yīng)用層主要用于處理與業(yè)務(wù)用例和業(yè)務(wù)流程相關(guān)的操作,理論上不應(yīng)該包含業(yè)務(wù)規(guī)則或邏輯。由于它位于領(lǐng)域?qū)又?,領(lǐng)域?qū)影鄠€(gè)聚合,所以它可以協(xié)調(diào)多個(gè)聚合的服務(wù)和領(lǐng)域?qū)ο?,完成服?wù)的編排和組合。

應(yīng)用層應(yīng)該是很簡潔的一層,設(shè)計(jì)和開發(fā)時(shí),不要把領(lǐng)域?qū)拥臉I(yè)務(wù)邏輯放在這里。如果應(yīng)用層太復(fù)雜,領(lǐng)域模型會失去重點(diǎn),微服務(wù)可能會變成傳統(tǒng)的三層架構(gòu),業(yè)務(wù)邏輯會變得混亂。

三、領(lǐng)域?qū)?/h2>

領(lǐng)域?qū)邮窍到y(tǒng)的核心層,負(fù)責(zé)封裝業(yè)務(wù)概念、業(yè)務(wù)邏輯和業(yè)務(wù)規(guī)則,它的任務(wù)是執(zhí)行核心業(yè)務(wù)邏輯,并通過各種校驗(yàn)方式確保業(yè)務(wù)的準(zhǔn)確性。領(lǐng)域?qū)影酆细?、?shí)體、值對象、領(lǐng)域服務(wù)等領(lǐng)域模型中的領(lǐng)域?qū)ο蟆?/p>

四、基礎(chǔ)層

基礎(chǔ)層為其他各層提供常用的技術(shù)和基礎(chǔ)服務(wù)。這些服務(wù)包括第三方工具、驅(qū)動程序、消息中間件、網(wǎng)關(guān)、文件、緩存和數(shù)據(jù)庫等。它最常見的功能是提供數(shù)據(jù)庫持久化。

基礎(chǔ)層為應(yīng)用層、領(lǐng)域?qū)犹峁┩ㄓ玫募夹g(shù)能力,實(shí)現(xiàn)應(yīng)用層、領(lǐng)域?qū)优c基礎(chǔ)設(shè)施層的解耦,讓領(lǐng)域?qū)訉W⒂诒磉_(dá)業(yè)務(wù)邏輯,無需關(guān)注技術(shù)實(shí)現(xiàn)細(xì)節(jié)。這層的設(shè)計(jì)和實(shí)現(xiàn)還需要考慮到系統(tǒng)的可擴(kuò)展性、安全性和性能。

本文由人人都是產(chǎn)品經(jīng)理作者【湯師爺】,微信公眾號:【架構(gòu)師湯師爺】,原創(chuàng)/授權(quán) 發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自Unsplash,基于 CC0 協(xié)議。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!