这本书拥有一大堆“看点”。譬如说,它的作者Rod Johnson拥有10年编写Java程序的经验,目前是Servlet和JDO 2.0两个JSR专家组的成员;再譬如说,书中着力介绍的Spring、Hibernate、WebWork等都是时下流行的开源框架,IoC、AOP之类都是时下流行的概念词汇。而最大的看点就赫然摆在这本书的封面上:“without EJB”。我们曾经在无数的书籍和文章中看到,EJB是J2EE的核心技术之一;而Rod Johnson的这本书竟然宣称,绝大多数的J2EE应用根本不需要EJB。这种近乎挑衅的姿态令任何一个负责的J2EE架构师很难不萌生一探究竟的念头——不论你是打算赞同他还是打算驳斥他。\r\n 但所有这些尽皆不是本书最大的价值所在。选择一种架构、一种技术的依据是什么?Rod Johnson认为,应该是基于实践的证据、来自历史项目或亲自试验的经验,而不是任何形式的偶像崇拜或者门户之见。书中谈到了企业应用方方面面的问题和解决办法,而这些方案无一不是这种“循证方法”的产物。除了把这些方案交给读者,Rod Johnson通过这本书希望传达的、更为重要的信息正是“循证”的工作方式——那原本就应该是程序员的工作方式。
关于作者\r\n前言\r\n第1章 为什么要“J2EE Without EJB”\r\n 聚光灯下的EJB\r\n EJB Under the Spotlight\r\n J2EE还剩什么?\r\n 站在十字路口的J2EE\r\n 前行的路\r\n 主旋律\r\n 轻量级框架和容器\r\n 我们还应该使用EJB吗?\r\n 小结\r\n第2章 目标\r\n 生产率\r\n 问题\r\n 传统J2EE方案解决生产率问题的办法\r\n 提升生产率更好的办法\r\n OO \r\n 业务需求的重要性\r\n 经验过程的重要性\r\n 小结\r\n第3章 各种架构\r\n 架构性构件 \r\n 业务服务层\r\n 向外部暴露业务对象\r\n 数据访问层,或EIS层 40 \r\n J2EE架构 \r\n 两种EJB架构\r\n 两种非EJB架构\r\n J2EE架构实例\r\n “经典的”J2EE远程EJB架构\r\n 本地EJB架构\r\n 特制的非EJB架构\r\n “轻量级容器架构”:示例应用系统\r\n 确定是否采用应用服务器\r\n 小结\r\n第4章 简单性的红利\r\n 复杂性的代价\r\n 在J2EE应用系统中,导致复杂性产生的原因\r\n 导致复杂性的架构性原因 66 \r\n 导致复杂性的文化性原因:一个依靠复杂性为生的产业\r\n 复杂到什么地步就是过度了? \r\n 简单还是幼稚?\r\n 刚刚够好就行吗?\r\n 变化的趋势\r\n 总结\r\n第5章 EJB,五年间\r\n 炒作和经验\r\n EJB和J2EE行业\r\n 实践中的EJB\r\n 一个过时的组件模型\r\n An Aging Component Model \r\n Java语言的进步\r\n .NET的挑战\r\n Web Service \r\n 敏捷方法学的兴起\r\n 关于EJB目标的混淆\r\n 从未出现的组件市场 \r\n 方兴未艾的新范式:AOP \r\n EJB, 我们真正需要什么?为什么无状态Session Bean如此流行?\r\n 声明性事务管理 \r\n 远程调用 \r\n 集群\r\n 线程管理 \r\n EJB实例池\r\n 资源池\r\n 安全\r\n ……\r\n第6章 轻量级容器与控制反转\r\n第7章 Spring框架简介\r\n第8章 基于AOP概念的声明性中间件\r\n第9章 事务管理\r\n第10章 持久化\r\n第11章 远程调用\r\n第12章 替换其它的EJB服务\r\n第13章 Web层设计\r\n第14章 单元测试与可测试性\r\n第15章 性能与可伸缩性\r\n第16章 示例应用系统\r\n第17章 结语\r\n索引
几年以后,当人们重新审视这本《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中文版》一书译者序,并有所删改。)——摘自中华读书报