企業應用架構模式(典藏版) Patterns of Enterprise Application Architecture

Martin Fowler 譯者 王懷民//周斌

相關主題

商品描述

本書是系統總結企業級軟體架構方法、想法和模式的著作,被譽為「軟體架構領域最重要的10本書之一」。
原書翻譯為葡萄牙語、波蘭語、德語、俄語、韓語、日語、
簡體中文等多種語言,暢銷不衰,並曾獲得美國《軟體開發》雜誌頒發的「Jolt生產效率獎」。
第一部分(第1~8章)介紹企業應用架構領域需要掌握的關鍵知識和可能遇到的問題,並給出了這些問題的初步解決方案;
第二部分(第9~18章)在對這些解決方案進行細化的同時,總結出了51種實用的軟體架構模式,
每個模式都詳細給出了使用場景、解決方案、UML表示等。
這些模式從不同層次、不同側面展示了什麼是好的企業應用架構,以及如何設計好的企業應用架構,
不管企業應用開發的技術和平台如何變化,這些模式始終能在企業應用架構中發揮重要的作用,是不可或缺的內功心法。

目錄大綱

目  錄Contents
譯者序
前言
模式列表
引言 1
0.1 架構 1
0.2 企業應用 2
0.3 企業應用的種類 4
0.4 關於性能的考量 5
0.5 模式 7
0.5.1 模式的結構 8
0.5.2 模式的限制 9
第一部 表  述
第1章 分層 12
1.1 企業應用中層次的演變 13
1.2 三個基本層次 14
1.3 為各層選擇運行環境 16
第2章 組織領域邏輯 18
2.1 抉擇 21
2.2 服務層 22
第3章 映射到關聯式資料庫 24
3.1 架構模式 24
3.2 行為問題 28
3.3 讀取資料 29
3.4 結構映射模式 30
3.4.1 關係的映射 30
3.4.2 繼承 32
3.5 建立映射 34
3.6 使用元資料 35
3.7 資料庫連線 36
3.8 其他問題 38
3.9 進一步閱讀 38
第4章 Web表示層 39
4.1 視圖模式 41
4.2 輸入控制器模式 43
4.3 進一步閱讀 44
第5章 並發 45
5.1 併發問題 46
5.2 執行語境 47
5.3 隔離與不變性 48
5.4 樂觀並發控制與悲觀並發控制 48
5.4.1 避免不一致讀 49
5.4.2 死鎖 50
5.5 事務 51
5.5.1 ACID 52
5.5.2 事務資源 52
5.5.3 減少事務隔離以提高彈性 53
5.5.4 業務事務及系統事務 54
5.6 離線並發控制的模式 55
5.7 應用伺服器並發 56
5.8 進一步閱讀 57
第6章 會話狀態 58
6.1 無狀態的價值 58
6.2 會話狀態 59
6.3 儲存會話狀態的方法 60
第7章 分佈策略 63
7.1 分佈對象的誘惑 63
7.2 遠端介面與本機介面 64
7.3 必須使用分佈的情況 65
7.4 關於分佈邊界 66
7.5 分佈接口 67
第8章 通盤考慮 68
8.1 從領域層開始 69
8.2 深入到資料來源層 70
8.2.1 事務腳本的資料來源 70
8.2.2 表模組的資料來源 70
8.2.3 領域模型的資料來源 70
8.3 表示層 71
8.4 一些關於具體技術的建議 72
8.4.1 Java和J2EE 72
8.4.2 .NET 73
8.4.3 預存程序 73
8.4.4 Web Services 74
8.5 其他分層方式 74
第二部 模  式
第9章 領域邏輯模式 78
9.1 事務腳本 78
9.1.1 運作機制 78
9.1.2 使用時機 79
9.1.3 收入確認問題 80
9.1.4 例:收入確認(Java) 81
9.2 領域模型 83
9.2.1 運作機制 84
9.2.2 使用時機 86
9.2.3 進一步閱讀 86
9.2.4 例:收入確認(Java) 86
9.3 表模組 90
9.3.1 運作機制 91
9.3.2 使用時機 93
9.3.3 例:基於表模組的收入
確認(C#) 93
9.4 服務層 96
9.4.1 運作機制 97
9.4.2 使用時機 99
9.4.3 進一步閱讀 100
9.4.4 例:收入確認(Java) 100
第10章 資料來源架構模式 103
10.1 表資料入口 103
10.1.1 運作機制 103
10.1.2 使用時機 104
10.1.3 進一步閱讀 105
10.1.4 例:人員入口(C#) 105
10.1.5 例:使用ADO.NET
資料集(C#) 107
10.2 行資料入口 109
10.2.1 運作機制 110
10.2.2 使用時機 110
10.2.3 例:人員記錄(Java) 111
10.2.4 例:領域物件的數據
保持器(Java) 114
10.3 活動記錄 115
10.3.1 運作機制 115
10.3.2 使用時機 116
10.3.3 例:一個簡單的Person類
(Java) 116
10.4 資料映射器 118
10.4.1 運作機制 119
10.4.2 使用時機 122
10.4.3 例:一個簡單的數據
映射器(Java) 123
10.4.4 例:分離查找器(Java) 127
10.4.5 例:建立一個空對象
(Java) 130
第11章 對象-關係行為模式 132
11.1 工作單元 132
11.1.1 運作機制 132
11.1.2 使用時機 136
11.1.3 例:使用物件註冊的工作
單元(Java) 137
11.2 標識映射 140
11.2.1 運作機制 141
11.2.2 使用時機 143
11.2.3 例:標識映射中的方法
(Java) 143
11.3 延遲加載 144
11.3.1 運作機制 144
11.3.2 使用時機 146
11.3.3 例:延遲初始化(Java) 146
11.3.4 例:虛代理(Java) 147
11.3.5 例:使用值保持器(Java) 148
11.3.6 例:使用重影(C#) 149
第12章 對象-關係結構模式 156
12.1 標識字段 156
12.1.1 工作機制 156
12.1.2 使用時機 159
12.1.3 進一步閱讀 160
12.1.4 例:整數鍵(C#) 160
12.1.5 例:使用鍵表(Java) 161
12.1.6 例:使用組合鍵(Java) 163
12.2 外鍵映射 172
12.2.1 運作機制 173
12.2.2 使用時機 175
12.2.3 例:單值引用(Java) 176
12.2.4 例:多表格查詢(Java) 178
12.2.5 例:引用集合(C#) 179
12.3 關聯表映射 182
12.3.1 運作機制 182
12.3.2 使用時機 183
12.3.3 例:僱員與技能(C#) 183
12.3.4 例:使用直接的SQL
(Java) 186
12.3.5 例:用一次查詢查多個
僱員(Java) 189
12.4 依賴映射 193
12.4.1 運作機制 193
12.4.2 使用時機 194
12.4.3 例:唱片和曲目(Java) 195
12.5 嵌入值 197
12.5.1 運作機制 198
12.5.2 使用時機 198
12.5.3 進一步閱讀 199
12.5.4 例:簡單值物件(Java) 199
12.6 序列化LOB 200
1