四色原型的思考
學習四色原型有一段時間了,不過始終學得不明不白。與之相比,DDD倒是比較簡單,實踐起來也比較容易。今天又看了一些四色原型的文章,有點心得,到這和大家討論一下吧!不過我們們還是和DDD進行參照著討論。
1、領域物件 與 MI
首先是DDD。DDD的重點是“領域物件”,一切複雜過程的結果,落實到紙面上的,其實就是領域物件的關係圖,說得更直白一些,其實就是 類圖。這並不奇怪,因為DDD其實就是物件導向設計的精華。
那麼四色原型呢?它的重點是"MI",這並非本人亂扯,原書就是這麼寫的。那麼 moment-interval 是啥呢?其實就是一個“動詞”,我的理解是他一定是一個“動詞”,例如 銷售,記賬,傳送 等等。那麼什麼樣的動詞應該被歸納為 MI 呢?我的理解就是 DDD 的分析過程中,所指的“關鍵性動詞”。業務雖然複雜,但是最後我們總是能歸納出關鍵性的動詞,這些動詞其實也就是我們業務模型的核心。
這裡尤其想討論的一點:
jdon 上包括其他很多人的觀點是:MI 相當於 DDD 中的service。我想說這是嚴重的誤人子弟。在 DDD 中,一個關鍵性的動作不可能存在於 service 中,而是應該存在於 領域物件中。所以結論就是: MI 不是 DDD 中的任何東西,而且 MI 的一些方法有可能會歸結到領域物件中。甚至,MI直接就是一個領域模型。
(以上是我個人觀點,正確與否大家討論)
2、ppt 和 role
雖然四色原型的作者告訴我們:Role 是第二位重要的元素,但是我覺得 ppt 其實和 role 是同樣重要的,尤其更多的時候,當你沒有分析出 ppt 的時候,你也分析不出來 role。
例如,車是一個 ppt,壞掉的車則是車的一個role,良好的車也是車的一個role。在這種情況下,我們需要先分析出 ppt 這個東西。
誤區:大家一提到 role,就必然聯想到人。可實際上,在四色原型的分析方式裡,很多物品也可以作為role。所以,很多人會把物品之類“沒有生命的東西”分析成ppt,或者一個ppt的多個狀態,這都是錯的。
3、desc
desc這個元素是起到描述性作用的。大家都說它相當於 DDD 中的值物件,我覺得很正確----至少有助於理解這個抽象的東西。
4、四色原型,DDD 到底應該選擇哪個?
四色原型其實正如其名字一樣,是一種分析模式,而不是設計模式。
所以,分析階段採用四色原型,而在設計階段採用 DDD 應該是可以的。
不過---------在我的實際體會中,並沒有遇到過如此複雜的系統,需要用四色原型去分析明白,然後用 DDD 去設計的,都是憑藉分析關鍵的字詞,簡單的討論,畫一些交流的圖,然後就可以歸納出領域物件,領域物件都有了,四色原型也就沒有用了。
所以,在我看來,四色原型更像是一個學術理論的東西,雖然它可以幫助你分析一個業務如何設計更合理,但是它並不是必需的,而且遵循著迭代的模式,與其分析四色原型,不如畫一些草紙,隨時討論來得方便。
即使是設計一些比較底層的架構,我也仍然認為不斷的迭代,重構,分析領域模型會來得更快。
照這麼說不是白學了?非也!分析階段,適當的執行四色原型會有好處的,請注意:適當。
歡迎大家討論~
1、領域物件 與 MI
首先是DDD。DDD的重點是“領域物件”,一切複雜過程的結果,落實到紙面上的,其實就是領域物件的關係圖,說得更直白一些,其實就是 類圖。這並不奇怪,因為DDD其實就是物件導向設計的精華。
那麼四色原型呢?它的重點是"MI",這並非本人亂扯,原書就是這麼寫的。那麼 moment-interval 是啥呢?其實就是一個“動詞”,我的理解是他一定是一個“動詞”,例如 銷售,記賬,傳送 等等。那麼什麼樣的動詞應該被歸納為 MI 呢?我的理解就是 DDD 的分析過程中,所指的“關鍵性動詞”。業務雖然複雜,但是最後我們總是能歸納出關鍵性的動詞,這些動詞其實也就是我們業務模型的核心。
這裡尤其想討論的一點:
jdon 上包括其他很多人的觀點是:MI 相當於 DDD 中的service。我想說這是嚴重的誤人子弟。在 DDD 中,一個關鍵性的動作不可能存在於 service 中,而是應該存在於 領域物件中。所以結論就是: MI 不是 DDD 中的任何東西,而且 MI 的一些方法有可能會歸結到領域物件中。甚至,MI直接就是一個領域模型。
(以上是我個人觀點,正確與否大家討論)
2、ppt 和 role
雖然四色原型的作者告訴我們:Role 是第二位重要的元素,但是我覺得 ppt 其實和 role 是同樣重要的,尤其更多的時候,當你沒有分析出 ppt 的時候,你也分析不出來 role。
例如,車是一個 ppt,壞掉的車則是車的一個role,良好的車也是車的一個role。在這種情況下,我們需要先分析出 ppt 這個東西。
誤區:大家一提到 role,就必然聯想到人。可實際上,在四色原型的分析方式裡,很多物品也可以作為role。所以,很多人會把物品之類“沒有生命的東西”分析成ppt,或者一個ppt的多個狀態,這都是錯的。
3、desc
desc這個元素是起到描述性作用的。大家都說它相當於 DDD 中的值物件,我覺得很正確----至少有助於理解這個抽象的東西。
4、四色原型,DDD 到底應該選擇哪個?
四色原型其實正如其名字一樣,是一種分析模式,而不是設計模式。
所以,分析階段採用四色原型,而在設計階段採用 DDD 應該是可以的。
不過---------在我的實際體會中,並沒有遇到過如此複雜的系統,需要用四色原型去分析明白,然後用 DDD 去設計的,都是憑藉分析關鍵的字詞,簡單的討論,畫一些交流的圖,然後就可以歸納出領域物件,領域物件都有了,四色原型也就沒有用了。
所以,在我看來,四色原型更像是一個學術理論的東西,雖然它可以幫助你分析一個業務如何設計更合理,但是它並不是必需的,而且遵循著迭代的模式,與其分析四色原型,不如畫一些草紙,隨時討論來得方便。
即使是設計一些比較底層的架構,我也仍然認為不斷的迭代,重構,分析領域模型會來得更快。
照這麼說不是白學了?非也!分析階段,適當的執行四色原型會有好處的,請注意:適當。
歡迎大家討論~
[該貼被yananay於2009-05-27 15:16修改過]
[該貼被admin於2009-06-03 13:42修改過]
相關文章
- 四色原型原型
- 四色原型的問題原型
- 對四色原型中description原型的模糊理解原型
- 請教四色原型原型
- 關於四色原型原型
- 系統分析概念:四色原型原型
- 請教四色原型應用原型
- 四色原型是貧血的設計原型
- 學生管理系統 四色原型原型
- 一個支付系統的四色原型,請指教原型
- 請教四色原型與領域建模的對接技巧原型
- 對於四色原型的一點理解,望banq大俠指導原型
- together 2006 for eclipse 中類的sterotype怎麼設定出四色原型選項?Eclipse原型
- 美國地圖中的四色定理地圖
- 四色模型圖新解模型
- 限界上下文和四色原型,請banq大牛幫助解答一下疑問吧,謝謝原型
- 理解js中的原型,原型物件,原型鏈JS原型物件
- JavaScript中的原型、原型鏈、原型模式JavaScript原型模式
- 關於四色模型的一點困惑模型
- 原型和原型鏈的深入探索原型
- JS中的原型與原型鏈JS原型
- 如何理解JavaScript的原型和原型鏈?JavaScript原型
- 原型設計中的產品原型原型
- 求助: 用四色圖分析組織管理的困惑
- 原型和原型鏈的抽筋拔骨原型
- 【機制】JavaScript的原型、原型鏈、繼承JavaScript原型繼承
- ECMAScript5中的物件,原型,原型鏈,原型的幾種繼承模式【一】物件原型繼承模式
- 原型與原型鏈原型
- 原型和原型鏈原型
- .NET應用架構設計—物件導向分析與設計四色原型模式(彩色建模、領域無關模型)(概念版)應用架構物件原型模式模型
- 說說JS中的原型物件和原型鏈JS原型物件
- 三張圖搞懂JavaScript的原型物件與原型鏈JavaScript原型物件
- JavaScript 原型及原型鏈JavaScript原型
- JavaScript原型與原型鏈JavaScript原型
- JS原型和原型鏈JS原型
- 原型物件與原型鏈原型物件
- 原型和原型鏈梳理原型
- JavaScript 原型 與 原型鏈JavaScript原型