- 定价:¥59.80
- 校园优惠价:¥53.82 (90折) (马上了解)
- 评分:
(已有114条评价)
- 促销活动:
- 此商品暂时缺货(可留下联系方式,到货将第一时间通知您)
基本信息
- 原书名:Expert One-on-One J2EE Development without EJB
- 原出版社: Wrox
编辑推荐
J2EE领域/Web开发中的里程碑之作!
2005年十大电脑好书之一!
2005年连续三个月荣登互动网销售第一名!
内容简介
计算机书籍
这本书拥有一大堆“看点”。譬如说,它的作者Rod Johnson拥有10年编写Java程序的经验,目前是Servlet和JDO 2.0两个JSR专家组的成员;再譬如说,书中着力介绍的Spring、Hibernate、WebWork等都是时下流行的开源框架,IoC、AOP之类都是时下流行的概念词汇。而最大的看点就赫然摆在这本书的封面上:“without EJB”。我们曾经在无数的书籍和文章中看到,EJB是J2EE的核心技术之一;而Rod Johnson的这本书竟然宣称,绝大多数的J2EE应用根本不需要EJB。这种近乎挑衅的姿态令任何一个负责的J2EE架构师很难不萌生一探究竟的念头--不论你是打算赞同他还是打算驳斥他。
但所有这些尽皆不是本书最大的价值所在。选择一种架构、一种技术的依据是什么?Rod Johnson认为,应该是基于实践的证据、来自历史项目或亲自试验的经验,而不是任何形式的偶像崇拜或者门户之见。书中谈到了企业应用方方面面的问题和解决办法,而这些方案无一不是这种“循证方法”的产物。除了把这些方案交给读者,Rod Johnson通过这本书希望传达的、更为重要的信息正是“循证”的工作方式——那原本就应该是程序员的工作方式。
作译者
Rod在悉尼大学(University of Sydney)获得了音乐和计算机科学的学位。在回到软件开发领域之前,他还获得了音乐学的博士学位。他有相当深厚的C/C++技术背景,并且从Java和J2EE发布之初就已经开始使用它们。他积极地参与到Java社群过程(JCP)之中,是JSR-154(Servlet 2.4)和JDO 2.0规范专家组的成员。自2000年以来,他参与写作了好几本J2EE方面的书籍,畅销书Expert One-on-One J2EE Design and Development(Wrox,2002年)便是出自他的笔下。
Rod在开源社群颇有声名:他是Spring框架开源项目(www.springframework.org)的作者之一,这个框架是从Expert One-on-One J2EE Design and Development书中的代码发展而成的。他经常在业界最高层次的大会上发表演讲。目前他住在伦敦。
可以通过这个邮件地址联系到Rod.expert@interface21.com。下面是Rod的话:
我首先要感谢我的妻子Kerry,为她永不间断的爱和支持。然后我要感谢那些给了我们实际支持的人,感谢Gary Watson、Andrew Smith和Jason Carreira详尽地审阅了全部手稿,感谢Alef Arendsen的审阅和极有价值的性能评测,感谢Peterden Haan审阅了几个章节,感谢Renaud Pawlak严格审阅了与AOP相关的内容,感谢Steve Jefferson、Thomas Risberg和Dmitriy Kopylenko的审阅。
我还要感谢所有与我分享——不管是当面还是通过e-mail——J2EE开发经验的开发者和架构师。
和往常一样,与Juergen一同工作总是一件乐事。
Juergen Hoeller是werk3AT公司的资深系统架构师和顾问,这家公司在奥地利提供复杂的web解决方案和针对J2EE的咨询顾问。
Juergen在林茨大学(University of Linz)获得了计算机科学的硕士学位,专长是Java、OO建模和软件工程。他曾经在各种J2EE应用服务器上开发了数不胜数的项目,从企业应用集成到基于web的数据呈现无所不包。Juergen在J2EE web应用、O/R映射和事务管理方面的经验尤其深厚。
Juergen是Spring框架项目的领导者之一,并且经常活跃在很多社群论坛上,自然也包括TheServerSide网站。Juergen说:
首先,我要感谢我的妻子Eva,她给了我无穷的爱和支持,并且宽容了我的忙碌。
我还要感谢werk3AT公司的同事,尤其是Wemer Loibl,他尊重我做的所有事,而且对Spring框架和本书做出了巨大的贡献。
衷心感谢Thomas Risberg和Alef Arendsen细致审阅本书并提供《艮有价值的反馈。感谢所有参与讨论、帮助我们厘清思路的开发者,不论他们是否站在Spring这一边。
不管开发Spring还是写作这本书,与Rod一道工作都是特别令人愉快的事。
目录
聚光灯下的EJB
J2EE还剩什么?
站在十字路口的J2EE
前行的路
主旋律
轻量级框架和容器
我们还应该使用EJB吗?
小结
第2章 目标
生产率
问题
传统J2EE方案解决生产率问题的办法
提升生产率更好的办法
OO
业务需求的重要性
经验过程的重要性
小结
第3章 各种架构
架构性构件
译者序
作为译者,我可不毫不费力地帮这本书找出一大堆“看点”。譬如说,它的作者Rod Johnson 拥有10编写Java程序的经验——那正是JAVA诞生至今的时间,他目前是Servlet 和JDO2.0两个JSR专家组的成员,他的前一本书《Expert One-on-One J2EE Design and Development (Programmer to Programmer)》曾经风靡一时;再譬如说,书中着力介绍的Spring、Hibernate、WebWork 等都是时下流行的概念词汇。而最大的看点就赫然摆在这本书的封面上:”without EJB”。我们曾经在无数的书籍和文章中看到,EJB是J2EE的核心技术之一;而Rod Johnson 的这本书竟然宣称,绝大多数的J2EE应用根本不需要EJB。这种近乎挑衅的姿态令任何一个负责的J2EE架构师很难不萌生一探窨的念头——无论你是打赞同他还是打算驳斥他。
然而在我看来,所有这些都有其价值,但皆不是本书最大的价值所在。任何一个从事J2EE应用开发的程序员或多或少都曾有过这样的感觉:这个世界充斥着形形色色的概念和“大词”,如同一个幽深广袤的魔法森林般令人晕头转向,不知道追随这位导师还是信奉那个门派。这时Rod Johnson发出振聋发聩的一呼:尔等不必向泥胎偶像顶礼膜拜,圣灵正在尔等自身——这就是他在书中一直倡导的“循证架构”(evidence-base architecture)。选择一种架构、一种技术的依据是什么?Rod Johnson认为,应该是基于实践的证据、来自历史项目或亲自试验的经验,而不是任何形式的偶像崇拜或者门户之见。书中谈到了企业应用方方面面的问题和解决办法,而这些方案无一不是这是种:循证方法的产物。除了把这些方案交给读者,Rod Johnson通过这本书希望传达的、更为重要的信息正是“循证”的工作方式——那原来就应该是程序的工作方式。
所以,在这篇译序里,我可以负责任地告诉你:那看上去有些骇人听闻的without EJB字样仅仅是Rod Johnson用来吸引你的一个噱头而已——EJB诞生至今已经有7年之久,如果今天的J2EE应用仍旧不能摆脱这样一种“古老”的技术。岂不为天下笑?这里的关键是:EJB正是Java世界里最大的“泥胎偶像”,围绕着它的门派之争历来激烈无比。透过“without EJB”这个标题,Rod Johnson真正想说的是“without buzzword”——扔掉一切可笑的门户偏见,不再仅仅因为看到“EJB”这么一个貌似神秘的缩写词而奉若圭臬或是弃若敝屣,完全根据技术本身和实打实的经验来判断是否使用、如何使用一种技术,这才是Rod Johnson希望传递给读者的态度。
于是你可以想念我在开头处说的那句话并非夸大其词:你手上的这本《Expert One-on-One J2EE Development without EJB》将会引领一种影响深远的潮流。但这潮流不是Spring和Hibernate,也不是IoC和AOP,甚至不是“轻量级架构”,而是一切实事求是的“循证架构”的工作方式。惟有掌握这种工作方式,你才能够真正自信满满地挺起胸膛说:“我选择的架构是适合应用需求的架构。”毕竟,衡量架构师价值的标准不应该是他知道多少概念,而是他能否做出合乎需求的架构。
“可是,”有人说“我一直都是按照别人/网上/书上的建议来做架构的。要亲自考察各种各样的技术,还要根据项目情况比较它们的优劣,我可没这份时间。”
那么,他也应该没有时间去做架构。
这本《Expert One-on-One J2EE Development without EJB》涵盖了J2EE应用架构的方方面面,以其内容之丰、跨度之大,要翻译它已经超出了笔者的能力范畴。幸而得到其他7位专家鼎力相助,方能顺利完成翻译工作。读者若是能从书中有所收获,全赖7位专家对技术准确到位的理解和阐述。除翻译之处,笔者还负责全书的文字修润,如果读者感觉本书读来诘屈聱牙,责任全在我一人身上。
由于本书是众人集体劳动的结晶,参与翻译工作的诸人又都是通过网络彼此结识,是以深感网上技术社群的重要性。本书给译者带来的所有收将全部捐献给身患生病的程序员王俊,希望他能够早日康复。
最后,祝您阅读愉快。
前言
J2EE的“正统”使得人们在很多简单的问题上投入了大量的精力。说实话,J2EE行业的情况常常会让人感到:这些人坚信世界上根本就没有简单的问题。
很多——也许是绝大多数——J2EE应用程序都遭遇了过度工程,并因此拥有一个毫无必要的、复杂的体系结构。过度工程会带来巨大的开销,而J2EE开发者们往往一厢情愿地认为:复杂的体系结构能够极大地降低未来的成本,足以抵消前期增加的成本。可惜,这样的因果关系在软件工程领域通常是痴人说梦。预先设计的复杂度越高,就意味着有越多的代码需要编写和维护,意味着系统中潜伏着越多的bug,意味着需要越多的时间才能向用户展示系统的功能。说到底,预先设计的复杂度越高,失败的机会就越大,成本开销也越高。
J2EE的过度工程多半与EJB有关。正如我在Expert One-on-One J2EE Design and Development中曾经说过的,EJB常常被误用。这是一个严重的问题,因为EJB有可能带来巨大的复杂度——甚至比它所掩盖起来的复杂度还要大。而且,EJB提供的一些服务也被过高地估计了。譬如说,大凡有经验的开发者和架构师,只要用实体EJB访问过关系型数据,几乎没有谁愿意重复这个痛苦的经历——至少,如果有JDO、Hibernate和其他的透明持久化技术可供选择的话。
从2002年末开始,对EJB的批评逐渐成了家常便饭。对于一种并不完美的技术,挑毛病总是很容易的,而找出合适的替代品就不那么容易了。大多数J2EE应用程序并不能从EJB那里得到更多的利益,本书便为这些项目的开发者指出了一条更好的新路。本书并不是纯粹的理论探讨,而是对于“如何在有限的时间和预算范围内设计、实现高性能J2EE应用程序”的实践指南。我们推荐的体系结构来自大量的经验,而且有众多开源解决方案能够满足其中常见的基础设施需求,我们还根据这个体系结构创建了一个极具现实意义的示例应用,这些都足以证明它的价值。
尽管EJB已经暴露出很多问题,但它仍然被大量采用,原因无外两种:“流行”和“恐惧”。EJB一度非常流行,就连不懂技术的管理者们也多少听说过它的大名,关于J2EE体系结构的书籍也很少提到EJB的替代品——尽管确实有一些出类拔萃的替代品存在。而且,人们还害怕这些替代品会使情况变得更糟。譬如一种常见的论调说:如果没有EJB容器的帮助,开发者们就得亲手解决诸如事务管理之类复杂的问题。本书将让读者看到:这些恐惧大多是毫无根据的。在每一处潜藏着复杂问题的地方,读者都将看到:EJB的替代品们以更为精彩的方式解决了这些问题。
本书所介绍的架构方案是J2EE体系结构朝着更简单、更理性的方向迈出的第一步,它适于与敏捷方法结合使用。我们的方案采用了面向方面的程序设计(Aspect Oriented Programming,AOP)等新近发展的技术,并且从.NET等与J2EE竞争的平台借鉴了很多有益的思想。
作为本书的作者,我希望能够帮助读者搭建能够满足需求的、尽可能简单的应用程序——自然,也应该是最便宜、最具可维护性和可测试性的应用程序。
令人惊讶地,“EJB之优劣”在J2EE社群中已经成了一个感情问题。在这个问题上,J2EE社群呈现出一种彻底的两极分化:要么是除非被逼无奈、否则决不使用EJB;要么是认为大凡怀疑EJB的人都是懒惰无知的异教徒,几乎没有任何中间派。
读者大概都知道,我不是EJB的支持者,但我也曾经用EJB开发过很多应用程序。我对于EJB的任何观点,都源于丰富的个人经验和对EJB规范的深入了解。在本书中,我也努力澄清自己在这个问题上的立场:我的目标是帮助读者开发出色的应用程序,而不是对抗EJB。读完本书之后,你应该有能力评估EJB在每个应用程序中的价值。如果在充分了解EJB及其替代品之后,你仍然坚信EJB能够最好地满足你的需求,就使用EJB吧。本书不会黑白分明地对读者说“不要使用EJB”,但你必须清楚了解自己的选择。
本书为谁而作
本书的目标读者是对技术有充分把握、希望更加有效地使用技术的J2EE架构师和开发者。本书的内容是企业应用开发中的“why”和“how”,而不仅仅是“what”。所以,在这里你看不到API的列举,也看不到对J2EE基础服务(例如JNDI和JTA)的介绍——有很多书和文章已经介绍了这些主题。
对于web应用的开发者来说,本书中的内容尤其有用。不过,即便不是开发web应用,绝大多数J2EE开发者仍然能够从中找到一些有价值的东西。也许读完本书以后,你会断定EJB正是适合你的选择,即便如此,按照本书所提出的标准,你也能够清楚地知道自己为
什么使用EJB、EJB究竟为你提供了哪些价值。
本书的目标
本书的目标是要帮助读者解决实际问题。我们希望借本书向读者展示一种——与Sun公司的蓝图应用所展示的、基于EJB来管理业务逻辑的传统J2EE方案相比——更为简单有效的J2EE开发之道。
当然,我们也希望能给读者带来更多的快乐。
本书有哪些内容
本书涵盖了下列内容:
□ EJB存在的问题和J2EE架构的常识;
序言
熊节
几年以后,当人们重新审视这本《Expert One-on-One J2EE Development without EJB》时,他们会记起这本书曾经如何引领J2EE架构与开发的潮流。
作为译者,我可不毫不费力地帮这本书找出一大堆“看点”。譬如说,它的作者Rod Johnson 拥有10编写Java程序的经验——那正是JAVA诞生至今的时间,他目前是Servlet 和JDO2.0两个JSR专家组的成员,他的前一本书《Expert One-on-One J2EE Design and Development (Programmer to Programmer)》曾经风靡一时;再譬如说,书中着力介绍的Spring、Hibernate、WebWork 等都是时下流行的概念词汇。而最大的看点就赫然摆在这本书的封面上:”without EJB”。我们曾经在无数的书籍和文章中看到,EJB是J2EE的核心技术之一;而Rod Johnson 的这本书竟然宣称,绝大多数的J2EE应用根本不需要EJB。这种近乎挑衅的姿态令任何一个负责的J2EE架构师很难不萌生一探窨的念头——无论你是打赞同他还是打算驳斥他。
然而在我看来,所有这些都有其价值,但皆不是本书最大的价值所在。任何一个从事J2EE应用开发的程序员或多或少都曾有过这样的感觉:这个世界充斥着形形色色的概念和“大词”,如同一个幽深广袤的魔法森林般令人晕头转向,不知道追随这位导师还是信奉那个门派。这时Rod Johnson发出振聋发聩的一呼:尔等不必向泥胎偶像顶礼膜拜,圣灵正在尔等自身——这就是他在书中一直倡导的“循证架构”(evidence-base architecture)。选择一种架构、一种技术的依据是什么?Rod Johnson认为,应该是基于实践的证据、来自历史项目或亲自试验的经验,而不是任何形式的偶像崇拜或者门户之见。书中谈到了企业应用方方面面的问题和解决办法,而这些方案无一不是这是种:循证方法的产物。除了把这些方案交给读者,Rod Johnson通过这本书希望传达的、更为重要的信息正是“循证”的工作方式——那原来就应该是程序的工作方式。
所以,在这篇译序里,我可以负责任地告诉你:那看上去有些骇人听闻的without EJB 字样仅仅是Rod Johnson用来吸引你的一个噱头而已——EJB诞生至今已经有7年之久,如果今天的J2EE应用仍旧不能摆脱这样一种“古老”的技术。岂不为天下笑?这里的关键是:EJB正是Java世界里最大的“泥胎偶像”,围绕着它的门派之争历来激烈无比。透过“without EJB”这个标题,Rod Johnson真正想说的是“without buzzword”——扔掉一切可笑的门户偏见,不再仅仅因为看到“EJB”这么一个貌似神秘的缩写词而奉若圭臬或是弃若敝屣,完全根据技术本身和实打实的经验来判断是否使用、如何使用一种技术,这才是Rod Johnson希望传递给读者的态度。
于是你可以想念我在开头处说的那句话并非夸大其词:你手上的这本《Expert One-on-One J2EE Development without EJB》将会引领一种影响深远的潮流。但这潮流不是Spring和Hibernate,也不是IoC和AOP,甚至不是“轻量级架构”,而是一切实事求是的“循证架构”的工作方式。惟有掌握这种工作方式,你才能够真正自信满满地挺起胸膛说:“我选择的架构是适合应用需求的架构。”毕竟,衡量架构师价值的标准不应该是他知道多少概念,而是他能否做出合乎需求的架构。
“可是,”有人说“我一直都是按照别人/网上/书上的建议来做架构的。要亲自考察各种各样的技术,还要根据项目情况比较它们的优劣,我可没这份时间。”
那么,他也应该没有时间去做架构。(本文选自即将出版的《Expert One-on-One J2EE Development without EJB中文版》一书译者序,并有所删改。)——摘自中华读书报