2010-05-28 07:16:39很好!VeryGood

xx驅動設計 Project PayPal s01.02

[領域驅動設計]
之前在 codeplex 上看到有人用 DDD + TDD in ASP.NET MVC 1 針對某領域去寫程式,才對領域驅動的設計產生興趣。
實事上該專案過於注重"領域設計"而忽略了 ASP.NET MVC 的架構優勢,亦閒置已久未曾見有更新。
大概看一下網路上 PowerPoint 格式的 tutorial,分析物件的方式跟我的習慣把 user 所述(需求訪談)分析成資料結構的方式很像,只不過我以前都是 Data-Driven 的設計方式。
領域驅動設計,相當抽象化的概念,看一遍還看不太懂(領域驅動設計精簡版,"模型驅動設計"這章節),目前約略推測在 ASP.NET MVC 2 中可分別對應:View => User Interface, Controller => Application, Model => Domain 以及 Infrastructure;至於模型的基本構成元素,我還沒仔細去領會。
在某個很有名而且都是程式設計師在討論的網站看到,其中一個前輩提到"如果我後面還有十個專案在排隊,我會把十個綜合成一個,一次搞定...",這也是我想學領域驅動設計的原因之一,包裝、解耦合、抽離再複用..balabala 一堆 OO 的賤招,能創造利基才是我最欣賞的。

[測試驅動設計]
Visual Studio 上作單元測試要 fake object,在版本 2008 以前網路上很多免費的工具可用,在版本 2010 可參考"黃忠成"先生的部落格,針對 DynamicObject 可變化出 fake object 方便我們做單元測試。
在 VS2010 上作 TDD 現在已經變得很方便又無腦,如果對自己目前的開發架構很熟的話,用 TDD 去飆程式會寫超快錯誤又少(流程邏輯錯誤除外),節省下來的時間可用於 Domain Knowledge 的分析。