正文

成功應(yīng)用程序的模式(7)

ASP.NET設(shè)計(jì)模式 作者:(美)Scott Millett


1.4  其他有名的設(shè)計(jì)實(shí)踐

除了目前已經(jīng)介紹的設(shè)計(jì)模式、原則和企業(yè)模式之外,我還想介紹幾種設(shè)計(jì)方法學(xué):測(cè)試驅(qū)動(dòng)開發(fā)、行為驅(qū)動(dòng)開發(fā)及領(lǐng)域驅(qū)動(dòng)開發(fā)。本節(jié)不會(huì)深入討論這些主題,因?yàn)橐殉隽吮緯姆懂?。但是,每一章用來演示模式和原則的關(guān)鍵示例代碼均是采用這些方法學(xué)設(shè)計(jì)的,可以從www.wrox.com網(wǎng)站和http://www.tupwk.com.cn上下載這些代碼。

1.4.1  測(cè)試驅(qū)動(dòng)設(shè)計(jì)

TDD(Test-driven Development,測(cè)試驅(qū)動(dòng)設(shè)計(jì))并不像它的名稱所言,它更多的是一種設(shè)計(jì)方法學(xué)而不是測(cè)試策略,這個(gè)名稱只是不夠公正。這種設(shè)計(jì)方法學(xué)背后的主要思想是使用測(cè)試來塑造系統(tǒng)的設(shè)計(jì)。在創(chuàng)建軟件解決方案時(shí),首先編寫一個(gè)導(dǎo)致測(cè)試失敗的測(cè)試程序來斷言某種業(yè)務(wù)邏輯。然后編寫代碼讓測(cè)試通過。最終,通過重構(gòu)來清理所有代碼。這三步已經(jīng)被人們稱為紅-綠-重構(gòu)(red-green-refactor)。紅和綠指的是測(cè)試框架分別用來顯示測(cè)試通過和測(cè)試失敗的顏色。

通過經(jīng)歷TDD流程,最終將得到一個(gè)帶有一套可以確認(rèn)所有行為的測(cè)試的松耦合系統(tǒng)。TDD的一個(gè)副產(chǎn)品是這些測(cè)試提供了一種描述系統(tǒng)能夠做什么以及不能做什么的文檔。因?yàn)闇y(cè)試屬于系統(tǒng)的一部分,所以它絕不會(huì)過時(shí),這與編寫的文檔和代碼注釋不同。

更多有關(guān)TDD的信息請(qǐng)參考以下著作:

●  Test Driven Development: By Example,Kent Beck著

●  The Art of Unit Testing: With Examples in .NET,Roy Osherove著

●  Professional Enterprise .NET,Jon Arking與Scott Millett合著(Wrox出版)

1.4.2  領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)

簡(jiǎn)而言之,DDD(Domain-driven Design,領(lǐng)域驅(qū)動(dòng)設(shè)計(jì))是一組有助于構(gòu)建反映對(duì)業(yè)務(wù)的理解并滿足業(yè)務(wù)需求的應(yīng)用程序的模式和原則。除此之外,它是一種思考開發(fā)方法學(xué)的全新方式。DDD的建模方式如下:首先通過全面理解真實(shí)領(lǐng)域來對(duì)真實(shí)領(lǐng)域建模,然后將所有的術(shù)語、規(guī)則和邏輯放到代碼的某種抽象表示中(通常是以領(lǐng)域模型的形式)。雖然DDD并不是一種框架,但是它確實(shí)有一組構(gòu)建塊或概念可以整合到解決方案中。

在第10章和第11章中構(gòu)建案例研究應(yīng)用程序時(shí)將運(yùn)用這種方法學(xué)。在第4章中我們將更深入研究DDD的一些方面。

有關(guān)DDD的更多信息,請(qǐng)參考以下著作:

●  Domain-Driven Design: Tackling Complexity in the Heart of Software,Eric Evans著

●  Applying Domain-Driven Design and Patterns: With Examples in C# and .NET,Jimmy Nilsson著

●  .NET Domain-Driven Design with C#: Problem - Design - Solution,Tim McCarthy著


上一章目錄下一章

Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)