架構之道:軟體構建的設計方法

架構之道:軟體構建的設計方法

《架構之道:軟體構建的設計方法》是2021年機械工業出版社引進出版,作者是Juval Lowy。

基本介紹

  • 中文名:架構之道:軟體構建的設計方法
  • 作者:Juval Lowy
  • 類別:計算機
  • 原作品:Righting Software:A Method for System and Project Design
  • 譯者朱少民、張元、丁慧 、周倩嫣 、金澤鋒
  • 出版社:機械工業出版社
  • 出版時間:2021年8月16日
  • 頁數:328 頁
  • 定價:199 元
  • 開本:16 開
  • 裝幀:平裝
  • ISBN:9787111687702
內容簡介,圖書目錄,作者簡介,

內容簡介

本書展示了著名架構師Juval Lowy豐富的軟體設計方法。原作名: Righting Software:A Method for System and Project Design,中文版《架構之道:軟體構建的設計方法》由機械工業出版社出版。
本書展示了著名架構師Juval Lowy在世界各地實踐和教授的經過檢驗的、結構化和高度工程化的軟體設計方法。儘管各種各樣的公司已經成功地在數百個系統中實現了他最初的設計思想,但這些見解未在已出版的技術圖書中。
Lowy的方法論基於軟體工程的基本原理以及一整套匹配的工具和技術,將系統設計和項目設計結合起來。
首先,他描述了許多軟體架構師失敗的主要領域,並展示了如何基於易變性將系統分解成更小的構建塊或服務。
接下來,他展示了如何在系統設計中進行有效的項目設計,如何準確計算項目持續時間、成本和風險,以及如何設計多個執行選項。
無論你的項目和公司規模、技術、平台或行業如何,本書中的方法和原則都適用。作者通過展示如何設計正確的軟體系統和項目來指導讀者應對當今軟體開發的關鍵挑戰,軟體專業人士、架構師、項目負責人或經理在職業生涯的各階段都將從本書中受益。
【本書的組織結構】
本書展示了系統設計和項目設計的結構化工程方法。本書的結構反映了方法論的兩個部分:系統設計(通常稱為架構)和項目設計。這兩部分相輔相成,是成功的必要條件。附錄提供了一些補充內容。
在大多數技術書籍中,每一章只針對一個主題並深入探討,這樣更容易編寫,但這通常不是人們學習的方式。相比之下,在這本書中,講解是螺旋式的。本書的兩大部分中的每一章都重申了前幾章的觀點,通過多方面的洞察來進行更深入的研究或觀點的演進。這模仿了自然的學習過程,每一章都依賴於前面的章節,所以你應該按順序閱讀這些章節。本書的兩大部分均包含了詳細的案例研究,以展示這些觀點以及其他方面。同時,為了保持疊代的簡潔性,作為一般規則,我通常避免內容重複,因此即使是關鍵知識點,也只討論一次。

圖書目錄

