目录 1
序 1
前言 1
致谢 1
第1章 分布与扩展 1
1.1 反模式:本地化数据 3
1.2 反模式:误解数据需求 7
1.3 反模式:误算带宽需求 10
1.4 反模式:超负荷运转的网络中心 14
1.5 反模式:手持利斧乱砍一气的人 20
1.6 重构方案 22
1.6.1 提前规划 23
1.6.2 选择适当的数据体系架构 25
1.6.3 划分数据和工作 28
1.6.4 为将来扩展做出规划(企业规模的面向对象) 31
1.6.5 规划实际的网络需求 33
1.6.6 使用特殊化网络 34
1.6.7 务求谨慎 35
1.6.8 丢掉有问题的硬件 37
第2章 持久存储 39
2.1 反模式:挖掘机 40
2.2 反模式:碾压 46
2.3 反模式:数据观点 49
2.4 反模式:窒息 52
2.5 重构方案 54
2.5.1 轻量级查询 55
2.5.2 版本 59
2.5.3 组件视图 63
2.5.4 打包整理 67
第3章 基于服务的体系架构 70
3.1 反模式:多头服务 71
3.2 反模式:过小服务 75
3.3 反模式:烟囱式服务 78
3.4 反模式:客户完成服务 82
3.5 重构方案 86
3.5.1 接口划分 86
3.5.2 接口合并 89
3.5.3 技术服务层 91
3.5.4 跨层重构 93
第4章 JSP的使用和误用 96
4.1 反模式:忽略事实 97
4.2 反模式:代码太多 101
4.3 反模式:嵌入导航信息 106
4.4 反模式:复制粘贴JSP 108
4.5 反模式:会话中有太多数据 113
4.6 反模式:不加限制地滥用TagLib 118
4.7 重构方案 122
4.7.1 bean化 123
4.7.2 引入业务流警察 126
4.7.3 引入委托控制器 131
4.7.4 引入模板 135
4.7.5 去除会话访问 139
4.7.6 去除模板文本 141
4.7.7 引入错误页面 144
第5章 servlet 147
5.1 反模式:每个servlet中都包含公共功能 148
5.2 反模式:servlet中的模板文本 153
5.3 反模式:字符串用于内容生成 157
5.4 反模式:没有建立连接池 161
5.5 反模式:直接访问实体 165
5.6 重构方案 168
5.6.1 引入过滤器 169
5.6.2 使用JDom 173
5.6.3 使用JSP 177
第6章 实体bean 182
6.1 反模式:脆弱的链接 183
6.2 反模式:DTO爆炸 186
6.3 反模式:表面张力 192
6.4 反模式:粗行为 195
6.5 反模式:职责过当 202
6.6 反模式:幻想 204
6.7 重构方案 207
6.7.1 本地动作 208
6.7.2 别名 212
6.7.3 大批撤离 215
6.7.4 扁平视图 219
6.7.5 强结合 221
6.7.6 双管齐下 227
6.7.7 外观 230
第7章 会话EJB 235
7.1 反模式:到处都是会话 236
7.2 反模式:过度膨胀的会话 240
7.3 反模式:过瘦的会话 244
7.4 反模式:大事务 248
7.5 反模式:透明外观 253
7.6 反模式:数据缓存 255
7.7 重构方案 259
7.7.1 会话外观 259
7.7.2 分解大事务 261
第8章 消息驱动bean 266
8.1 反模式:误解JMS 267
8.2 反模式:目标超载 272
8.3 反模式:过分实现可靠性 277
8.4.1 建构解决方案 282
8.4 重构方案 282
8.4.2 规划网络数据模型 285
8.4.3 充分利用各种形式的EJB 287
第9章 Web服务 290
9.1 反模式:Web服务总能解决问题 292
9.2 反模式:只要有疑问,就做成Web服务 296
9.3 反模式:万能对象Web服务 300
9.4 反模式:细粒度/多交互Web服务 303
9.5 反模式:也许并非RPC 307
9.6 反模式:单模式梦想 312
9.7 反模式:SOAPY业务逻辑 316
9.8 重构方案 319
9.8.1 RPC转向文档型 320
9.8.2 模式适配器 323
9.8.3 Web服务业务委托 327
第10章 J2EE服务 330
10.1 反模式:硬编码的位置标识符 331
10.2 反模式:Web=HTML 334
10.3 反模式:需要本地代码 338
10.4 反模式:过度滥用JNI 342
10.5 反模式:选择了不当的层次 344
10.6 反模式:未充分利用EJB容器 348
10.7 重构方案 350
10.7.1 实现解决方案参数化 351
10.7.2 选择最适用的客户 352
10.7.3 控制JNI的边界 354
10.7.4 充分利用J2EE技术 356
附录A 反模式目录 358
附录B 重构目录 365
附录C 网站上的内容 371
参考文献 372