架構師修煉之道 Design It!: From Programmer to Software Architect

Michael Keeling 譯 馬永輝,顧昕

買這商品的人也買了...

商品描述

卓越的軟件架構師從何而來?
所有程序員都有成為架構師的潛力,只要掌握了架構師的思維方式和工作方法,你也能成長為架構師。
《架構師修煉之道》教你像架構師那樣思考問題、理解需求、設計架構、評估結果、編寫文檔。
本書不但通過真實案例講解架構設計流程和經驗,
還總結了豐富的架構師工作原則和技巧,尤其適合廣大程序員進階學習。
同時也有助於產品經理、測試人員、運維人員和其他行業從業者理解軟件架構設計工作。

作者簡介

Michael Keeling
是卡內基梅隆大學知名校友、IBM人工智能係統Watson的軟件架構師,
具有多年軟件架構設計經驗,他負責的項目從作戰系統、搜索引擎到web應用,不一而足。

目錄大綱

部分 軟件架構導論
第1章成為軟件架構師3
1.1  軟件架構師要做什麼4
1.2  什麼是軟件架構7
1.3  成為團隊的架構師11
1.4  開發出色的軟件13
1.5  案例分析:Lionheart項目14
1.6  預告14
 
 
第2章設計思維基礎15
2.1  設計思維的四條原則15
2.2  運用思維模式18
2.3  思考、動手、檢查21
2.4  預告24
 
第二部分 架構設計原理
 
第3章制定設計策略27
3.1  找到夠用的設計27
3.2  決定前期做多少架構設計29
3.3  用風險做嚮導32
3.4  制訂設計計劃36
3.5 Lionheart項目:目前的進展37
3.6  預告38
 
 
第4章換位思考39
4.1  找合適的人交談39
4.2  創建利益相關方關係圖40
4.3  了解業務目標43
4.4 Lionheart項目:目前的進展46
4.5  預告47
 
第5章挖掘關鍵架構需求49
5.1  用約束限制設計選擇50
5.2  定義質量屬性51
5.3  對功能需求分類56
5.4  找出其他影響架構的因素57
5.5  挖掘關鍵架構需求59
5.6  創建ASR工作簿60
5.7 Lionheart項目:目前的進展62
5.8  預告62
 
第6章主動選擇架構63
6.1  發散探索,聚合決策63
6.2  接受約束66
6.3  提升質量屬性67
6.4  為架構元素分配功能72
6.5  設計,應變而生74
6.6 Lionheart項目:目前的進展75
6.7  預告76
 
第7章架構模式77
7.1  什麼是架構模式77
7.2  分層模式78
7.3  端口適配器模式80
7.4  管道過濾器模式81
7.5  面向服務架構模式83
7.6  發布訂閱模式85
7.7  共享數據模式86
7.8  多層模式88
7.9  能力中心模式89
7.10  開源貢獻模式91
7.11  大泥球模式92
7.12  發現新架構模式92
7.13 Lionheart項目:目前的進展93
7.14  預告93
 
第8章建立模型,化繁為簡95
8.1  推演架構96
8.2  設計元模型97
8.3  讓模型融入代碼104
8.4 Lionheart項目:目前的進展108
8.5  預告108
 
第9章召開架構設計研討會109
9.1  籌劃架構設計研討會110
9.2  挑選設計方法115
9.3  挑選參與者116
9.4  會議管理118
9.5  與遠程團隊協作121
9.6 Lionheart項目:目前的進展122
9.7  預告122
第10章展示設計決策123
10.1  用不同的視圖展現架構124
10.2  繪製出色的圖表132
10.3 Lionheart項目:目前的進展138
10.4  預告139
 
第11章描述架構139
11.1  講述完整的故事140
11.2  因地制宜,選擇描述方法141
11.3  尊重受眾145
11.4  圍繞利益相關方關注點組織視圖148
11.5  闡述決策的邏輯依據151
11.6 Lionheart項目:目前的進展152
11.7  預告153
 
第12章架構評估153
12.1  評估得真知154
12.2  檢驗設計154
12.3  舉辦評估研討會160
12.4  儘早評估,反複評估,持續評估164
12.5 Lionheart項目:目前的進展168
12.6  預告168
 
第13章鼓勵團隊參與架構設計169
13.1  提倡架構師思維170
13.2  傳授技能,輔助決策171
13.3  為團隊創造實踐機會172
13.4  設計下放173
13.5  共同設計架構177
13.6 Lionheart項目:大結局178
13.7  預告179
第三部分 架構師的工具箱
第14章理解問題的常用方法183
14.1  方法1 :二選一184
14.2  方法2 :移情圖186
14.3  方法3 :GQM研討會189
14.4  方法4 :利益相關方訪談191
14.5  方法5 :假設清單194
14.6  方法6 :質量屬性網絡195
14.7  方法7 :微型質量屬性研討會197
14.8  方法8 :觀點填空202
14.9  方法9 :響應度量稻草人205
14.10  方法10 :利益相關方關係圖207
 
第15章探索解決方案的常用方法209
15.1  方法11 :架構擬人化210
15.2  方法12 :架構演變記錄212
15.3  方法13 :組件-功能-協作者卡片215
15.4  方法14 :概念圖219
15.5  方法15 :分而治之221
15.6  方法16 :事件風暴225
15.7  方法17 :團隊海報228
15.8  方法18 :循環設計230
15.9  方法19 :白板塗鴉233
 
第16章展示設計的常用方法235
16.1  方法20 :架構決策記錄236
16.2  方法21 :架構主旨239
16.3  方法22 :背景圖241
16.4  方法23 :精選閱讀列表242
16.5  方法24 :啟動計劃書243
16.6  方法25 :模塊化分解圖246
16.7  方法26 :未採納的決策248
16.8  方法27 :製作原型,用於學習或決策250
16.9  方法28 :時序圖251
16.10  方法29 :系統隱喻254
 
 
第17章評估設計方案的常用方法257
17.1  方法30 :架構簡報258
17.2  方法31 :代碼評審260
17.3  方法32 :決策矩陣263
17.4  方法33 :觀察系統表現265
17.5  方法34 :問題-評論-關注事項267
17.6  方法35 :風險風暴269
17.7  方法36 :合理性檢查271
17.8  方法37 :場景排查273
17.9  方法38 :畫草圖做比較277
附錄  貢獻者簡介279
索引281
致謝296