當前位置:編程學習大全網 - 源碼下載 - 軟件框架設計的藝術的目錄

軟件框架設計的藝術的目錄

《軟件框架設計的藝術》 第1章 軟件開發的藝術 4

1.1 理性主義,經驗主義以及無緒 4

1.2 軟件的演變過程 6

1.3 大型軟件 8

1.4 漂亮,真理和優雅 9

1.5 更好的無緒 12

第2章 設計api的動力之源 14

2.1 分布式開發 14

2.2 模塊化應用程序 16

2.3 交流互通才是壹切 20

2.4 經驗主義編程方式 22

2.5 開發第壹個版本通常比較容易 24

第3章 評價api好壞的標準 26

3.1 方法和字段簽名 26

3.2 文件及其內容 27

3.3 環境變量和命令行選項 29

3.4 文本信息也是api 30

3.5 協議 32

.3.6 行為 35

3.7 國際化支持和信息國際化 35

3.8 api的廣泛定義 37

3.9 如何檢查api的質量 37

3.9.1 可理解性 37

3.9.2 壹致性 38

3.9.3 可見性 39

3.9.4 簡單的任務應該有簡單的方案 40

3.9.5 保護投資 40

第4章 不斷變化的目標 42

4.1 第壹個版本遠非完美 42

4.2 向後兼容 43

4.2.1 源代碼兼容 43

4.2.2 二進制兼容 44

4.2.3 功能兼容——阿米巴變形蟲效應 50

4.3 面向用例的重要性 52

4.4 api設計評審 55

4.5 壹個api的生命周期 56

4.6 逐步改善 60 第5章 只公開妳要公開的內容 67

5.1 方法優於字段 68

5.2 工廠方法優於構造函數 70

5.3 讓所有內容都不可更改 71

5.4 避免濫用setter方法 72

5.5 盡可能通過友元的方式來公開功能 73

5.6 賦予對象創建者更多權利 77

5.7 避免暴露深層次繼承 82

第6章 面向接口而非實現進行編程 85

6.1 移除方法或者字段 87

6.2 移除或者添加壹個類或者接口 88

6.3 向現有的繼承體系中添加壹個接口或者類 88

6.4 添加方法或者字段 88

6.5 java中接口和類的區別 90

6.6 弱點背後的優點 91

6.7 添加方法的另壹種方案 92

6.8 抽象類有沒有用呢 94

6.9 要為增加參數做好準備 95

6.10 接口vs.類 97

第7章 模塊化架構 98

7.1 模塊化設計的類型 100

7.2 組件定位和交互 103

7.3 編寫擴展點 116

7.4 循環依賴的必要性 117

7.5 滿城盡是lookup 121

7.6 lookup的濫用 126

第8章 設計api時要區分其目標用戶群 129

8.1 c和java語言中如何定義api和spi 129

8.2 api演進不同於spi演進 131

8.3 java.io.writer這個類從jdk 1.4到jdk 5的演進 131

8.4 合理分解api 143

第9章 牢記可測試性 147

9.1 api設計和測試 148

9.2 規範的光環正在褪去 151

9.3 好工具讓api設計更簡單 153

9.4 兼容性測試套件 155

第10章 與其他api協作 158

10.1 謹慎使用第三方api 158

10.2 只暴露抽象內容 162

10.3 強化api的壹致性 164

10.4 代理和組合 168

10.5 避免api的誤用 176

10.6 不要濫用javabeans那種監聽器機制 180

第11章 api具體運行時的壹些內容 184

11.1 不要冒險 186

11.2 可靠性與無緒 189

11.3 同步和死鎖 191

11.3.1 描述線程模型 192

11.3.2 java monitors中的陷阱 193

11.3.3 觸發死鎖的條件 196

11.3.4 測試死鎖 201

11.3.5 對條件競爭進行測試 204

11.3.6 分析隨機故障 206

11.3.7 日誌的高級用途 208

11.3.8 使用日誌記錄程序控制流程 210

11.4 循環調用的問題 215

11.5 內存管理 218

第12章 聲明式編程 223

12.1 讓對象不可變 225

12.2 不可變的行為 229

12.3 文檔兼容性 230 第13章 極端的意見有害無益 236

13.1 api必須是漂亮的 237

13.2 api必須是正確的 237

13.3 api應該盡量簡單 240

13.4 api必須是高性能的 242

13.5 api必須絕對兼容 242

13.6 api必須是對稱的 245

第14章 api設計中的矛盾之處 247

14.1 api設計中的自相矛盾 248

14.2 背後隱藏的工作 251

14.3 不要害怕發布壹個穩定的api 252

14.4 降低維護費用 255

第15章 改進api 258

15.1 讓有問題的類庫重新煥發活力 259

15.2 自覺地升級與無意識地被迫升級 265

15.3 可選的行為 268

15.4 相似api的橋接和***存 274

第16章 團隊協作 286

16.1 在提交代碼時進行代碼評審 286

16.2 說服開發人員為他們的api提供文檔 290

16.3 盡職盡責的監控者 292

16.4 接受api的補丁 297

第17章 利用競賽遊戲來提升api設計技巧 300

17.1 概述 300

17.2 第壹天 301

17.2.1 非public類帶來的問題 304

17.2.2 不可變性帶來的問題 304

17.2.3 遺漏實現的問題 308

17.2.4 返回結果可能不正確的問題 309

17.2.5 第壹天的解決方案 310

17.3 第二天 313

17.3.1 我想修正犯下的錯誤 316

17.3.2 第二天的解決方案 317

17.4 第三天:評判日 320

17.5 也來玩下這個遊戲吧 327

第18章 可擴展visitor模式的案例 328

18.1 抽象類 331

18.2 為改進做好準備 333

18.3 默認的遍歷 334

18.4 清楚地定義每個版本 337

18.5 單向改進 339

18.6 使用接口時的數據結構 340

18.7 針對用戶和開發商的visitor模式 341

18.8 三重調度 343

18.9 visitor模式的圓滿結局 345

18.10 語法小技巧 346

第19章 消亡的過程 348

19.1 明確版本的重要性 349

19.2 模塊依賴的重要性 349

19.3 被移除的部分需要永久保留嗎 352

19.4 分解龐大的api 352

第20章 未來 356

20.1 原則性內容 357

20.2 無緒長存 358

20.3 api設計方法論 360

20.4 編程語言的演變 361

20.5 教育的作用 363

20.6 ***享 365

參考書目 366

  • 上一篇:論壇全站誘惑源代碼
  • 下一篇:什麽是GPA?英國留學GPA多高才算有競爭力呢?
  • copyright 2024編程學習大全網