Effective Enterprise Java中文版

Effective Enterprise Java中文版
作 者: 纽华德 陈吴鹏
出版社: 机械工业出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: Java
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  TedNeward是一名软件架构师、顾问、作家和演讲家,他为诸如IntuitandPacificBell和UCDavis这样的公司做咨询工作。他还著有《Server-BasedJavaProgramming》,同时也是《C≠inaNutshell》和《SSCLlEssentials》的作者之一。Ted曾经是JSR175专家组的成员。他近来经常在世界各地巡回演讲,并继续致力于Java以及.NET技术的开发和教授相关课程。

内容简介

构建高效的Java企业级系统是项困难的工作。本书详细介绍企业级计算技术中的常见问题,并描述使用企业级Java平台技术处理这些问题的方法。本书以若干条建议、指南的形式,言简意赅地介绍了J2EE开发中的微妙之处。无论你是否是Java开发人员,本书都将为你开发高效的企业系统提供诸多帮助。如果你想构建更好的Java企业应用,并使之运行起来更加高效,本书就是最佳选择。本书通俗易懂地解释了J2EE开发的微妙之处。你将学会:■使用进程内或本地存储以避开网络,请参阅第44项■考虑使用较低的隔离级别以获得更大的事务吞吐量,请参阅第35项■为了开放集成而考虑使用Web服务,请参阅第22项■仔细考虑你的查找,请参阅第16项■预生成内容以最小化处理过程,请参阅第55项■使用基于角色的授权,请参阅第63项■面对故障时要健壮,请参阅第7项■为版本并存使用独立的JRE,请参阅第69项TedNeward向读者提供了75项易于理解的技巧,它们可以帮助你在系统和架构层次上驾驭J2EE开发。他对J2EE开发的优势、弊端的全景式看法将解决你最迫切关心的问题,使你学会:如何设计企业系统使其适应未来的需求;在无损于代码正确性的前提下提高代码的效率;如何实现语言或平台无法直接支持的复杂功能。在阅读本书之后,你将了解如何设计和实现更好的、更具可扩展性的、企业级Java软件系统。

图书目录

第1章 简介 1

J2EE的目标 2

中间件和J2EE 3

J2EE实现 7

企业计算的十大谬误 9

第2章 架构 13

第1项:优先采用构件作为开发、部署和重用的核心元素 13

第2项:跨越构件边界优先采用松耦合 17

第3项:区分逻辑层和物理层 20

第4项:数据和处理程序要尽可能靠近 23

第5项:牢记标识引起的竞争 26

第6项:使用“挂钩点”来注入优化、定制或新功能 30

第7项:面对故障时要健壮 35

第8项:定义性能和可扩展性目标 38

第9项:只在事务性处理中使用EJB 41

第10项:先测量性能,再进行优化 43

第11项:认清“提供商中立”的成本 47

第12项:内置监控功能 50

第13项:内置管理支持 55

第14项:部署要尽可能简单 60

第3章 通信 63

第15项:理解你所做的通信选择 63

第16项:仔细考虑你的查找 67

第17项:识别网络访问的代价 71

第18项:优选上下文完整的通信风格 76

第19项:优选数据驱动的通信而不是行为驱动的通信 82

第20项:避免为远程服务请求去等待响应 87

第21项:考虑构件的划分以避免任何一台机器负载过重 90

第22项:为了开放集成而考虑使用Web服务 94

第23项:大批量地传送数据 96

第24项:考虑定制你自己的通信代理 100

第4章 处理 103

第25项:保持简洁 104

第26项:优先采用规则引擎去处理复杂状态的评估和执行 106

第27项:优先为隐含的非原子性错误场景采用事务性处理 110

第28项:区分用户事务和系统事务 114

第29项:最小化锁窗口 117

第30项:当持有锁时不要让步给在构件之外的控制 123

第31项:理解EJB的事务关联 128

第32项:优先使用本地事务而不是分布式事务 130

第33项:为了更好的可扩展性而考虑使用乐观的并发机制 132

第34项:为了显式的并发控制而考虑使用悲观的并发机制 137

第35项:考虑使用较低的隔离级别以获得更大的事务吞吐量 140

第36项:面临回滚时使用保存点来保留部分工作 143

第37项:当有可能避免锁定区域时就复制数据源 145

第38项:偏爱不可变的,因为它不需要任何锁 147

第5章 状态管理 151

第39项:节省地使用 HttpSession 152

第40项:使用对象优先的持久化来保存你的领域模型 155

第41项:使用关系优先的持久化来显示关系模型的威力 158

第42项:使用过程优先的持久化来创建一个封装层 165

第43项:识别对象-层次结构阻抗失配 167

第44项:使用进程内或本地存储以避开网络 174

第45项:不要假设拥有数据或数据库 177

第46项:惰性加载不频繁使用的数据 179

第47项:积极加载频繁使用的数据 182

第48项:批处理SQL的工作以避免往返访问 183

第49项:了解你的JDBC供应商 186

第50项:调整你的SQL语句 189

第6章 表示 193

第51项:考虑富客户端UI技术 194

第52项:使HTML短小精悍 200

第53项:表示与处理相分离 202

第54项:内容与样式相分离 207

第55项:预生成内容以最小化处理过程 209

第56项:尽早验证,尽量验证 211

第7章 安全 219

第57项:安全是一个过程,而不是产品 221

第58项:记住安全不仅仅是预防 224

第59项:建立威胁模型 225

第60项:做不安全假设 227

第61项:总是验证用户的输入 231

第62项:打开平台安全机制 238

第63项:使用基于角色的授权 240

第64项:使用SignedObject以保证序列化对象的完整性 247

第65项:使用SealedObject以保证可序列化对象的机密性 250

第66项:使用GuardedObject以保证对象的存取控制 252

第8章 系统 257

第67项:主动释放资源 257

第68项:调整JVM 262

第69项:为版本并存使用独立的JRE 268

第70项:识别类加载器的边界 272

第71项:理解Java的对象序列化 278

第72项:不要对抗垃圾收集器 283

第73项:优选容器管理的资源管理 290

第74项:使用Reference对象来扩展垃圾收集行为 293

第75项:不要担心在服务器上的JNI代码 304

参考资料 307