最近我又看到團隊里,為了“微服務(wù)到底應(yīng)該拆多小”這個問題爭得面紅耳赤,而且各執(zhí)一詞,誰也說服不了誰,都覺得自己很有道理。
其實自從阿里成功完成了中臺戰(zhàn)略轉(zhuǎn)型,很多大公司都開啟了中臺數(shù)字化戰(zhàn)略轉(zhuǎn)型,中型公司也躍躍欲試,隨之而來的,就是這兩年微服務(wù)越來越熱,參與的人越來越多。微服務(wù)確實解決了原來采用集中式架構(gòu)的單體應(yīng)用的很多問題,比如擴展性、彈性伸縮能力、小規(guī)模團隊的敏捷開發(fā)等等。但在看到這些好處的同時,也出現(xiàn)了不少問題。不少項目因為前期微服務(wù)拆分過度,導(dǎo)致項目復(fù)雜度過高,無法上線和運維。并且微服務(wù)實踐過程中也產(chǎn)生了不少的爭論和疑惑,比如:其實綜合來看,微服務(wù)拆分困境產(chǎn)生的根本原因,就是不知道業(yè)務(wù)或者微服務(wù)的邊界到底在什么地方。換句話說,確定了業(yè)務(wù)邊界和應(yīng)用邊界,這個困境也就迎刃而解了。說到這兒,估計不少人要說“用 DDD 來做微服務(wù)設(shè)計啊”。確實,用 DDD 設(shè)計思想實現(xiàn)的微服務(wù)邊界確實清晰很多,業(yè)務(wù)領(lǐng)域劃分也十分合理,但 DDD 的知識點很多,而且比較抽象,體系龐大,很多人又缺少實踐經(jīng)驗和案例指導(dǎo),就拿我自己來說,剛開始接觸 DDD 的時候,就發(fā)現(xiàn)術(shù)語非常多而且陌生,就更別提用它來設(shè)計領(lǐng)域模型了。相信很多人對 DDD 的應(yīng)用,都有和我之前一樣的困惑,哪怕知道 DDD 的好處,但是也感到無從下手。這里我分享給你一張「DDD 的核心知識圖譜」。這張圖譜來自人保高級架構(gòu)師「歐創(chuàng)新」,我在剛接觸 DDD 的時候就看過他在 InfoQ 上發(fā)表的文章,把微服務(wù)設(shè)計方法、過程、模板、代碼目錄、設(shè)計原則等內(nèi)容寫得十分詳細,還以一個項目為例講了基于 DDD 的微服務(wù)設(shè)計過程,給了我不少啟發(fā)。后來聽說他在極客時間開設(shè)了專欄《DDD 實戰(zhàn)課》,我第一時間就訂閱了,越讀越覺得有料,不僅詳細講了 10 大核心概念,還深入講了 DDD 分層架構(gòu),帶你弄懂微服務(wù)架構(gòu)各層之間的關(guān)系,掌握事件風(fēng)暴和領(lǐng)域建模,并且用一個典型的案例帶你完整走一遍 DDD 戰(zhàn)略設(shè)計和戰(zhàn)術(shù)設(shè)計的全流程。有詳細的理論,又有可操作可落地的實踐,這在現(xiàn)有的學(xué)習(xí)資料中可以說是很難得了,我今天也給大家要到了這個課的優(yōu)惠,拼團優(yōu)惠疊加口令「happy2021」,到手立省 ¥30。說起歐創(chuàng)新,圈里人應(yīng)該都很熟悉,作為一個奮斗在架構(gòu)一線十多年的技術(shù)人,他從 2015 年就開始接觸微服務(wù),有很多用 DDD 研究和落地微服務(wù)的經(jīng)驗,熱衷于采用 DDD 的設(shè)計方法實現(xiàn)中臺領(lǐng)域建模,專注基于 DDD 的微服務(wù)設(shè)計和開發(fā)。他的這個專欄,我是跟著更新學(xué)完的,也把自己對 DDD 的理解更新了一遍:從業(yè)務(wù)角度來設(shè)計拆分系統(tǒng),縱向解耦業(yè)務(wù)形成不同的微服務(wù),橫向解耦業(yè)務(wù)形成微服務(wù)內(nèi)部不同的層。有時間,我一定是要二刷的。發(fā)文前看了下,已經(jīng)有超過 11,000 人訂閱了,口碑很不錯,看來群眾的眼睛都很雪亮:
?在專欄的最后,歐創(chuàng)新說了這么一段話“所謂高手,就是跨過坑和大海!每一步都是積累,每一步都是經(jīng)驗,每一步都算數(shù)!”,我自己對這句話還挺有感觸的,工作和學(xué)習(xí)本就沒有一蹴而就的,總是要靠一步一個腳印慢慢積累。我也希望你能認(rèn)真讀完這一篇篇文章,下面是課程目錄:訂閱后可通過「極客時間 App」或「極客時間小程序」我的-已購,學(xué)習(xí)已訂閱的專欄。