DDD爲什麼叫好不叫座?兼論DCI與業務分析的方法論

     今天,仔細閱讀了園子裏面的一個朋友寫的《一縷陽光:DDD(領域驅動設計)應對具體業務場景,如何聚焦 Domain Model(領域模型)?》(http://www.cnblogs.com/xishuai/p/3800656.html)這篇博客,以爲這是一篇對DDD的分析總結性質的文章,寫得不錯,但奇怪的是,竟然沒有一我的回覆,也許是文章太長不多有人賴得着性子看完,但也多是DDD叫好不叫座的緣由,這篇隨筆裏面也對此進行了分析。不過,我以爲這個問題還有更深層次的緣由,今晚跟朋友們探討了一下,總結後發在這裏,但願有更多的朋友可以看到。html

 

    文章中說到了領域模型,還說到了領域服務,這讓我以爲DDD這個東西有點雞肋啊,須要領域服務去作協調 ,由此引入了工做單元、事務這些東西 ,甚至還有工做流 。這說明基於DDD設計出來的領域模型功能很弱 ,DDD這種模型是靜態的,因此須要領域服務去處理動態的東西 ,這至關於把事物分紅了「動」,「靜」兩個方面去處理。url

    可是「動」,「靜」倒是相對的,由於,按照牛頓運動定律 ,是沒有絕對的靜的,運動是永恆的。 因此分析出來的這個 「靜 」,沒有太大的意義。 所以,這注定 DDD這種建模方式,結果是雞肋,根本之道,是掌握事物的「動機」。 DDD推廣不起來,除了現實緣由,跟它雞肋這個特色不無關係。spa

    從事物的動機出發,進行建模,須要DCI這樣的東西。 DCI是一種切入方式,顧名思義,DCI的意思是數據在上下文中的交互,因此能夠做爲事物動機的觀察切入方式。這說明 ,DCI提供了一種比較有效的途徑,但仍是沒有觸及到根本問題。 不過DCI,相對於DDD,也算是一個很大的進步。可是太超前的東西老是很難讓人接受,DDD都是叫好不叫作,DCI,接受起來就更困難了。設計

 
    咱們順着 DCI的切入點,深刻的觀察事物,分析數據的流入流出 ,進行概括總結,發現某些事物老是有相似的行爲。若是咱們對這一類事物取一個名字,那麼最合適的名字就是 「角色」,因此咱們立馬發現,這些數據其實就是角色進行交互的產物。 若是咱們再深刻的分析角色爲什麼會有這些交互,那麼咱們已經接近前面說的「動機」了。這就是角色的「心智」。因此,也有人說,DCI,其實就是對角色的心智進行建模。
 
    從角色的動機出發,那麼咱們就容易明白角色爲什麼具備這些方法了,明白角色之間爲什麼會有這些交互了。 角色進行交互須要一個載體、媒介,這個東西就是場景。角色交互過程的觀察維度 ,就是時間 。 場景也就是咱們說的空間維度,那麼咱們立刻明白,這些事物的產生、發展、變化,其實就是角色在時空中的運動。 並且,這種運動,是永恆不止的。(參照附錄牛頓運動定律)
 
    角色的具體扮演者,能夠是人,能夠是物,還能夠是人類社會。人類社會在時空中的運動軌跡,這就是「歷史」。若是說角色也是一個維度,那麼咱們把時間緯度、場景維度聯合起來,這就是一個分析事物的方法論,假如咱們用這個方法論來分析業務,那就是 《業務分析三維度(角色+場景+時間)理論》。
 
    " 三維度理論",場景、時間 這些比較容易理解,可是,"角色"這個東西雖然容易理解但要找到這個角色名字並不容易,要擔當這個角色更不容易.我想,"角色"的名字,就像《道德經》所說的:道可道,莫可道;名可名,莫可名。這個「名」能夠說出來但又難以說清楚,因此咱們在對事物進行分析的時候,找到合適的角色,並非一件容易的事情,而分析出角色的「動機」,也就是「道」,就更難了!
 
 
附錄:
牛頓第一運動定律Newton's first law of motion)代表,除非有外力施加,物體的運動速度不會改變。根據這定律,假設沒有任何外力施加或所施加的外力之和爲零,則運動中物體總保持勻速直線運動狀態,靜止物體總保持靜止狀態。物體所顯示出的維持運動狀態不變的這性質稱爲慣性。因此,這定律又稱爲慣性定律。物體的慣性與其質量有關。

爲何說運動是絕對的,靜止是相對的?

一個物體的靜止是相對於另外一個物體的。(也就是所謂的參考系的相對性),牛頓曾說任何物體都是運動的,不存在不運動的東西,從量子力學的的角度也是這麼闡釋的。 xml

相對靜止:htm

沒有任何方法能夠證明一個物體是在絕對靜止之中。絕對靜止的物體是不存在的。靜止只是一個物體對於它周圍的另外一個參照物保持位置不變,因此也只能是相對運動和相對靜止,運動和靜止是相對的。blog

相關文章
相關標籤/搜索