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