国产精品夜色视频一级区_hh99m福利毛片_国产一区二区成人久久免费影院_伊人久久大香线蕉综合影院75_国产精品久久果冻传媒

您的位置:首頁(yè) >聚焦 >

前端如何主導(dǎo)ddd架構(gòu)落地(上)_全球百事通

2022-12-03 08:38:00    來(lái)源:程序員客棧

這是一個(gè)兼具技術(shù)和劇情的故事。

首先,我其實(shí)是一個(gè)全棧

我當(dāng)初給我司投簡(jiǎn)歷的時(shí)候,其實(shí)是想做前端經(jīng)理的。面試官看著簡(jiǎn)歷:做過(guò)四年的.net,接著就一直做前端開(kāi)發(fā)了,典型的全棧嘛,所以,做技術(shù)經(jīng)理(公司后端是java)似乎也沒(méi)啥毛病。然后,我就成了一個(gè)掛著技術(shù)經(jīng)理這張皮的前端經(jīng)理。在非互聯(lián)網(wǎng)公司,做一個(gè)技術(shù)經(jīng)理真的要求不高,你只需要會(huì)點(diǎn)前后端,有過(guò)實(shí)際管理經(jīng)驗(yàn)就能上了。在小公司,業(yè)務(wù)實(shí)現(xiàn)只需要在前端展示頁(yè)面內(nèi)容,一般就是一個(gè)大屏加上業(yè)務(wù)系統(tǒng),就完了。對(duì)后端的要求就更低了,只要能查到我要的數(shù)據(jù)就行,那基本上普通的三層架構(gòu)就能解決問(wèn)題,最多就是在接口調(diào)用那里加一個(gè)線程池來(lái)緩解一下不到100個(gè)的并發(fā)壓力。


(資料圖片)

我之所以說(shuō)我是個(gè)假技術(shù)經(jīng)理,是因?yàn)轫?xiàng)目來(lái)了,我除了在前期進(jìn)行前后端任務(wù)分解、計(jì)劃編寫之后,后面基本上不再過(guò)問(wèn)后端的開(kāi)發(fā)細(xì)節(jié)了。我要么就是跟蹤進(jìn)度,要么就是搞搞前端疑難雜癥。

很顯然,在大公司里,我這個(gè)技術(shù)經(jīng)理是不稱職的,后端的代碼好壞只能看程序員的人品,直到ddd架構(gòu)需要落地的事來(lái)了,事情有了“轉(zhuǎn)機(jī)”。。

由于公司在上云項(xiàng)目,后端服務(wù)全部微服務(wù)化,然后必須按照ddd架構(gòu)進(jìn)行后端改造。當(dāng)時(shí),我手上就有一個(gè)業(yè)務(wù)線正在上云,上級(jí)部門檢查我們的后端不符合ddd要求,然后輸出了問(wèn)題文檔,比如耦合嚴(yán)重、sql過(guò)于復(fù)雜等等此類問(wèn)題,作為“稱職”的技術(shù)經(jīng)理,我當(dāng)然要把問(wèn)題拋出來(lái),讓后端去修改了。當(dāng)時(shí),我估摸著改10天應(yīng)該差不多了吧!結(jié)果整整3個(gè)月過(guò)去了,后端的代碼檢查仍然不通過(guò),這才有了標(biāo)題說(shuō)的這個(gè)故事:前端如何主導(dǎo)ddd架構(gòu)!

為什么要用ddd

ddd中文名叫領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),英文名叫Domain-DrivenDesign。在中臺(tái)遍地開(kāi)花的日子,ddd就像那道光,指引著中臺(tái)的設(shè)計(jì)和落地。像阿里、騰訊等很多大公司都有完整成熟的中臺(tái)產(chǎn)品,比較有代表性的有:阿里云數(shù)據(jù)中臺(tái)、騰訊技術(shù)中臺(tái)及字節(jié)的直播中臺(tái)等。中臺(tái)的落地過(guò)程中,微服務(wù)的設(shè)計(jì)與拆分是一個(gè)最大的痛點(diǎn)。微服務(wù)優(yōu)點(diǎn)很明顯,缺點(diǎn)也很明顯,如果設(shè)計(jì)地不好,幾個(gè)微服務(wù)之間相互勾連,我完成一件事可能要啟動(dòng)多個(gè)微服務(wù),才能保證業(yè)務(wù)實(shí)現(xiàn)。這明顯與微服務(wù)“高內(nèi)聚低耦合”的設(shè)計(jì)初心相違背。ddd的就是基于類似這樣的背景而產(chǎn)生的一種設(shè)計(jì)思想。

