标题：Bitter Java中文版
基本信息
原书名： Bitter Java  Bitter Java中文版原出版社： Manning Publications
作者： （美）Bruce A.Tate   
译者： 苏金国 等
出版社：机械工业出版社
ISBN：7111183150
上架时间：2006-2-20
出版日期：2006 年2月
开本：16开
页码：240
版次：1-1
内容简介
本书系统地介绍了常见的服务器端java编程错误，以及这些错误产生的原因和解决方案。书中涵盖了基本java和j2ee概念的反模式，如 servlet、jsp、ejb、企业连接模型和可扩展性等，通过代码示例展示了java编程中常见的陷阱，还提供了重构代码，并解释了为什么新方案是安全的。本书适合中级水平的java程序员、分析员或架构师阅读，通过研究书中介绍的反模式，可以吸取别人的经验教训，在工作中少走弯路。.
大多数软件项目都遭遇了失败，这是一个公认的事实。要从这些失败中汲取重要的教训，这正是《bitter java》的目的。
只是重用设计模式并不一定能保证成功：模式就像某处危险地形的部分地图。这些模式很有帮助，但是不能防止你迷失。本书会教读者怎么发现自己迷路了，以及如何回到正道上来。本书通过代码示例展示了java编程中常见的陷阱；还提供了重构代码，并解释了为什么新方案是安全的。..
本书系统地记录了常见的服务器端java编程错误，以及这些错误产生的原因和解决方案。书中涵盖了基本java和j2ee概念的反模式，如 servlet、jsp、ejb、企业连接模型和可扩展性。如果你是一个中级水平的java程序员、分析人员或架构师，急切地希望避免他人遭遇的痛苦经历，那本书正是你需要的。
通过研究本书中介绍的一些反模式，如往返通信，神奇servlet、缺少缓存。抖动调优，等等，你就能避免重蹈覆辙，更安全地前进。
目录
序
前言
关于本书.
第一部分  基础知识
第1章  bitter传说
1．1  自由降落的java开发
1．1．1  生活中的反模式
1．2  使用设计模式强调正面
1．2．1  设计模式在线资源
1．2．2  uml为模式提供了语言
1．3  反模式从负面学习
1．3．1  一些著名的反模式
1．3．2  实际中的反模式
1．3．3  反模式资源
1．4  反模式的思想并不是全新的
1．4．1  从业界学到的教训
1．4．2  检测工作
1．4．3  重构反模式
1．5  为什么写这本书
1．5．1  本书方法
.1．5．2  本书工具
1．5．3  本书组织结构
1．5：4  本书读者对象
1．6  前瞻
第2章  状况之苦
2．1  反模式滋生的土壤
2．1．1  分层的好处
2．1．2  分层也会对我们不利
2．2  internet技术
2．2．1  internet拓扑结构会影响我们的应用
2．2．2  企业层可以增加安全，也会加大开销
2．2．3  标准提供了internet支持，同时增加了层
2．2．4  tcp和ip提供底层通信
2．2．5  http提供应用级传输
2．2．6  html和xml
2．2．7  小反模式：web页面上有太多元素
2．3  对象技术和反模式
2．3．1  封装有助于隔离修改
2．3．2  继承支持共同行为的打包
2．3．3  多态支持灵活的重用
2．3．4  小反模式：过度分层
2．3．5  java的舞台
2．4  java技术解决反模式
2．5  瀑布的主要问题
2．5．1  迭代方法
2．5．2  小反模式：不完整的过程转换
2．5．3  编程新视野：极限编程
2．6  状况之苦速览
2．7  本章介绍的反模式
第二部分  服务器端java反模式
第3章  servlet之苦
3．1  孤注一掷
3．1．1  早期的反模式：神奇按钮
3．1．2  利用模型-视图-控制器模式构建
3．1．3  未能分离模型和视图
3．1．4  分出模型
3．2  反模式：神奇servlet
3．2．1  可以使用servlet作为模型吗
3．2．2  落入神奇servlet陷阱
3．2．3  导致神奇servlet的原因
3．3  解决方案：使用命令重构
3．3．1  分出模型
3．3．2  用命令对象包装模型
3．3．3  分离模型逻辑
3．3．4  分离返回视图
3．3．5  使用jsp建立返回视图
3．4  小结
3．5  本章介绍的反模式
第4章  jsp之苦
4．1  还没有结束
4．1．1  找出危险信号
4．2  反模式：整块jsp
4．2．1  这个程序未能做到模型-视图分离
4．2．2  解决方案：重构为模型-视图-控制器
4．3  反模式：复合jsp
4．3．1  该不该结合多个jsp
4．3．2  结合了两个界面的例子
4．3．3  解决方案：分解jsp
4．3．4  在控制器servlet中做判定
4．4  小反模式：过粗和过细的命令
4．4．1  一组中有太多的命令
4．4．2  解决方案：重构为合适的粒度
4．4．3  有关粒度的提示
4．5  小反模式：胖命令
4．6  反模式回顾
4．7  本章介绍的反模式
第5章  缓存管理之苦
5．1  我们需要缓存!
5．2  反模式：缺少缓存
5．2．1  没有缓存的糟糕bbs
5．2．2  构建showboard的模型、视图和控制器
5．2．3  构建showthread的模型、视图和控制器
5．2．4  构建addpost的模型、视图和控制器
5．2．5  性能问题
5．3  解决方案：缓存
5．3．1  解决方案1：使用一个硬件缓存
5．3．2  解决方案2：缓存命令
5．3．3  为bbs增加缓存
5．3．4  对缓存命令的改进
5．4  与缓存有关的小反模式
5．4．1  对静态缓存的并发访问
5．4．2  不断膨胀的缓存
5．5  反模式：同步读／写瓶颈
5．5．1  读者之间的冲突会降低性能
5．5．2  读／写锁允许正确地共享访问
3．6  消除无缓存反模式
5．7  本章介绍的反模式
第6章  内存之苦
6．1  了解内存泄漏和反模式
6．1．1  管理内存
6．1．2  理解垃圾回收
6．1．3  引用计数
6．1．4  可达对象
6．2  c++换java
6．2．1  导致java内存泄漏的情况
6．2．2  找出java的内存泄漏
6．3  反模式：流失监听者泄漏
6．3．1  分析一些危险的做法
6．3．2  解决方案1：显式地删除监听者
6．3．3  解决方案2：缩短锚的生命周期
6．3．4  解决方案3：弱化引用
6．3．5  引用对象可以简化内存管理
6．4  反模式：泄漏集合
6．4．1  由于缓存和会话状态导致的问题
6．4．2  解决方案1：搜索常见的警告信号
6．4．3  解决方案2：让增力口／删除调用匹配
6．4．4  解决方案3：使用软引用完成缓存
6．4．5  解决方案4：使用带弱引用的集合
6．4．6  解决方案5：使用finally
6．5  解决内存泄漏
6．5．1  确信存在泄漏
6．5．2  确定泄漏应当得到修正
6．5．3  隔离问题
6．5．4  确定根源，修正问题
6．5．5  防止将来出现同样的问题
6．6  小反模式：小肥猪
6．6．1  串管理
6．6．2  集合
6．6．3  继承链
6．7  小结..
6．8  本章介绍的反模式
第7章  连接和耦合之苦
7．1  建立连接
7．2  反模式：连接抖动
7．2．1  对每个访问都创建和终止连接
7．2．2  解决方案：利用池来重用连接
7．2．3  重构bbs例子，增加入池连接
7．2．4  使用getpooledconnection
7．2．5  使用j2ee连接器体系结构
7．3  反模式：分离清洁器
7．3．1  异常可能导致分离清洁器
7．3．2  解决方案：在finally中让连接与清理配对
7．4  反模式：捆绑的连接
7．4．1  通信缓冲区
7．4．2  过早绑定
7．4．3  解决方案1：利用xml消息解耦合
7．4．4  解决方案2：利用web服务延迟绑定
7．5  关于xml误用的小反模式
5．1  xml金榔头
7．5．2  xml转换之苦
7．6  小反模式：严格xml
7．6．1  命名冲突
7．6．2  严格构造
7．6．3  限制性的可变内容容器
7．6．4  xml版本问题
7．7  小结：苦连接变甜
7．8  本章介绍的反模式
第8章  bean之苦
8．1  enterprise javabeans简要回顾
8．1．1  基于组件的分布式体系结构
8．1．2  ejb的类型
8．2  利用ejb实现的糟糕bbs
8．2．1  ejb应用中的元素
8．2．2  构建远程接口
8．2．3  创建home接口
8．2．4  实现bean类
8．2．5  定义主键
8．2．6  创建部署描述文件
8．2．7  使用模型
8．3  反模式：往返通信
8．3．1  计算分布式部署的开销
8．3．2  会话太多的接口
8．3．3  解决方案：利用外观组合往返通信
8．3．4  往返通信的根源
8．3．5  利用外观重构bbs
8．4  反模式：张冠李戴
8．4．1  小反模式：bean托管连接
8．4．2  解决方案：视图、映射器、bean托管连接
8．4．3  小反模式：实体bean只是完成一些轻量级的功能
8．4．4  小反模式：实体bean仅用于读
8．4．5  小反模式：实体bean仅用于写而不读
8．4．6  麻烦的可滚动列表
8．4．7  总解决方案：选择合适的bean完成合适的任务
8．5  小反模式：一切都是ejb
8．6  ejb和缓存
8．6．1  利用外观实现缓存
8．7  消除苦bean
8．8  本章介绍的反模式
第三部分  全景 图
第9章  卫生之苦
9．1  为什么要研究编程卫生
9．1．1  极限编程需要好的编程卫生
9．1．2  编码标准可以避免反模式
9．2  小反模式：不可达的代码
9．2．1  名字匹配
9．2．2  命名标准
9．2．3  大括号和缩进
9．2．4  注释
9．2．5  制表符和空格
9．2．6  编辑器
9．3  小反模式：组织和可见性
9．4  小反模式：结构
9．4．1  基本面向对象理论
9．4．2  低级设计因素
9．4．3  异常
9．5  小反模式：泄漏和性能
9．6  测试的约定
9．7  建立一个好的风格指南
9．7．1  是买、是借还是偷?
9．7．2  contextual公司的一个示例风格指南
9．8  编码标准小结
第10章    展性之苦
10．1  保证性能的好拓扑
10．1．1  同构组中的硬件分层
10．1．2  其他拓扑变种
10．2  反模式：事后再考虑性能
10．2．1  开发时不做性能规划
10．2．2  一些真实世界的例子
10．2．3  解决方案：做性能规划!
10．3  反模式：往返通信
10．3．1  解决方案：缓存和外观
10．4  反模式：不好的负载管理
10．4．1  解决方案：工作负载管理
10．4．2  真正的负载平衡
10．5  反模式：混乱的会话管理
10．5．1  解决方案1：利用会话亲缘性分派
10．5．2  解决方案2：使用一个分布式状态管理服务
10．5．3  使用定制会话bean解决方案
10．5．4  使用定制实体bean解决方案
10．6  反模式：抖动调优
10．6．1  解决方案：使用合理的性能改进方法
10．7  驯服性能野兽
10．8  本章介绍的反模式
笫11章  圆满的告别
11．1  反模式可以在很多层次上提供帮助
11．1．1  反模式促进职业发展
11．1．2  了解反模式可以改善程序
11．1．3  了解反模式可以使你成为一个更好的程序员
11．2  在过程中集成反模式
11．3  更上一层楼
附录a  反模式参照表
参考文献...