注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)JAVA及其相關(guān)J2EE核心模式(原書(shū)第2版)

J2EE核心模式(原書(shū)第2版)

J2EE核心模式(原書(shū)第2版)

定 價(jià):¥55.00

作 者: (美)Deepak Alur,(美)John Crupi,(美)Dan Malks著;劉天北等譯;劉天北譯
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng): Sun公司核心技術(shù)叢書(shū)
標(biāo) 簽: J2EE

ISBN: 9787111159421 出版時(shí)間: 2005-03-01 包裝: 平裝
開(kāi)本: 24cm 頁(yè)數(shù): 500 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)講解使用J2EE核心技術(shù)實(shí)現(xiàn)企業(yè)應(yīng)用過(guò)程中的模式、最佳實(shí)踐、設(shè)計(jì)策略以及經(jīng)過(guò)驗(yàn)證的解決方案,涵蓋了JSP、servlet、EJB、JMS等技術(shù),其中J2EE模式目錄包括21個(gè)模式以及大量策略,幫助讀者迅速熟練掌握J(rèn)2EE技術(shù),從而構(gòu)建出健壯、高效的企業(yè)應(yīng)用。本書(shū)是計(jì)算機(jī)應(yīng)用開(kāi)發(fā)人員、架構(gòu)師、技術(shù)經(jīng)理等人員的必備參考書(shū)。本書(shū)前言譯者序?yàn)橐徊坑蒅radyBooch和MartinFowler作序的作品寫(xiě)序言,這個(gè)念頭本身就足夠荒謬和僭越,不啻于在莎翁之后再寫(xiě)一個(gè)關(guān)于丹麥王子復(fù)仇的劇本。大師們的判斷是中肯而毫不含糊的:“沒(méi)有這本書(shū),就別開(kāi)發(fā)EJB?!彼麄兊膿?dān)保足以確認(rèn)本書(shū)在其論域中舍我其誰(shuí)的地位。是的,這就是“那本”J2EE書(shū)。當(dāng)然,對(duì)于廣大中國(guó)開(kāi)發(fā)者而言,我們?cè)缇鸵呀?jīng)在“沒(méi)有這本書(shū)”的條件下開(kāi)發(fā)了大量J2EE乃至EJB應(yīng)用系統(tǒng)。那些波折的、不乏磨難的開(kāi)發(fā)歷程似乎使不少人具備了一種不無(wú)理由的自信,在掌握了若干API細(xì)節(jié)、若干應(yīng)用服務(wù)器配置訣竅、若干框架類(lèi)庫(kù)用法之后,他們或是公開(kāi)、或是暗自地把自己當(dāng)成了當(dāng)之無(wú)愧的Java企業(yè)開(kāi)發(fā)專(zhuān)家?!?,這些話(huà)沒(méi)有任何揶揄的意思:我們想說(shuō)的其實(shí)是,本書(shū)恰恰是為以上這一類(lèi)開(kāi)發(fā)者寫(xiě)的。對(duì)于他們想成為“Java企業(yè)開(kāi)發(fā)專(zhuān)家”的隱秘欲望,本書(shū)就是最大限度的補(bǔ)救和成全。如果說(shuō),此前的各種教程都是在介紹J2EE開(kāi)發(fā)中的“內(nèi)容”要素—也就是,教給我們“做什么”的話(huà),本書(shū)關(guān)注的則是這里的“形式”要素,即“怎樣做”才能開(kāi)發(fā)出高效的、優(yōu)雅的J2EE系統(tǒng)。讀者從中學(xué)到的,將不僅僅是“J2EE技術(shù)”,而是“如何使用J2EE技術(shù)進(jìn)行設(shè)計(jì)”。換句話(huà)說(shuō),如果你以前沒(méi)有進(jìn)行過(guò)J2EE實(shí)踐,但明早將應(yīng)聘一個(gè)需要“1年J2EE開(kāi)發(fā)經(jīng)驗(yàn)”的職位,本書(shū)中不包含你今晚要徹夜吞咽的那一類(lèi)知識(shí);相反,如果你,這位未來(lái)的“Java企業(yè)開(kāi)發(fā)專(zhuān)家”,追求的職位是“資深Java應(yīng)用系統(tǒng)架構(gòu)師”,如果你預(yù)料到未來(lái)的上司明天將問(wèn)起“怎樣實(shí)現(xiàn)訪問(wèn)控制”、“何時(shí)采用細(xì)粒度的接口設(shè)計(jì)”等“高階”問(wèn)題,那么恭喜你,今晚—乃至今后—閱讀本書(shū),你選對(duì)了補(bǔ)課的讀物。作為本書(shū)第1版的忠實(shí)讀者,我們(半是欣喜、半是驚訝地)發(fā)現(xiàn),眼前的這部第2版構(gòu)成了全新的閱讀體驗(yàn)。作者們按照最新版J2EE技術(shù)規(guī)范(尤其是EJB2.1)全面修訂了技術(shù)細(xì)節(jié);根據(jù)模式社區(qū)的研究交流,作者們補(bǔ)入了若干模式;即使是一些不涉及技術(shù)更新的部分,論述方式、示例也完全不同于第1版;原有的PSA項(xiàng)目(第1版“尾聲”一章)融入了其余各章的“示例代碼”部分;而新增的討論“微架構(gòu)”的尾聲、對(duì)WebService等技術(shù)的關(guān)注、對(duì)各種的持久化方案(定制持久化、EJB、JDO等)的深入討論,都體現(xiàn)出作者們對(duì)本書(shū)新版的大量投入。受益于本書(shū)有年,在此,我們想冒昧地為本書(shū)的中國(guó)讀者們建議一條高效的閱讀路徑:與第1章相比,第5章“J2EE模式概覽”是讀者更合理的起步點(diǎn)。請(qǐng)?zhí)貏e關(guān)注其中對(duì)“分層”、“術(shù)語(yǔ)”和模式/策略區(qū)別的討論,這些都是貫穿全書(shū)的重要概念!其次,應(yīng)該通讀第2章“表現(xiàn)層設(shè)計(jì)考慮和不佳實(shí)踐”和第3章“業(yè)務(wù)層設(shè)計(jì)考慮和不佳實(shí)踐”:即使你不打算使用任何模式,甚至,即使你根本不關(guān)心J2EE開(kāi)發(fā),只要你的工作與分布式企業(yè)應(yīng)用系統(tǒng)有關(guān),這兩章涉及的問(wèn)題都是你遲早會(huì)遇到的。至于每個(gè)具體模式本身,我們則推薦讀者留意其中詳盡的“策略”部分和那些散布其中的“設(shè)計(jì)手記”。前者討論了對(duì)同一個(gè)模式的多種實(shí)現(xiàn)方案,后者則突出介紹了特定開(kāi)發(fā)領(lǐng)域的一些核心概念和考慮。一部英文技術(shù)論著在漢語(yǔ)中的旅行,永遠(yuǎn)是一段難以捉摸的行程。對(duì)于本書(shū)的漢語(yǔ)譯者,“技術(shù)難度”并非挑戰(zhàn):全書(shū)討論的正是譯者們最為熟知的一個(gè)領(lǐng)域,所以我們能夠負(fù)責(zé)任地說(shuō),在這個(gè)中譯本里,沒(méi)有任何技術(shù)細(xì)節(jié)會(huì)因?yàn)樽g者的無(wú)知或生疏而發(fā)生變形或曲解。這次翻譯的原則和前提是對(duì)原文的徹底領(lǐng)會(huì)。事實(shí)上,譯者在翻譯工作中遇到的困難主要發(fā)生在“語(yǔ)匯”層面。簡(jiǎn)單地說(shuō),J2EE專(zhuān)著的譯者總要面對(duì)“翻,還是不翻”的兩難處境:對(duì)象、函數(shù)的名稱(chēng),UML圖中的各種元素,這些內(nèi)容由英語(yǔ)表示早就是約定俗成,即使是英語(yǔ)程度略低的開(kāi)發(fā)者大概也都能讀懂,所以,在讀者能夠理解的部分盡可能保留原文似乎是一種合理的做法—畢竟開(kāi)發(fā)工作最終是與代碼有關(guān),而代碼則肯定是要用“英文”的。但在另一方面,翻譯的責(zé)任就在于讓不諳英文的讀者也能通達(dá)作品,如果譯文中大量段落(不包括示例代碼)都仍保留為英文或“類(lèi)英文”,那么讀者也就無(wú)法直觀地獲得原文包含的信息。反復(fù)權(quán)衡之后,在這個(gè)譯本中譯者的解決方式還是折衷的。工作中我們采取了以下原則:1)術(shù)語(yǔ)盡可能采用通用文獻(xiàn)定譯,不自創(chuàng)譯法。對(duì)于各個(gè)模式的名稱(chēng)、模式文檔模板各部分名稱(chēng)、重構(gòu)手法名稱(chēng),我們參考了李英軍等譯《設(shè)計(jì)模式》(機(jī)械工業(yè)出版社,2000年)、熊節(jié)等譯《重構(gòu)》(中國(guó)電力出版社,2003年)等譯作,以及IBMDeveloperWorks中文網(wǎng)站的部分資源。2)本領(lǐng)域的一些常見(jiàn)術(shù)語(yǔ),如果沒(méi)有定譯,本書(shū)也不自創(chuàng)新語(yǔ),強(qiáng)譯為中文,而是保留英文原字。這一類(lèi)的術(shù)語(yǔ)包括:applet、servlet、bean、JavaBean、entitybean、sessionbean、EJB、finder、Context、cookie、RowSet、null、scriptlet、WebService。根據(jù)我們的觀察,國(guó)內(nèi)的開(kāi)發(fā)者在日常工作中已經(jīng)習(xí)慣按原文使用以上術(shù)語(yǔ)。在一些情況下,我們也以注釋形式澄清了這些術(shù)語(yǔ)的用法。另外,一些非常直觀的英文表達(dá)方式,比如“versus/vs”(“AversusB”即“A對(duì)B”、“A與B相比較/對(duì)照”),我們也徑用原文—改為漢語(yǔ)既羅嗦,也不直觀。3)模式中的對(duì)象名稱(chēng),往往按照代碼風(fēng)格命名,比如“BusinessObject”、“CustomerTO”等。如果對(duì)此完全不加翻譯,那么很多充斥這類(lèi)表達(dá)的段落就很難理解。我們的原則是,在每個(gè)自然段第一次出現(xiàn)某個(gè)這類(lèi)表達(dá)方式時(shí),用括號(hào)注明,比如“BusinessObject(業(yè)務(wù)對(duì)象)”、“CustomerTO(客戶(hù)傳輸對(duì)象)”等。希望這個(gè)做法能夠維持易懂和簡(jiǎn)潔之間的平衡。4)書(shū)中示例代碼占有相當(dāng)大的比重,而代碼注釋則是理解這些代碼的關(guān)鍵。我們把所有代碼注釋譯為中文。而對(duì)在視圖中顯示特定結(jié)果的代碼(比如調(diào)試信息等),我們沒(méi)有改為中文,只是在必要時(shí)對(duì)輸出信息的含義加以注解。如果讀者更信賴(lài)代碼原貌,還可以從本書(shū)官方網(wǎng)http://www.corej2eepatterns.com/下載原始代碼。5)原書(shū)不包含注解,目前的所有注解都是譯注。6)原書(shū)申義未暢處,譯文中以方括號(hào)[]加以解釋、補(bǔ)足,略去生澀。這與上面三條原則一樣,都類(lèi)似于在原作講話(huà)時(shí)的插嘴—但翻譯任務(wù)本身,似乎本就已經(jīng)是一種“插嘴”了。在博學(xué)的讀者看來(lái),有時(shí)候譯者或許還不如保持體面的沉默—但我們只能力圖做到插嘴而不多嘴。7)原書(shū)引用了Apache項(xiàng)目的若干代碼,所以附錄中包含Apache軟件授權(quán)協(xié)議一頁(yè)。中譯本照錄了這份法律文件,未加翻譯。8)幾個(gè)關(guān)鍵術(shù)語(yǔ)的譯名考慮:*application:一般譯為“應(yīng)用程序”或“應(yīng)用”。本書(shū)中這個(gè)詞單獨(dú)出現(xiàn)時(shí),往往指的是“企業(yè)應(yīng)用”,亦即企業(yè)信息應(yīng)用系統(tǒng)??紤]到“應(yīng)用程序”容易被理解為“桌面程序(desktopapplication)”,在該詞含有“企業(yè)應(yīng)用”意味時(shí),我們譯為“應(yīng)用系統(tǒng)”,其他情況下則譯為“應(yīng)用”,以示區(qū)別。*client:譯為“客戶(hù)端”。但本書(shū)中所說(shuō)的“客戶(hù)端”常常是指特定組件的調(diào)用者,不一定是“桌面程序客戶(hù)端”,反倒很可能本身也是另一種組件、甚至一個(gè)子系統(tǒng)。希望讀者注意該詞在書(shū)中的用法。*POJO:軟件方法論大師MartinFowler在《PatternsofEnterpriseApplicationArchitecture》(PEAA)中創(chuàng)造的說(shuō)法,是plainoldJavaobject的縮寫(xiě),指普通Java對(duì)象(而不是EJB等組件)。中譯本仍采用“POJO”名稱(chēng)。*enterprisebean:直譯為“企業(yè)bean”,在本書(shū)中就是“enterpriseJavaBean/EJB”的另一說(shuō)法。為了直觀,我們統(tǒng)一譯為“EJB”。*tier/layer:字面上都是“層”/“層次”。本書(shū)中“tier”指的往往是“架構(gòu)”意義上的分層,比如“表現(xiàn)層”、“業(yè)務(wù)層”、“集成層”等,而“l(fā)ayer”既分享了前者的含義,有時(shí)也指tier內(nèi)部的中間層次,比如“會(huì)話(huà)門(mén)面”就構(gòu)成了客戶(hù)端和業(yè)務(wù)服務(wù)之間的一個(gè)“l(fā)ayer”。這兩種意思實(shí)在很難區(qū)分,中譯本只能都譯為“層”、“層次”。希望讀者在閱讀中體察這種細(xì)微差別。*delegate:是設(shè)計(jì)模式中的重要概念。一般譯為“委派”。但在我們看來(lái),這個(gè)譯法還不完整,因?yàn)椤拔伞痹跐h語(yǔ)中只是動(dòng)詞,而delegate往往還充當(dāng)名詞。這次中譯本的做法是,動(dòng)詞delegate仍譯為“委派”,比如“A把功能F委派給業(yè)務(wù)層的B”,而名詞delegate則譯為“代表”,比如“B是A在業(yè)務(wù)層的代表”。希望讀者體察,并推薦更好的譯法。原書(shū)中所有模式、重構(gòu)手法、策略的名稱(chēng)以斜體標(biāo)出,要點(diǎn)以黑體標(biāo)出。中譯本一仍其舊。原書(shū)經(jīng)多人、多版修訂完成,難免有錯(cuò)漏、亂排之處。譯者根據(jù)本書(shū)官方網(wǎng)站的最新勘誤表訂正,并結(jié)合參照本書(shū)第1版《CoreJ2EEPatterns:BestPracticesandDesignStrategies》(AddisonWesley,2001),另外修正了數(shù)十處錯(cuò)誤。

