《Bitter Java中文版》是2006年機械工業出版社出版的圖書,作者Bruce A.Tate。
基本介紹
- 中文名:Bitter Java
- 原出版社:Manning Publications
- 作者:美)Bruce A.Tate
- 譯者:蘇金國 等
基本信息,內容簡介,目錄,
基本信息
原書名: 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 反模式參照表
參考文獻...