第1章 元設計方法 / 1
1.1 什麼是元設計方法 / 2
1.1.1 設計驗證 / 3
1.1.2 緊迫的時間 / 3
1.1.3 消除分析癱瘓 / 4
1.1.4 溝通 / 5
1.2 元設計方法不是什麼 / 6
|第一部分| 系統設計
第2章 分解 / 8
2.1 避免功能分解 / 9
2.1.1 功能分解帶來的問題 / 9
2.1.2 關於功能分解的思考 / 13
2.1.3 避免領域分解 / 15
2.1.4 錯誤的動機 / 17
2.1.5 可測試性和設計 / 17
2.1.6 示例:功能型交易系統 / 19
2.2 基於易變性的分解 / 21
2.2.1 分解、維護和開發 / 22
2.2.2 普遍性原則 / 23
2.2.3 基於易變性的分解與測試 / 24
2.2.4 易變性的挑戰 / 24
2.3 識別易變性 / 26
2.3.1 易變性與可變性 / 26
2.3.2 易變軸 / 27
2.3.3 偽裝成需求的解決方案 / 29
2.3.4 易變列表 / 30
2.3.5 示例:基於易變性的交易系統 / 30
2.3.6 抵制“塞壬之歌” / 34
2.3.7 易變性與業務 / 35
2.3.8 為競爭對手設計 / 37
2.3.9 易變性和壽命 / 38
2.3.10 實踐的重要性 / 38
第3章 結構 / 40
3.1 用例和需求 / 41
3.2 分層方法 / 43
3.3 典型分層 / 44
3.3.1 客戶端層 / 44
3.3.2 業務邏輯層 / 45
3.3.3 資源訪問層 / 46
3.3.4 資源層 / 47
3.3.5 實用工具庫欄 / 48
3.4 分類指南 / 48
3.4.1 命名的玄機 / 48
3.4.2 四個問題 / 49
3.4.3 管理器與引擎比 / 50
3.4.4 關鍵觀察 / 51
3.5 子系統和服務 / 52
3.5.1 增量構造 / 52
3.5.2 關於微服務 / 54
3.6 開放和封閉式架構 / 56
3.6.1 開放式架構 / 56
3.6.2 封閉式架構 / 56
3.6.3 半封閉/半開放架構 / 57
3.6.4 放寬規則 / 57
3.6.5 設計禁忌 / 59
3.6.6 力求對稱 / 61
第4章 組合 / 62
4.1 需求與變更 / 62
4.1.1 憎恨變更 / 63
4.1.2 設計基本準則 / 63
4.2 可組合設計 / 64
4.2.1 核心用例 / 64
4.2.2 架構師的使命 / 65
4.3 這裡沒有功能 / 68
4.4 處理變更 / 69
第5章 系統設計示例 / 71
5.1 系統概述 / 72
5.1.1 遺留系統 / 73
5.1.2 新系統 / 74
5.1.3 公司 / 74
5.1.4 用例 / 74
5.2 反設計工作 / 80
5.2.1 巨型系統 / 80
5.2.2 顆粒化構建塊 / 80
5.2.3 域分解 / 81
5.3 業務對齊 / 82
5.3.1 願景 / 82
5.3.2 業務目標 / 83
5.3.3 使命陳述 / 84
5.4 架構 / 84
5.4.1 TradeMe辭彙表 / 84
5.4.2 TradeMe易變區域 / 85
5.4.3 靜態架構 / 88
5.4.4 操作概念 / 90
5.4.5 工作流管理器 / 92
5.5 設計驗證 / 93
5.5.1 添加技工/承包商用例 / 94
5.5.2 請求技工用例 / 95
5.5.3 匹配技工用例 / 96
5.5.4 分配技工用例 / 98
5.5.5 終止技工用例 / 100
5.5.6 支付技工用例 / 101
5.5.7 創建項目用例 / 101
5.5.8 結束項目用例 / 102
5.6 接下來會是什麼 / 103
|第二部分| 項目設計
第6章 動機 / 106
6.1 項目設計的背景和基本動機 / 106
6.1.1 項目設計和項目穩健 / 107
6.1.2 組裝說明 / 108
6.2 軟體項目的需求層級 / 108
第7章 項目設計綜述 / 111
7.1 定義成功 / 111
7.2 項目初始人員配備 / 113
7.2.1 一個架構師,非一群架構師 / 113
7.2.2 核心團隊 / 114
7.3 明智的決定 / 116
7.3.1 計畫,不計畫 / 116
7.3.2 軟體開發計畫評審 / 117
7.4 服務和開發人員 / 117
7.4.1 設計和團隊效率 / 119
7.4.2 任務連續性 / 120
7.5 工作量的估算 / 120
7.5.1 經典錯誤 / 121
7.5.2 估算技術 / 123
7.5.3 總體項目估算 / 124
7.5.4 活動估算 / 126
7.6 關鍵路徑分析 / 127
7.6.1 項目網路圖 / 127
7.6.2 關鍵路徑 / 130
7.6.3 分配資源 / 131
7.7 安排活動 / 134
7.8 項目費用 / 140
7.9 掙值計畫 / 143
7.9.1 經典錯誤 / 144
7.9.2 淺S曲線 / 145
7.10 角色和責任 / 148
第8章 網路和浮動時間 / 149
8.1 網路圖 / 149
8.1.1 節點圖 / 150
8.1.2 箭頭圖 / 150
8.1.3 箭頭圖與節點圖 / 151
8.2 浮動時間 / 152
8.2.1 總浮動時間 / 153
8.2.2 自由浮動時間 / 153
8.2.3 計算浮動時間 / 154
8.2.4 可視化浮動時間 / 155
8.3 基於浮動時間的進度安排 / 157
第9章 時間和成本 / 159
9.1 加速軟體項目 / 159
9.2 進度壓縮 / 162
9.2.1 利用更好的資源 / 162
9.2.2 並行工作 / 162
9.2.3 並行工作和成本 / 164
9.3 時間-成本曲線 / 164
9.3.1 時間-成本曲線上的要點 / 165
9.3.2 離散建模 / 167
9.3.3 避免經典錯誤 / 168
9.3.4 項目可行性 / 168
9.3.5 找到常規方案 / 169
9.4 項目成本要素 / 171
9.4.1 直接成本 / 171
9.4.2 間接成本 / 172
9.4.3 會計與價值 / 172
9.4.4 總成本、直接成本和間接成本 / 172
9.4.5 壓縮和成本要素 / 173
9.4.6 人員配備和成本要素 / 176
9.4.7 固定成本 / 178
9.5 網路壓縮 / 178
第10章 風險 / 181
10.1 選擇選項 / 181
10.2 時間-風險曲線 / 182
10.3 風險建模 / 184
10.3.1 標準化風險 / 185
10.3.2 風險和浮動 / 185
10.3.3 風險和直接成本 / 186
10.3.4 臨界風險 / 186
10.3.5 斐波那契風險 / 188
10.3.6 活動風險 / 189
10.3.7 臨界風險與活動風險 / 191
10.4 壓縮和風險 / 191
10.5 風險緩解 / 192
10.5.1 如何緩解 / 192
10.5.2 緩解目標 / 193
10.6 風險指標 / 194
第11章 實踐中的項目設計 / 196
11.1 使命 / 196
11.1.1 靜態架構 / 197
11.1.2 調用鏈 / 197
11.1.3 活動清單 / 199
11.1.4 網路圖 / 200
11.1.5 計畫假設 / 201
11.2 尋找常規的解決方案 / 203
11.2.1 無限的資源(疊代1) / 203
11.2.2 網路和資源問題 / 204
11.2.3 基礎設施優先(疊代2) / 204
11.2.4 有限的資源 / 205
11.2.5 亞臨界化(疊代7) / 208
11.2.6 選擇常規的解決方案 / 211
11.3 網路壓縮 / 211
11.3.1 使用更好的資源進行壓縮 / 211
11.3.2 引入並行工作 / 213
11.3.3 壓縮疊代結束 / 219
11.3.4 產出分析 / 219
11.4 效率分析 / 221
11.5 時間-成本曲線 / 221
11.5.1 時間-成本相關模型 / 222
11.5.2 死亡區域 / 224
11.6 規劃與風險 / 225
11.6.1 風險緩解 / 226
11.6.2 重建時間-成本曲線 / 228
11.6.3 風險模型化 / 230
11.6.4 風險包含與排除 / 232
11.7 SDP評審 / 232
第12章 高級技巧 / 234
12.1 上帝活動 / 234
12.2 風險交叉點 / 235
12.3 找到緩解目標 / 238
12.4 幾何風險 / 240
12.4.1 幾何臨界風險 / 241
12.4.2 幾何斐波那契風險 / 241
12.4.3 幾何活動風險 / 242
12.4.4 幾何風險行為 / 243
12.5 執行複雜度 / 244
12.5.1 圈複雜度 / 244
12.5.2 項目類型與複雜度 / 245
12.5.3 項目壓縮與複雜度 / 246
12.6 超大型項目 / 247
12.6.1 複雜系統與脆弱性 / 248
12.6.2 網路群 / 250
12.6.3 設計網路群 / 250
12.7 小項目 / 253
12.8 基於層次設計 / 253
12.8.1 基於層次設計的利弊 / 254
12.8.2 層次與構造 / 255
第13章 項目設計示例 / 256
13.1 估算 / 257
13.1.1 單個活動估算 / 257
13.1.2 總體項目估算 / 258
13.2 依賴關係和項目網路 / 259
13.2.1 行為依賴 / 259
13.2.2 非行為依賴 / 259
13.2.3 覆蓋某些依賴 / 260
13.2.4 完整性檢查 / 260
13.3 常規方案 / 261
13.3.1 網路圖 / 261
13.3.2 計畫進度 / 263
13.3.3 計畫的人員配備分布 / 263
13.3.4 成本和效率 / 264
13.3.5 結果總結 / 264
13.4 壓縮方案 / 264
13.4.1 添加啟用活動 / 264
13.4.2 分配資源 / 265
13.4.3 計畫進度 / 266
13.4.4 計畫的人員配備分布 / 266
13.4.5 成本和效率 / 266
13.4.6 結果總結 / 267
13.5 分層設計 / 268
13.5.1 分層設計和風險 / 268
13.5.2 人員配備分布 / 269
13.5.3 結果總結 / 269
13.6 亞臨界方案 / 269
13.6.1 持續時間、計畫進度和風險 / 270
13.6.2 成本和效率 / 270
13.6.3 結果總結 / 270
13.7 比較選項 / 271
13.8 計畫與風險 / 271
13.8.1 風險緩解 / 271
13.8.2 重新計算成本 / 274
13.9 為SDP評審做準備 / 274
第14章 總結 / 276
14.1 項目設計時間 / 276
14.1.1 真實的答案 / 277
14.1.2 邁向未來 / 278
14.2 一般性指導 / 279
14.2.1 架構與估算 / 279
14.2.2 設計立場 / 280
14.2.3 可選性 / 280
14.2.4 壓縮 / 281
14.2.5 計畫與風險 / 283
14.3 項目設計的設計 / 283
14.4 不同的視角 / 285
14.5 交接 / 287
14.5.1 初級交接 / 287
14.5.2 高級交接 / 287
14.5.3 資深開發人員作為初級架構師 / 288
14.6 實踐 / 289
14.7 項目設計的口頭匯報 / 290
14.8 關於質量 / 291
14.8.1 質量控制活動 / 291
14.8.2 質量保證活動 / 292
14.8.3 質量與文化 / 293
|附錄|
附錄A 項目跟蹤 / 296
附錄B 服務契約設計 / 310
附錄C 設計標準 / 323

作者簡介

Juval Lowy,IDesign的創始人,專業的軟體架構師,專門研究系統和項目設計。他幫助過全球多家公司在預算內按時交付高質量的軟體。他被微軟公司認定為世界知名專家和行業領導者之一,參與了有關C#、WCF和相關技術的內部戰略設計審查,並被授予“軟體傳奇”的稱號。在現代軟體開發的主要領域,他出版了幾本暢銷書並發表了多篇文章。他還經常在主要的國際軟體開發會議上進行演講,並在全球進行大師班授課,向成千上萬的專業人員傳授現代軟體架構師所需的技能,同時講授如何扮演積極的設計、流程和技術領導者的角色。

相關詞條

熱門詞條

聯絡我們