作者簡(jiǎn)介

  Deepak Alur是Sun Java中心的企業(yè)Java架構(gòu)師,具有14年以上的開(kāi)發(fā)經(jīng)驗(yàn)。他的主要研究興趣在于利用面向?qū)ο蠹夹g(shù)、模式、Java和J2EE技術(shù)完成大型企業(yè)應(yīng)用的架構(gòu)、設(shè)計(jì)和實(shí)現(xiàn)。 John Crupi是Sun Java中心的杰出工程師和首度Java架構(gòu),他有17年以上的分布式對(duì)象開(kāi)發(fā)經(jīng)驗(yàn),他的主要研究興趣在于創(chuàng)建可重用的、可擴(kuò)展的J2EE架構(gòu),以及進(jìn)一步提升J2EE模式的水準(zhǔn)。 Dan Malks是Sun Java中心的主任工程師。他有16年以上的開(kāi)發(fā)經(jīng)驗(yàn),他的主要研究興趣在于面向?qū)ο蠹夹g(shù)以及這種技術(shù)在企業(yè)級(jí)的、基于Web Service的項(xiàng)目中的應(yīng)用。他發(fā)表過(guò)很多作品,其中既有在行業(yè)雜志上發(fā)表的論文,也有討論Jave、J2EE技術(shù)及模式的專(zhuān)著。

