出版時(shí)間:2010-4 出版社:機(jī)械工業(yè) 作者:Martin Fowler 頁數(shù):363 譯者:王懷民,周斌
Tag標(biāo)簽:無
前言
“每一個(gè)模式描述了一個(gè)在我們周圍不斷重復(fù)發(fā)生的問題,以及該問題的解決方案的核心。這樣,你就能一次又一次地使用該方案而不必做重復(fù)勞動。” —Christopher Alexander 本書是面向?qū)ο蟠髱烳artin Fowler繼《Analysis Patterns》、《UML Distilled》、《Planning Extreme Programming》、《Refactoring》之后的又一力作。 “溫故而知新”。Fowler在本書中再次向我們證明了《禮記》中這句古訓(xùn)的震撼力—他在回頭審視自己及同仁多年來從事企業(yè)應(yīng)用開發(fā)的經(jīng)驗(yàn)和教訓(xùn)后,歸納總結(jié)了40多種企業(yè)應(yīng)用架構(gòu)的設(shè)計(jì)模式。這些模式從不同層次、不同側(cè)面向我們展示了什么是好的企業(yè)應(yīng)用架構(gòu)?如何設(shè)計(jì)好的企業(yè)應(yīng)用? 正如作者自己所言,企業(yè)應(yīng)用在某些方面比其他軟件(如電信通信軟件)復(fù)雜得多:紛繁復(fù)雜的企業(yè)數(shù)據(jù)、“不合邏輯”的業(yè)務(wù)規(guī)則、變化莫測的用戶需求,等等。環(huán)顧四周—CORBA、J2EE、.NET—企業(yè)應(yīng)用開發(fā)技術(shù)可謂“前仆后繼、層出不窮”,開發(fā)平臺的種類之多就更不必說。 招式套路可以千變?nèi)f化,扎實(shí)深厚的“內(nèi)功”卻是始終如一!雖然企業(yè)應(yīng)用涉及的軟件技術(shù)不斷翻新,但是基本的架構(gòu)及設(shè)計(jì)思想?yún)s沒有太多變化。將以前行之有效的設(shè)計(jì)思路和方法加以適當(dāng)調(diào)整,并應(yīng)用到當(dāng)前的問題上,是最高效的做法。在一組專家級合作者的幫助下,Martin將40多種經(jīng)常出現(xiàn)的解決方案轉(zhuǎn)化成模式,最終融會成這本“內(nèi)功心法”。在仔細(xì)研讀、用心揣摩本書之后,希望它能夠幫助你應(yīng)對任何一種企業(yè)應(yīng)用平臺,駕馭任何一種企業(yè)應(yīng)用技術(shù)—無論是現(xiàn)在的技術(shù)還是未來的技術(shù)。 熟悉Fowler的讀者都知道,這位大師的寫作風(fēng)格可謂是“深入淺出,娓娓道來”。本書也是一樣。前8章是關(guān)于企業(yè)應(yīng)用的背景知識,如分層架構(gòu)、Web表現(xiàn)、業(yè)務(wù)邏輯、數(shù)據(jù)庫映射、并發(fā)、會話、分布策略,等等。在此基礎(chǔ)上,隨后的各章分別對與這些背景知識相關(guān)的設(shè)計(jì)模式進(jìn)行了詳細(xì)的介紹。與其他設(shè)計(jì)模式的書一樣,本書從模式的使用場景、解決方案、UML表示等方面予以介紹,詳略有致。就連示例的編程語言的選取—Java和C#—也是與他的寫作風(fēng)格一脈相承的。 夜已深,窗外依舊是綿綿不斷的早春小雨。讓我們酌一杯清茶,一起來品味大師的話,一起來品味“源于實(shí)踐、指導(dǎo)實(shí)踐”的苦澀與甘甜— “模式的關(guān)鍵點(diǎn)是它們源于實(shí)踐。必須觀察人們的工作過程,發(fā)現(xiàn)其中好的設(shè)計(jì),并找出‘這些解決方案的核心’。這不是一個(gè)簡單的過程,但是一旦發(fā)現(xiàn)了某個(gè)模式,它將是非常有價(jià)值的。對于我來說,價(jià)值之一是能夠撰寫這樣一本參考書。你不必通讀本書的全部內(nèi)容,也不必通讀任何一本有關(guān)模式的書。只需要了解到這些模式都是干什么的、它們解決什么問題、它們是如何解決問題的,就足夠了。這樣,一旦你碰到類似問題,就可以從書中找出相應(yīng)的模式。那時(shí),你再深入了解相應(yīng)的模式也為時(shí)不晚?!?/pre>內(nèi)容概要
本書作者是當(dāng)今面向?qū)ο筌浖_發(fā)的權(quán)威,他在一組專家級合作者的幫助下,將40多種經(jīng)常出現(xiàn)的解決方案轉(zhuǎn)化成模式,最終寫成這本能夠應(yīng)用于任何一種企業(yè)應(yīng)用平臺的、關(guān)于解決方案的、不可或缺的手冊。本書獲得了2003年度美國軟件開發(fā)雜志圖書類的生產(chǎn)效率獎和讀者選擇獎。本書分為兩大部分。第一部分是關(guān)于如何開發(fā)企業(yè)應(yīng)用的簡單介紹。第二部分是本書的主體,是關(guān)于模式的詳細(xì)參考手冊,每個(gè)模式都給出使用方法和實(shí)現(xiàn)信息,并配以詳細(xì)的Java代碼或C#代碼示例。此外,整本書中還用了大量UML圖來進(jìn)一步闡明有關(guān)概念。 本書是為致力于設(shè)計(jì)和構(gòu)建企業(yè)應(yīng)用的軟件架構(gòu)師、設(shè)計(jì)人員和編程人員而寫的,同時(shí)也可作為高等院校計(jì)算機(jī)專業(yè)及軟件學(xué)院相關(guān)課程的參考教材。作者簡介
Martin Fowler是一位獨(dú)立咨詢顧問,他運(yùn)用對象技術(shù)解決企業(yè)問題已經(jīng)超過十年。他的顧問領(lǐng)域包括健康管理、金融貿(mào)易,以及法人財(cái)務(wù)。他的客戶包括Chrysler,Citibank,UK National Health Service,AndersenConsulting,NetscapeCommunications。此外Fowler也是objects、UML、書籍目錄
譯者序 前言 模式列表 引言 第一部分 表 述 第1章 分層 第2章 組織領(lǐng)域邏輯 第3章 映射到關(guān)系數(shù)據(jù)庫 第4章 Web表現(xiàn)層 第5章 并發(fā) 第6章 會話狀態(tài) 第7章 分布策略 第8章 通盤考慮 第二部分 模 式 第9章 領(lǐng)域邏輯模式 第10章 數(shù)據(jù)源架構(gòu)模式 第11章 對象-關(guān)系行為模式 第12章 對象-關(guān)系結(jié)構(gòu)模式 第13章 對象-關(guān)系元數(shù)據(jù)映射模式 第14章 Web表現(xiàn)模式 第15章 分布模式 第16章 離線并發(fā)模式 第17章 會話狀態(tài)模式 第18章 基本模式 參考文獻(xiàn)章節(jié)摘錄
插圖:我雖然沒有從事過早期批處理系統(tǒng)時(shí)期的任何工作,但我認(rèn)為當(dāng)時(shí)的軟件工作人員不會太關(guān)注層次的概念,只要編寫操作某些文件(ISAM、VSAM等)格式的程序,這就是當(dāng)時(shí)的應(yīng)用。它不需要層次。20世紀(jì)90年代,隨著客戶/服務(wù)器系統(tǒng)的出現(xiàn),分層的概念更明顯了。這樣的系統(tǒng)是一種兩個(gè)層次的系統(tǒng):客戶端包括用戶界面和其他應(yīng)用代碼,服務(wù)器端通常是關(guān)系型數(shù)據(jù)庫。常見的客戶端工具如VB、PowerBuilder和Delphi。這些工具使得構(gòu)建數(shù)據(jù)密集型應(yīng)用非常容易。因?yàn)樗鼈兊挠脩艚缑婵丶ǔ6际荢QL感知的。因此,可以通過將控件拖拽到“設(shè)計(jì)區(qū)域”來建立界面,然后再使用屬性表單把控件連接到后臺數(shù)據(jù)庫。如果應(yīng)用僅僅包括關(guān)系數(shù)據(jù)的簡單顯示和修改,那么這種客戶/服務(wù)器系統(tǒng)的工作方式非常合適。問題來自領(lǐng)域邏輯:如業(yè)務(wù)規(guī)則、驗(yàn)證、計(jì)算等。通常,人們會把它們寫在客戶端,但是這樣很笨拙,并且往往把領(lǐng)域邏輯直接嵌入到用戶界面。隨著領(lǐng)域邏輯的不斷復(fù)雜化,這些代碼將越來越難以使用。而且,這樣做很容易產(chǎn)生冗余代碼,這意味著簡單的變化都會導(dǎo)致要在很多界面中尋找相似代碼。另外一種辦法是把這些領(lǐng)域邏輯放到數(shù)據(jù)庫端,作為存儲過程。但是,存儲過程只提供有限的結(jié)構(gòu)化機(jī)制,這將再次導(dǎo)致笨拙的代碼。而且,很多人喜歡關(guān)系型數(shù)據(jù)庫的原因之一是SQL是一個(gè)標(biāo)準(zhǔn),允許他們更換數(shù)據(jù)庫廠商。盡管真正更換數(shù)據(jù)庫廠商的用戶寥寥無幾,但還是有很多人希望擁有這種選擇,并且沒有太大的附加代價(jià)。由于存儲過程都是數(shù)據(jù)庫廠商私有的,因此普通用戶被剝奪了這種選擇權(quán)。在客戶/服務(wù)器方式逐漸大眾化的同時(shí),面向?qū)ο蠓绞介_始崛起。面向?qū)ο鬄轭I(lǐng)域邏輯的問題找到了答案:轉(zhuǎn)到三層架構(gòu)的系統(tǒng)。在這種方式下,在表現(xiàn)層實(shí)現(xiàn)用戶界面,在領(lǐng)域?qū)訉?shí)現(xiàn)領(lǐng)域邏輯,在數(shù)據(jù)源層存取數(shù)據(jù)。這種方式使你可以將復(fù)雜的領(lǐng)域邏輯從界面代碼中抽取出來,單獨(dú)放到中間層,用對象加以建模和組織。編輯推薦
《企業(yè)應(yīng)用架構(gòu)模式》:企業(yè)應(yīng)用開發(fā)的實(shí)踐得益于多種新技術(shù)的出現(xiàn),多層的面向?qū)ο笃脚_(如Java、.NET)已經(jīng)日漸平常。這些新工具和新技術(shù)有能力構(gòu)建更強(qiáng)大的企業(yè)應(yīng)用程序,但是在實(shí)現(xiàn)上還不太容易。由于開發(fā)人員未能充分理解有經(jīng)驗(yàn)的對象程序開發(fā)人員在架構(gòu)方面的經(jīng)驗(yàn)和教訓(xùn).因此企業(yè)應(yīng)用中經(jīng)常存在一些共同的錯(cuò)誤?!镀髽I(yè)應(yīng)用架構(gòu)模式》就是面向企業(yè)應(yīng)用開發(fā)者的,可幫助他們迎接這種艱難挑戰(zhàn)?!镀髽I(yè)應(yīng)用架構(gòu)模式》的作者M(jìn)a riin Fowler注意到,盡管技術(shù)本身存在變化——從Smalltalk到CORBA,再到。Java和NET,但基本的設(shè)計(jì)思想并沒有太多變化.可以加以適當(dāng)調(diào)整,用來解決那些共同的問題。在一組專家級合作者的幫助下,作者將40多種經(jīng)常出現(xiàn)的解決方案轉(zhuǎn)化成模式,最終寫成這本能夠應(yīng)用于任何一種企業(yè)應(yīng)用平臺的、關(guān)于解決方案的、不可或缺的手冊?!镀髽I(yè)應(yīng)用架構(gòu)模式》曾于2002年榮獲美國軟件開發(fā)雜志圖書類的生產(chǎn)效率獎和讀者選擇獎。《企業(yè)應(yīng)用架構(gòu)模式》涉及兩部分內(nèi)容。第一部分是關(guān)于如何開發(fā)企業(yè)應(yīng)用的簡單介紹。在閱讀這部分時(shí).讀者可以從頭到尾通讀,以掌握《企業(yè)應(yīng)用架構(gòu)模式》的范圍。第二部分是《企業(yè)應(yīng)用架構(gòu)模式》的主體,是關(guān)于模式的詳細(xì)參考手冊.每個(gè)模式都給出使用方法和實(shí)現(xiàn)信息,并配有詳細(xì)的Java代碼或C#代碼的示例。此外,整《企業(yè)應(yīng)用架構(gòu)模式》中還用了大量UML圖來進(jìn)一步闡明有關(guān)概念。《企業(yè)應(yīng)用架構(gòu)模式》主要內(nèi)容:將企業(yè)應(yīng)用分層組織企業(yè)業(yè)務(wù)邏輯的主要方法在對象和關(guān)系數(shù)據(jù)庫之間進(jìn)行映射的深層次解決方案通過模型一視圖一控制器來組織Web表現(xiàn)處理跨多事務(wù)的數(shù)據(jù)的并發(fā)問題設(shè)計(jì)分布式對象接口圖書封面
圖書標(biāo)簽Tags
無評論、評分、閱讀與下載
- 還沒讀過(70)
- 勉強(qiáng)可看(512)
- 一般般(874)
- 內(nèi)容豐富(3624)
- 強(qiáng)力推薦(297)
企業(yè)應(yīng)用架構(gòu)模式 PDF格式下載