這本書(shū)擁有一大堆“看點(diǎn)”。譬如說(shuō),它的作者Rod Johnson擁有10年編寫(xiě)Java程序的經(jīng)驗(yàn),目前是Servlet和JDO 2.0兩個(gè)JSR專(zhuān)家組的成員;再譬如說(shuō),書(shū)中著力介紹的Spring、Hibernate、WebWord等都是時(shí)下流行的開(kāi)源框架,IoC、AOP之類(lèi)都是時(shí)下流行的概念詞匯。而最大的看點(diǎn)就赫然擺在這本書(shū)的封面上:“without EJB”。我們?cè)?jīng)在無(wú)數(shù)的書(shū)籍和文章中看到,EJB是J2EE的核心技術(shù)之一;而Rod Johnson的這本書(shū)竟然宣稱(chēng),絕大多數(shù)的J2EE應(yīng)用根本不需要EJB。這種近乎挑釁的姿態(tài)令任何一個(gè)負(fù)責(zé)的J2EE架構(gòu)師很難不萌生一探究竟的念頭——不論你是打算贊同他還是打算駁斥他。 但所有這些盡皆不是本書(shū)最大的價(jià)值所在。選擇一種架構(gòu)、一種技術(shù)的依據(jù)是什么?Rod Johnson認(rèn)為,應(yīng)該是基于實(shí)踐的證報(bào)、來(lái)自歷史項(xiàng)目或親自試驗(yàn)的經(jīng)驗(yàn),而不是任何形式的偶像崇拜或者門(mén)戶(hù)之見(jiàn)。書(shū)中談到了企業(yè)應(yīng)用方方面面的問(wèn)題和解決辦法,而這些方案無(wú)一不是這種“循證方法”的產(chǎn)物。除了把這些方案交給讀者,Rod Johnson通過(guò)這本書(shū)希望傳達(dá)的、更為重要的信息正是“循證”的工作方式——那原本就是應(yīng)該是程序員的工作方式。下面摘錄一篇評(píng)論文章:重溫經(jīng)典——J2EE without EJB 一年了,但每次我看到這本書(shū)仍然會(huì)有一種心情澎湃的感覺(jué)。這是我一年里第三次看這本書(shū),而且這次我看到的是它的中文版。我很少看中文版的書(shū),但這次我居然在看完了兩遍這本書(shū)的英文版后又買(mǎi)了本中文版的書(shū)。因?yàn)檫@本書(shū)對(duì)我太重要了,它對(duì)我的影響力甚至比Design pattern帶給我的沖擊還又大,它帶我的不僅僅是技術(shù)上的提高,還有整個(gè)思想觀(guān)念和思維方式的變化。也因?yàn)檫@本書(shū)的中文版在JavaEye上也叫囂了好久了,也因?yàn)檫@本書(shū)的幾個(gè)譯者都是值得我尊敬的人。我對(duì)potian的尊敬有時(shí)甚至達(dá)到了崇拜的地步,而robbin、dlee、gigix、moxie、曹等幾位也都是江湖上也都是出名的一流高手。乍一看這本書(shū)的名字,Expert one on one J2EE development without EJB并沒(méi)有給人帶來(lái)太沖擊。畢竟關(guān)于J2EE的書(shū)太多了,而without EJB看上去有點(diǎn)象是故意挑釁EJB的感覺(jué)。一本J2EE的書(shū)怎么可能會(huì)給人帶來(lái)信念或思維的沖擊呢?但是它做到了,它不僅使自己變成了不朽的經(jīng)典,也使Rod Johnson成為了我最近一年的新偶像。這本書(shū)的前五章是讓人宕氣回腸的五章,每次看這幾章的內(nèi)容都會(huì)感覺(jué)非常過(guò)癮。因?yàn)樗粌H向整個(gè)EJB的架構(gòu)和傳統(tǒng)觀(guān)念發(fā)起了沖擊,而且它的每一條分析都是如何的有理有據(jù),如此的讓人信服。Rod Johnson是一個(gè)實(shí)用主義者,他不是全盤(pán)否定了EJB的價(jià)值,而是從實(shí)用的角度出發(fā),對(duì)EJB的方方面面的功能進(jìn)行了深入分析,并說(shuō)明了EJB的優(yōu)點(diǎn)和缺點(diǎn)。分布式對(duì)象、多線(xiàn)程模型、SFLB、傳統(tǒng)的分布式架構(gòu),一個(gè)個(gè)的EJB的神話(huà)被揭穿了。如果說(shuō)Rod Johnson的前一本書(shū)是對(duì)EJB的方方面面零星地提出了懷疑和批判,那么這本書(shū)則對(duì)上一本書(shū)的思想得到了升華,將這些思想進(jìn)行了匯總,并以深入的方式表達(dá)出來(lái)。我們中的大多數(shù)人生活在人云亦云的世界里,或者象Ted Neward說(shuō)的那樣,我們就象足球比賽里的足球被人踢來(lái)踢去。EJB,IOC、AOP,groovy ruby python那樣的動(dòng)態(tài)語(yǔ)言、AJAX、ruby on rail,一樣一樣的新技術(shù)在往外冒,于是我們隨著潮流被這個(gè)技術(shù)踢向了另一個(gè)技術(shù)。我并不是追隨新技術(shù)有什么不好,但是假如我們學(xué)會(huì)象Rod Johnson的那種懷疑權(quán)威,那種從實(shí)用的角度對(duì)技術(shù)進(jìn)行深入分析的思考,我們的世界可能會(huì)就不一樣了(當(dāng)然我們要想不想被人踢來(lái)踢去,我們必須要有深厚的技術(shù)功底,而不是人云我否的那樣別人贊,我們就罵)。這也就是我讀這本書(shū)的最大收獲,以前我學(xué)struts、EJB或者更早的其它技術(shù)時(shí),我從來(lái)沒(méi)有懷疑過(guò)它們的設(shè)計(jì)有沒(méi)有問(wèn)題,有沒(méi)有更佳的解決方案,而是象小學(xué)生背書(shū)一樣將這些東西全盤(pán)接收。但是現(xiàn)在我每學(xué)一種新技術(shù),都會(huì)從不同的角度分析它的優(yōu)劣和思想,這樣的思考方式對(duì)我們的開(kāi)發(fā)生涯也許會(huì)有巨大的影響。當(dāng)然這本書(shū)的另一個(gè)亮點(diǎn)是它對(duì)各種技術(shù)、開(kāi)源架構(gòu)進(jìn)行了詳盡的對(duì)比分析。市面上沒(méi)有其他(也許是我孤陋寡聞)任何一本書(shū)會(huì)將如此多的技術(shù)進(jìn)行如此深入分析,并進(jìn)行的對(duì)比,說(shuō)明各自的優(yōu)缺點(diǎn)各使用場(chǎng)合。以前只能在某些人的blog或TheServerSide上零零星星地發(fā)現(xiàn)一些個(gè)別的內(nèi)容。而這本書(shū)則將J2EE的各個(gè)層面的技術(shù)都進(jìn)行了深入全面地分析,IOC(Spring, Pico, Hivemind)、AOP架構(gòu)(AspectJ, AspectWerkz, JBoss AOP, Spring),Web層的MVC架構(gòu)(Struts, Spring, Webwork)和其它類(lèi)型的解決方案(Tapestry, JSF, ASP.Net),持久層架構(gòu)(iBatis,Spring DAO, hibernate JDO)與歷史,遠(yuǎn)程連接等等。Rod Johnson的技術(shù)功底在此體現(xiàn)無(wú)遺,他對(duì)J2EE的各種技術(shù)的理解都達(dá)到如此多的深度確實(shí)令人佩服。有人認(rèn)為這本書(shū)給Spring做托,我對(duì)此只能表示無(wú)奈。確實(shí)這本倡導(dǎo)輕量級(jí)容器,倡導(dǎo)用AOP來(lái)替換EJB的一些服務(wù),倡導(dǎo)用JDBC框架簡(jiǎn)化數(shù)據(jù)訪(fǎng)問(wèn),但是這些都是從實(shí)用的角度考慮的,因?yàn)镾pring確實(shí)給我們帶來(lái)了方便,讓我們開(kāi)發(fā)的程序更有效率更健壯。再說(shuō)有誰(shuí)不喜歡把自己創(chuàng)造的產(chǎn)品象孩子一樣愛(ài)護(hù)的?難道Gavin King不喜歡hibernate,難道robbin不喜歡他一手創(chuàng)辦的論壇?這是個(gè)人的成就感,正是這種成就感推動(dòng)著他們將他們的產(chǎn)品做得更出色。最后說(shuō)說(shuō)這本書(shū)的中文版,其實(shí)我不太喜歡看中文版的書(shū),我更喜歡Rod Johnson那種嚴(yán)謹(jǐn)又井井有條的文筆,雖然這樣的文筆算不上優(yōu)美,但是卻讓人有一種那肅然起敬的感覺(jué),讓人感覺(jué)到真正的英國(guó)紳士(雖然他是澳大利亞人,呵呵。而且他說(shuō)話(huà)或在bbs上留言都會(huì)有文縐縐的感覺(jué))。但是中文版看起來(lái)確實(shí)比英文版的快,而且這本書(shū)讀起來(lái)確實(shí)很流暢。畢竟每一位譯者都是技術(shù)高手,再加上gigix的文筆潤(rùn)色,雖然有些小錯(cuò)誤,但無(wú)論如何它的翻譯質(zhì)量絕對(duì)稱(chēng)得上是精品。當(dāng)然我們不能忽略的是Rod Johnson在這本書(shū)之前寫(xiě)的另一本書(shū), Expert one on one J2EE design and development。很多人把它當(dāng)成J2EE without EJB的第一版,他們錯(cuò)了。這本書(shū)的價(jià)值和觀(guān)念的沖擊甚至比J2EE without EJB還要大,因?yàn)樗霭嬖?002年,一個(gè)EJB 2還在流行的年代,因?yàn)樗俪闪薙pring的誕生。還因?yàn)檫@本書(shū)里的好多章節(jié)到了現(xiàn)在仍然有很大的價(jià)值,這是J2EE without EJB無(wú)法替代的,它對(duì)EJB在技術(shù)層面上深入剖析比起J2EE without EJB要細(xì)致好幾倍。其中的第4章更是任何Java開(kāi)發(fā)者必看的經(jīng)典。本文摘自http://blog.itpub.net/xiecc