圖書(shū)目錄

第一部分  模式和J2EE
第1章  導(dǎo)論      
什么是J2EE        
什么是模式        
歷史回顧        
模式的定義        
模式的分類(lèi)        
J2EE模式目錄        
演化過(guò)程        
怎樣使用J2EE模式目錄        
使用模式的益處        
模式、框架和重用        
小結(jié)        
第2章  表現(xiàn)層設(shè)計(jì)考慮和不佳實(shí)踐      
表現(xiàn)層設(shè)計(jì)考慮      
會(huì)話(huà)管理      
控制客戶(hù)端訪問(wèn)        
驗(yàn)證        
助手類(lèi)屬性—完整性和一致性        
表現(xiàn)層不佳實(shí)踐        
多個(gè)視圖中都包括控制代碼      
把表現(xiàn)層的數(shù)據(jù)結(jié)構(gòu)暴露給業(yè)務(wù)層      
把表現(xiàn)層數(shù)據(jù)結(jié)構(gòu)暴露給業(yè)務(wù)領(lǐng)域?qū)ο?nbsp;     
允許重復(fù)提交表單      
把敏感資源暴露給客戶(hù)端的直接訪問(wèn)      
假定 <jsp:setProperty> 會(huì)重置Bean屬性      
創(chuàng)建出“胖控制器”      
把視圖助手當(dāng)成scriplet使用      
第3章  業(yè)務(wù)層設(shè)計(jì)考慮和不佳實(shí)踐      
業(yè)務(wù)層設(shè)計(jì)考慮      
使用session bean      
使用entity bean        
緩存EJB的遠(yuǎn)程引用和句柄      
業(yè)務(wù)層和集成層不佳實(shí)踐      
把對(duì)象模型直接映射為entity bean模型      
把關(guān)系型模型直接映射為entity bean模型      
把每個(gè)用例映射為一個(gè)session bean      
通過(guò)Getter/Setter方法暴露EJB的所有屬性        
在客戶(hù)端中包括服務(wù)尋址代碼      
把entity bean當(dāng)成只讀對(duì)象使用      
把entity bean當(dāng)成細(xì)粒度對(duì)象使用      
存儲(chǔ)entity-bean的整個(gè)從屬對(duì)象拓?fù)浣Y(jié)構(gòu)      
把EJB相關(guān)的異常暴露給非EJB客戶(hù)端      
使用entity bean finder方法返回大型結(jié)果集      
客戶(hù)端負(fù)責(zé)聚合來(lái)自業(yè)務(wù)組件的數(shù)據(jù)      
把EJB用于長(zhǎng)時(shí)間持續(xù)的事務(wù)      
每次調(diào)用無(wú)狀態(tài)session bean都要重建對(duì)話(huà)狀態(tài)      
第4章  J2EE重構(gòu)      
表現(xiàn)層的重構(gòu)        
引入控制器      
引入同步器令牌      
隔離不同邏輯      
對(duì)業(yè)務(wù)層隱藏表現(xiàn)細(xì)節(jié)      
去除視圖中的轉(zhuǎn)換        
對(duì)客戶(hù)端隱藏資源      
業(yè)務(wù)層和集成層的重構(gòu)        
用session bean包裝entity bean        
引入業(yè)務(wù)代表        
合并session bean        
減少entity bean之間的通信        
將業(yè)務(wù)邏輯移至session bean        
一般的重構(gòu)        
分離數(shù)據(jù)訪問(wèn)代碼        
按層重構(gòu)系統(tǒng)架構(gòu)      
使用連接池        
第二部分  J2EE模式目錄
第5章  J2EE模式概覽      
什么是模式        
發(fā)現(xiàn)模式      
模式 vs. 策略      
分層思路      
J2EE模式      
表現(xiàn)層模式        
業(yè)務(wù)層模式      
集成層模式      
J2EE模式目錄指南      
術(shù)語(yǔ)        
UML的使用      
模式模板      
J2EE模式關(guān)系        
與現(xiàn)有其他模式的關(guān)系      
模式路線圖      
小結(jié)      
第6章  表現(xiàn)層模式      
攔截過(guò)濾器      
問(wèn)題        
約束        
解決方案        
效果        
相關(guān)模式    
前端控制器        
問(wèn)題        
約束        
解決方案        
效果        
相關(guān)模式        
Context對(duì)象      
問(wèn)題      
約束        
解決方案        
效果      
相關(guān)模式        
應(yīng)用控制器        
問(wèn)題        
約束        
解決方案      
效果        
相關(guān)模式        
視圖助手      
問(wèn)題        
約束        
解決方案        
效果        
相關(guān)模式        
復(fù)合視圖        
問(wèn)題      
約束      
解決方案        
效果        
示例代碼        
相關(guān)模式        
服務(wù)到工作者        
問(wèn)題        
約束        
解決方案      
效果        
示例代碼        
相關(guān)模式      
分配器視圖        
問(wèn)題        
約束        
解決方案        
效果        
示例代碼        
相關(guān)模式        
第7章  業(yè)務(wù)層模式      
業(yè)務(wù)代表        
問(wèn)題        
約束        
解決方案        
效果        
示例代碼        
相關(guān)模式        
服務(wù)定位器        
問(wèn)題        
約束        
解決方案        
效果        
示例代碼        
相關(guān)模式        
會(huì)話(huà)門(mén)面        
問(wèn)題        
約束      
解決方案        
效果        
示例代碼      
相關(guān)模式        
應(yīng)用服務(wù)        
問(wèn)題        
約束        
解決方案        
效果        
示例代碼        
相關(guān)模式        
業(yè)務(wù)對(duì)象        
問(wèn)題        
約束      
解決方案        
效果        
示例代碼        
相關(guān)模式        
復(fù)合實(shí)體        
問(wèn)題        
約束        
解決方案        
效果        
示例代碼        
相關(guān)模式        
傳輸對(duì)象        
問(wèn)題        
約束      
解決方案        
效果        
示例代碼        
相關(guān)模式        
傳輸對(duì)象組裝器        
問(wèn)題        
約束        
解決方案        
效果        
示例代碼        
相關(guān)模式        
值列表處理器        
問(wèn)題        
約束        
解決方案        
效果        
示例代碼        
相關(guān)模式        
第8章  集成層模式        
數(shù)據(jù)訪問(wèn)對(duì)象        
問(wèn)題        
約束        
解決方案        
效果        
相關(guān)模式        
服務(wù)激活器        
問(wèn)題        
約束        
解決方案      
效果        
相關(guān)模式        
業(yè)務(wù)領(lǐng)域存儲(chǔ)        
問(wèn)題        
約束        
解決方案        
效果        
相關(guān)模式        
Web Service中轉(zhuǎn)        
問(wèn)題        
約束        
解決方案      
效果        
相關(guān)模式        
尾聲        
Web Worker微架構(gòu)縱覽        
工作流簡(jiǎn)介        
Web Worker微架構(gòu)        
問(wèn)題      
約束      
解決方案        
效果        
參考書(shū)目        
Apache軟件授權(quán)協(xié)議,1.1版        
索引        

本目錄推薦

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