1.在
UI
層,定義界面事件的
Handler,並將界面模塊化
。此處代碼不應包含任何業務邏輯
2.在
Business
層,定義和業務相關的接口以及實現。系統里面和業務相關的代碼都應放在
Business Layer
中
3.在
Data Access
層,定義獲取數據的接口及實現。此處代碼不應該包含任何業務邏輯。

在步驟1中,要分析出UI上面的事件。當事件分析出來后,再考慮如何來處理這些事件,這時就進入了步驟2。
在步驟2中,分析出業務處理邏輯以及處理這些業務邏輯時所依賴的數據。可以一邊寫業務邏輯代碼,一邊根據業務邏輯來定義獲取數據的接口。
最后在步驟3中,來實現獲取數據的接口。
在步驟2中,可以根據Test Driven Development的思想,通過單元測試,來驅動代碼的開發。這對項目的質量有很大的促進作用。
這個過程的實現依賴於依賴注入框架,獨立的事件通知機制以及Mock框架。
當然,這個過程對風險控制和業務變更仍然是積極的。由於開發是從UI層面開始,一方面使開發人員對業務的理解逐步深化,另一方面使需求的落實變得更加具體,這個過程使得風險的暴露提前,使我們能夠盡早發現風險,從而使我們有機會來控制風險。由於界面的模塊化,在某種程度上能夠縮小未來的需求變更的影響范圍,即需求的變更可能只發生在某一個模塊或幾個模塊中,從而只影響一個或幾個模塊,而不是整個系統。
以上雖然是針對Asp.net項目的開發流程的總結,但對其它類型的項目仍然適用。希望能夠幫助你在項目開發和管理中理清思路。