穿越时间的蛀洞——书评《Java企业设计模式》

原创 2003年12月19日 19:23:00

穿越时间的蛀洞

熊节
(本文首发于《中华读书报》2003年12月17日号)

CSDN_Dev_Image_2003-12-181955191.GIF

CSDN_Dev_Image_2003-12-181955193.jpg


  对瓦尔特·本雅明来说,时间不是一以贯之的连续体,而是充满着裂缝和捷径——不妨说是“蛀洞”。过往的幽灵总会挑选一个时刻在当前复活,历史以群星灿烂的格局星罗棋布。为这种神秘的论调提供支持的不仅有史料和呈螺旋状的流行风潮,也包括了各种各样的书籍:两本素昧平生的书,其间的联系或许胜于它们各自书架上的邻居;一位突如其来的异乡人,或许能唤起读者最熟稔的记忆。

  譬如那本《应用服务器原理与实现》(电子工业出版社2003年6月),在两位朋友的推荐之下,我从新华书店一贯混乱的货架上找到了它。显然,它的出版者看中的是日益升温的J2EE热潮,但阅读它却让我更多地想起潘爱民老师1999年推出的《COM原理与应用》。一个足够热门的话题,加上足以令老读者倍感亲切的内容。唯一的遗憾是:这位可敬的作者似乎乐于用这些弥足珍贵的素材写出一本红头文件。使徒保罗对柯林斯人说:“舌头若不说容易明白的话……就是向空中说话了。”也许“向空中说话”正是作者的愿想?

  而这本《Java企业设计模式》(Java Enterprise Design Patterns,电子工业出版社2003年8月)应该算是购买前一本书时的意外收获——新华书店的意外收获,这俨然是一个矛盾修辞了。像一条时光隧道,它连接起的另一端是2001年5月——我痴醉于设计模式的日子。一本新书却成了久别重逢的旧友,勾起了恍若隔世的记忆。不知道有多少人读过Patterns in Java的前两卷(这本《Java企业设计模式》是第三卷),至少在我这里,比起混迹于《Java设计模式》、《模式与Java》……之类书名中无法辨认的中译名,Mark Grand的名字更足以吸引我的目光和购买欲望。

  在J2EE的话语甚嚣尘上的日子里,这本书的语词也如同一位穿越时空的异乡人,散发着脱世孑立的高傲,并因此显得与时代格格不入。例如全书最复杂的“持久层”(Persistence Layer)模式,恐怕读者需要花一点时间才会发现它其实正是“数据访问对象”(Data Access Object,DAO)模式和一些基础设施的结合物;而“会话对象”(Session Object)模式早已是J2EE应用服务器内建的功能。在Mark Grand的眼中,J2EE没有任何特殊地位,《Java企业设计模式》直接深入了Java企业级应用的底层技术(事务、并发、分布式、持久化)。如果把这些底层机制视为应用服务器的领地,那么这本书甚至可以成为理解J2EE应用服务器的地图。

  另一方面,绕开语词的障碍,应用开发者也不难在这里找到自己熟悉的坐标——陌生的语词也许像异乡人口里的格言,异域的风情在突兀之中给你留下深刻的印象,但追根溯源却可能发现这格言竟是从自己的语言中翻译过去的。C. Alexander说,模式是解决常见问题的方案。浸淫企业级开发二十余年的经验,虽然使Mark Grand的语词略显陈旧,却保证了他收录的模式直指企业应用最常见的问题,从而使这本容量有限的模式集具有了最大化的价值。而且,夜深人静时,这种时空的错位反倒给了我一种新奇的阅读体验:虽然书中的“旧”符码在日新月异的技术领域显得有点不合时宜,但符码的所指却是我在J2EE应用中不时遇到的“新”问题。媒介与内容之间强大的张力,让手中的书成为了“最熟悉的陌生人”——Java人爱打趣地说“there's nothing new under the SUN”,在这里真是一语成谶。

  在那本Expert One-to-One J2EE Design and Development里,Rod Johnson有一个精辟的论断:一个优秀的Web应用首先必须是一个优秀的J2EE应用,而一个优秀的J2EE应用首先必须是一个优秀的Java应用。念及此,在J2EE的信息潮涌中拼命挣扎的开发者们大概可以给自己一个理由,暂时忘却那些令人生畏的三字母、四字母缩写词,穿越时间的蛀洞回到那个古雅的时代,用别一种的眼光来看待自己的“J2EE问题”——Mark Grand的Patterns in Java系列,尤其是这本《Java企业设计模式》,应该是一位合格的旅伴。