以我的理解,ddd就是要求對(duì)系統(tǒng)的業(yè)務(wù)模型進(jìn)行拆分,然后基于此模型映射到微服務(wù)代碼模型。在代碼模型中,分為四層架構(gòu):基礎(chǔ)層、領(lǐng)域?qū)印?yīng)用層及用戶接口層。這里面最關(guān)鍵的就是領(lǐng)域?qū)?,所謂領(lǐng)域,顧名思義,在一個(gè)領(lǐng)域內(nèi),我可以盡情玩耍,能滿足我的各種需求就足夠了。更復(fù)雜的需求,就在應(yīng)用層里進(jìn)行編排實(shí)現(xiàn)就行,然后在接口層對(duì)外暴露接口?;A(chǔ)層主要是包含一些通用技術(shù)、數(shù)據(jù)庫(kù)服務(wù)及配置資源服務(wù)等內(nèi)容。ddd的四層架構(gòu)可以參考如下這張圖:

本文對(duì)ddd不做深入分析,作為一個(gè)假技術(shù)經(jīng)理,直到后端的代碼在三個(gè)月之后仍然不能通過(guò)規(guī)范檢查時(shí),我實(shí)際上才真正明白,這個(gè)項(xiàng)目必須嚴(yán)格按照ddd架構(gòu)落地,我這才去翻閱了一些資料。簡(jiǎn)單說(shuō)吧,上面就是我掌握的關(guān)于ddd的所有內(nèi)容。我基本就是靠著這三板斧把這個(gè)事給辦了。

為什么是前端指導(dǎo)ddd架構(gòu)

這一段就是后端開(kāi)發(fā)看了會(huì)流淚的情節(jié)了。我曾對(duì)我上司說(shuō)過(guò),給我一個(gè)月,我能成為一個(gè)很好的java。他的回復(fù)是,如果是我,我會(huì)在準(zhǔn)備得差不多了才會(huì)提出來(lái)。我理解他的意思,畢竟公司對(duì)人員是有定位的,你一個(gè)前端經(jīng)理,天天不研究前端問(wèn)題,摸魚(yú)搞后端,成何體統(tǒng)?問(wèn)題是技術(shù)本身并沒(méi)有難度,但是有時(shí)間成本,如果你想從前端轉(zhuǎn)后端,第一步是得準(zhǔn)備一個(gè)環(huán)境吧。單單是這一步,就能讓很多開(kāi)發(fā)望而卻步。其實(shí)在程序員這個(gè)行當(dāng)里久了,你就會(huì)發(fā)現(xiàn),很多牛逼的人,其實(shí)并沒(méi)有強(qiáng)大到你追不上的地步,他其實(shí)就是行動(dòng)力強(qiáng)了一點(diǎn)點(diǎn)而已。

是的,前面我已經(jīng)提到,在我決定來(lái)搞明白什么是ddd時(shí),我這個(gè)項(xiàng)目的兩個(gè)后端,兩個(gè)java開(kāi)發(fā),搞ddd已經(jīng)搞了三個(gè)多月了。因?yàn)樗麄円呀?jīng)陷入了如何拆分復(fù)雜sql的怪圈之中不能自拔?,F(xiàn)在,輪到前端來(lái)主導(dǎo)ddd架構(gòu)了。。(未完待續(xù))

更多精彩,請(qǐng)看下回分解-- 前端如何主導(dǎo)ddd架構(gòu)落地(下)

參考資料:極客時(shí)間《DDD實(shí)戰(zhàn)課》

關(guān)鍵詞: 就是一個(gè) 互聯(lián)網(wǎng)公司 業(yè)務(wù)系統(tǒng)

相關(guān)閱讀