描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787568052702
本书详细讲解架构师的工作思维和工作方法,帮助架构师开展日常架构设计工作,提高工作效率和团队的整体架构设计水平。堪称《程序员修炼之道》姊妹篇。它可以帮助你:* 成为出色的技术领导者; * 在快速迭代的敏捷开发中开展架构设计;* 避免项目波动和返工;* 带领团队共同成长。
卓越的软件架构师从何而来?所有程序员都有成为架构师的潜力,只要掌握了架构师的思维方式和工作方法,你也能成长为架构师。《架构师修炼之道》教你像架构师那样思考问题、理解需求、设计架构、评估结果、编写文档。本书不但通过真实案例讲解架构设计流程和经验,还总结了丰富的架构师工作原则和技巧,尤其适合广大程序员进阶学习。同时也有助于产品经理、测试人员、运维人员和其他行业从业者理解软件架构设计工作。
第一部分 软件架构导论
第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
软件架构是开发优秀软件的基础。虽然出色的架构本身并不足以确保软件成功,但错误的架构几乎注定导致失败。架构非常重要,所有软件开发人员都应该知道如何进行设计。 本书讲解如何设计出色的软件架构。首先声明,本书不是象牙塔里抽象的软件设计课程,也不要指望在书里找到变魔术般解决所有问题的框架或技术。你能学到的是应用基本的设计原则和经验,成长为优秀的程序员、架构师、技术领导者。 此外,设计出色的软件不仅靠设计原则和经验,如何开展设计也同样重要。本书将讲解如何应用设计思维和以人为本的思想与团队进行协作。这种架构设计办法将极大提高设计决策与团队成员的联系。以人为本能让你做出更好的设计决策,从而开发出更出色的软件。Big Nerd Ranch公司采用本书作为“iOS新手培训课程”的教材。这些内容经过了长期的检验,并且帮助很多人成为iOS程序员。真心希望本书也能给你带来帮助。
评论
还没有评论。