《把时间当作朋友》 - 书评

我个人的理解,时间管理的核心并不是说,做事效率要有多高,做的事情要多么的多,这些很重要,但都不是核心。时间管理的核心是:如何正确的做事情。方法对了,成效出来是一件自然而然的事情。李笑来的《把时间当作朋...
  • pan_tian
  • pan_tian
  • 2013年07月30日 16:25
  • 3069

穿越计算机的迷雾总结

其实比较郁闷,这本书大一的时候就有看到评论比较好,但是忘了看。再后来,也就是现在,大二下初,在豆瓣上看到了,这次立马买了一本来看,由于实在好奇这本书的内容,也好奇计算机一开始是怎么造出来的(也对继电器...
  • heisetiantang
  • heisetiantang
  • 2016年03月12日 22:10
  • 1364

2015蓝桥杯决赛Java A组 第四题--穿越雷区

//标题:穿越雷区 // //X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废。 //某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负能量特征...
  • e_one
  • e_one
  • 2016年07月04日 13:40
  • 1003

2017网易内推笔试题---星际穿越

航天飞行器是一项复杂而又精密的仪器,飞行器的损耗主要集中在发射和降落的过程,科学家根据实验数据估计,如果在发射过程中,产生了 x 程度的损耗,那么在降落的过程中就会产生 x^2 程度的损耗,如果飞船的...
  • a1103000308
  • a1103000308
  • 2016年08月29日 15:24
  • 476

NAT 原理与NAT穿越

NAT的简介和原理 简介 NAT即Network Address Translation,它可以让那些使用私有地址的内部网络连接到Internet或其它IP网络上.NAT路由在将内部网络的数据...
  • whoamiyang
  • whoamiyang
  • 2016年07月22日 15:46
  • 2115

《暗时间》读书笔记及读后感

花了一个月,读完此书,有一种酣畅淋漓,浑身舒泰的愉悦之感。像是与一位素未蒙面、气味相投的好友心照不宣,互相倾诉。刘未鹏有如此宽广知识面、成熟的心智、深层次思考力、语言表达能力,这是作者广泛的阅读和升入...
  • qq_34006630
  • qq_34006630
  • 2016年05月06日 13:14
  • 879

在switch-case中定义变量时当心被“穿越”

这篇文章的分类是C++,所以特此声明这里提到的规则只适用于C++。对于C语言,是有不同的一套规则的。 先来看看下面这段代码,有问题吗? void RunStateMachine() ...
  • zuiyuezhou888
  • zuiyuezhou888
  • 2015年01月14日 10:26
  • 457

QAV250四轴穿越机安装全程详解(多图)

最近团队准备使用轻型穿越机QAV250做实验,本文记录了QAV250的安装过程,整理了开箱后较合理的安装顺序,以及各个步骤的注意事项,希望对有需要的朋友有所帮助。...
  • iracer
  • iracer
  • 2017年08月02日 23:59
  • 2867

蓝桥杯历届-穿越雷区

蓝桥杯历届-穿越雷区标题:穿越雷区X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废。 某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负能量特...
  • ACM_TH
  • ACM_TH
  • 2016年03月15日 23:23
  • 1723

蓝桥杯 穿越雷区 2015年第六届蓝桥杯JavaB组决赛第四题

标题:穿越雷区 X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废。 某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负能量特征),怎样走...
  • u013993712
  • u013993712
  • 2016年05月16日 17:08
  • 964
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:穿越时间的蛀洞——书评《Java企业设计模式》
举报原因:
原因补充:

(最多只允许输入30个字)