DDD为何叫好不叫座?兼论DCI与业务分析的方法论
???? 今天,仔細(xì)閱讀了園子里面的一個(gè)朋友寫的《一縷陽光:DDD(領(lǐng)域驅(qū)動(dòng)設(shè)計(jì))應(yīng)對具體業(yè)務(wù)場景,如何聚焦 Domain Model(領(lǐng)域模型)?》(http://www.cnblogs.com/xishuai/p/3800656.html)這篇博客,覺得這是一篇對DDD的分析總結(jié)性質(zhì)的文章,寫得不錯(cuò),但奇怪的是,居然沒有一個(gè)人回復(fù),也許是文章太長很少有人賴得著性子看完,但也可能是DDD叫好不叫座的原因,這篇隨筆里面也對此進(jìn)行了分析。不過,我覺得這個(gè)問題還有更深層次的原因,今晚跟朋友們探討了一下,總結(jié)后發(fā)在這里,希望有更多的朋友能夠看到。
?
??? 文章中說到了領(lǐng)域模型,還說到了領(lǐng)域服務(wù),這讓我覺得DDD這個(gè)東西有點(diǎn)雞肋啊,需要領(lǐng)域服務(wù)去做協(xié)調(diào)?,由此引入了工作單元、事務(wù)這些東西?,甚至還有工作流?。這說明基于DDD設(shè)計(jì)出來的領(lǐng)域模型功能很弱?,DDD這種模型是靜態(tài)的,所以需要領(lǐng)域服務(wù)去處理動(dòng)態(tài)的東西?,這相當(dāng)于把事物分成了“動(dòng)”,“靜”兩個(gè)方面去處理。
??? 但是“動(dòng)”,“靜”卻是相對的,因?yàn)?#xff0c;按照牛頓運(yùn)動(dòng)定律?,是沒有絕對的靜的,運(yùn)動(dòng)是永恒的。 所以分析出來的這個(gè)?“靜?”,沒有太大的意義。 因此,這注定?DDD這種建模方式,結(jié)果是雞肋,根本之道,是掌握事物的“動(dòng)機(jī)”。 DDD推廣不起來,除了現(xiàn)實(shí)原因,跟它雞肋這個(gè)特點(diǎn)不無關(guān)系。
??? 從事物的動(dòng)機(jī)出發(fā),進(jìn)行建模,需要DCI這樣的東西。 DCI是一種切入方式,顧名思義,DCI的意思是數(shù)據(jù)在上下文中的交互,所以可以作為事物動(dòng)機(jī)的觀察切入方式。這說明?,DCI提供了一種比較有效的途徑,但還是沒有觸及到根本問題。 不過DCI,相對于DDD,也算是一個(gè)很大的進(jìn)步。但是太超前的東西總是很難讓人接受,DDD都是叫好不叫做,DCI,接受起來就更困難了。
? ??? 我們順著?DCI的切入點(diǎn),深入的觀察事物,分析數(shù)據(jù)的流入流出?,進(jìn)行歸納總結(jié),發(fā)現(xiàn)某些事物總是有類似的行為。如果我們對這一類事物取一個(gè)名字,那么最合適的名字就是?“角色”,所以我們立馬發(fā)現(xiàn),這些數(shù)據(jù)其實(shí)就是角色進(jìn)行交互的產(chǎn)物。 如果我們再深入的分析角色為何會(huì)有這些交互,那么我們已經(jīng)接近前面說的“動(dòng)機(jī)”了。這就是角色的“心智”。所以,也有人說,DCI,其實(shí)就是對角色的心智進(jìn)行建模。 ? ??? 從角色的動(dòng)機(jī)出發(fā),那么我們就容易明白角色為何具有這些方法了,明白角色之間為何會(huì)有這些交互了。 角色進(jìn)行交互需要一個(gè)載體、媒介,這個(gè)東西就是場景。角色交互過程的觀察維度 ,就是時(shí)間 。場景也就是我們說的空間維度,那么我們馬上明白,這些事物的產(chǎn)生、發(fā)展、變化,其實(shí)就是角色在時(shí)空中的運(yùn)動(dòng)。 而且,這種運(yùn)動(dòng),是永恒不止的。(參照附錄牛頓運(yùn)動(dòng)定律) ? ??? 角色的具體扮演者,可以是人,可以是物,還可以是人類社會(huì)。人類社會(huì)在時(shí)空中的運(yùn)動(dòng)軌跡,這就是“歷史”。如果說角色也是一個(gè)維度,那么我們把時(shí)間緯度、場景維度聯(lián)合起來,這就是一個(gè)分析事物的方法論,假如我們用這個(gè)方法論來分析業(yè)務(wù),那就是 《業(yè)務(wù)分析三維度(角色+場景+時(shí)間)理論》。 "三維度理論",場景、時(shí)間 這些比較容易理解,但是,"角色"這個(gè)東西雖然容易理解但要找到這個(gè)角色名字并不容易,要擔(dān)當(dāng)這個(gè)角色更不容易.我想,"角色"的名字,就像《道德經(jīng)》所說的:道可道,莫可道;名可名,莫可名。這個(gè)“名”可以說出來但又難以說清楚,所以我們在對事物進(jìn)行分析的時(shí)候,找到合適的角色,并不是一件容易的事情,而分析出角色的“動(dòng)機(jī)”,也就是“道”,就更難了! 附錄: 牛頓第一運(yùn)動(dòng)定律: 牛頓第一運(yùn)動(dòng)定律(Newton's first law of motion)表明,除非有外力施加,物體的運(yùn)動(dòng)速度不會(huì)改變。根據(jù)這定律,假設(shè)沒有任何外力施加或所施加的外力之和為零,則運(yùn)動(dòng)中物體總保持勻速直線運(yùn)動(dòng)狀態(tài),靜止物體總保持靜止?fàn)顟B(tài)。物體所顯示出的維持運(yùn)動(dòng)狀態(tài)不變的這性質(zhì)稱為慣性。所以,這定律又稱為慣性定律。物體的慣性與其質(zhì)量有關(guān)。為什么說運(yùn)動(dòng)是絕對的,靜止是相對的?
一個(gè)物體的靜止是相對于另一個(gè)物體的。(也就是所謂的參考系的相對性),牛頓曾說任何物體都是運(yùn)動(dòng)的,不存在不運(yùn)動(dòng)的東西,從量子力學(xué)的的角度也是這么闡釋的。?
相對靜止:
沒有任何方法可以證實(shí)一個(gè)物體是在絕對靜止之中。絕對靜止的物體是不存在的。靜止只是一個(gè)物體對于它周圍的另一個(gè)參照物保持位置不變,所以也只能是相對運(yùn)動(dòng)和相對靜止,運(yùn)動(dòng)和靜止是相對的。
總結(jié)
以上是生活随笔為你收集整理的DDD为何叫好不叫座?兼论DCI与业务分析的方法论的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小程序 、h5图片铺满div,自适应容器
- 下一篇: 串口初始化配置