软件架构:架构模式、特征及实践指南

软件架构:架构模式、特征及实践指南

我想读
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

适读人群 :有志成为软件架构师的软件开发人员

全球范围内的薪酬调查经常将软件架构师列为十大最佳工作岗位,但并没有真正的指南来帮助开发人员成为架构师。于是,本书出现了。本书首次全面概述了软件架构的方方面面,涉及架构特征、架构模式、组件识别、图表化和展示架构、演进架构,以及其他许多主题。

软件开发世界日新月异,软件架构师必须在这样一个不断变化的环境中做出决策,在学习架构时,必须记住一点:与许多艺术品一样,架构只能在上下文中理解。架构师的许多决策都基于他们所处的实际环境而产生。

Mark Richards和Neal Ford讲授软件架构课程多年,他们关注的是适用于所有技术栈的架构原则。本书从现代的角度看待软件架构,综合了过去十年的所有创新,以及一些适用于当下的新结构和视角的新的度量标准和方法。本书还讨论了至关重要的权衡分析问题。本书为现有和新兴的架构(从结构到软技能等方面)提供一个良好的现代化软件架构概览。

本书将探讨:

架构模式:众多架构决策的技术基础。

组件:识别、耦合、内聚、分区和粒度。

软技能:有效的团队管理、会议、谈判、展示等。

现代化:在过去的几年里,工程实践和操作方法发生了根本性的变化。

作为工程学科的架构:可重复的结果、度量和具体的评估增加了软件架构的严谨性。

内容简介

本书全面概述了软件架构的方方面面,涉及架构特征、架构模式、组件识别、图表化和展示架构、演进架构,以及许多其他主题。本书分为三部分。

第1部分介绍关于组件化、模块化、耦合和度量软件复杂度的基本概念和术语。

第2部分详细介绍各种架构风格:分层架构风格、管道架构风格、微内核架构风格、基于服务的架构风格、事件驱动的架构风格、基于空间的架构风格、编制驱动的面向服务的架构、微服务架构。

第3部分介绍成为一个成功的软件架构师所必需的关键技巧和软技能。

作者简介

Mark Richards是一位经验丰富的软件架构师,他参与了微服务架构、事件驱动架构和其他分布式架构的架构、设计和实现。

Neal Ford在ThoughtWorks担任总监、软件架构师和meme wrangler。ThoughtWorks是一家专注于端到端软件开发和交付的全球IT咨询公司。Neal也担任过DSW集团的首席技术官。

他是《卓有成效的程序员》一书的作者。

章节目录

前言:失效的公理1

第1章 概述5

1.1 定义软件架构7

1.2 架构师的角色期望10

1.3 与架构的交集14

1.4 软件架构定律19

【第一部分 基础21】

第2章 架构思维23

2.1 架构与设计24

2.2 技术广度25

2.3 分析权衡28

2.4 理解业务驱动因素31

2.5 平衡架构和动手编码31

第3章 模块化34

3.1 定义34

3.2 度量模块化36

3.3 从模块到组件48

第4章 现有的架构特征49

4.1 部分已罗列出来的架构特征51

4.2 权衡和最差可用的架构56

第5章 识别架构特征57

5.1 从领域问题中提取架构特征57

5.2 从需求中提取架构特征59

5.3 案例研究:硅三明治60

第6章 度量和治理架构特征66

6.1 度量架构特征66

6.2 治理和适应度函数70

第7章 架构特征的范围76

7.1 耦合与共生性76

7.2 架构量子与粒度77

第8章 组件化思维83

8.1 组件范围83

8.2 架构师角色84

8.3 开发人员角色90

8.4 组件识别流程90

8.5 组件粒度91

8.6 组件设计92

8.7 案例研究:“前进,前进,消失”之发现组件94

8.8 架构量子回归:单体架构和分布式架构之间的选择96

【第二部分 架构风格99】

第9章 基础101

9.1 基础模式101

9.2 单体架构与分布式架构104

第10章 分层架构风格112

10.1 拓扑结构112

10.2 分层隔离性113

10.3 增加分层114

10.4 其他考虑116

10.5 为什么使用这种架构风格116

10.6 架构特征评级117

第11章 管道架构风格119

11.1 拓扑结构119

11.2 示例121

11.3 架构特征评级122

第12章 微内核架构风格124

12.1 拓扑结构124

12.2 注册129

12.3 契约130

12.4 示例和用例131

12.5 架构特征评级132

第13章 基于服务的架构风格134

13.1 拓扑结构134

13.2 拓扑结构变体135

13.3 服务设计和粒度137

13.4 数据库分区138

13.5 架构示例139

13.6 架构特征评级141

13.7 何时使用这种架构风格143

第14章 事件驱动的架构风格144

14.1 拓扑结构145

14.2 代理拓扑145

14.3 中介拓扑149

14.4 异步能力156

14.5 错误处理157

14.6 防止数据丢失160

14.7 广播功能162

14.8 请求-应答163

14.9 在基于请求和基于事件之间进行选择165

14.10 混合的事件驱动的架构166

14.11 架构特征评级166

第15章 基于空间的架构风格169

15.1 常规拓扑结构170

15.2 数据冲突179

15.3 云实现与预置实现181

15.4 复制缓存与分布式缓存182

15.5 近缓存中的注意事项184

15.6 实现示例185

15.7 架构特征评级186

第16章 编制驱动的面向服务的架构188

16.1 历史和哲学188

16.2 拓扑结构188

16.3 分类189

16.4 重用与解耦191

16.5 架构特征评级193

第17章 微服务架构195

17.1 历史195

17.2 拓扑结构196

17.3 分布式196

17.4 有界上下文197

17.5 API层198

17.6 运维重用199

17.7 前端201

17.8 通信202

17.9 架构特征评级209

17.10 附加参考210

第18章 选择合适的架构风格211

18.1 改变架构“时尚”211

18.2 决策标准212

18.3 单体案例研究:硅三明治214

18.4 分布式案例研究:前进,前进,消失216

【第三部分 技巧和软技能221】

第19章 架构决策223

19.1 架构决策反模式223

19.2 具备架构意义225

19.3 架构决策记录226

第20章 分析架构风险235

20.1 风险矩阵235

20.2风险评估236

20.3 风险风暴238

20.4 敏捷用户故事的风险分析244

20.5 风险风暴范例244

第21章 架构绘图和演示250

21.1 绘图251

21.2 演示255

第22章 打造高效团队259

22.1 团队边界259

22.2 架构师的个性260

22.3 有多少控制力263

22.4 团队告警信号267

22.5 利用检查清单269

22.6 提供指导273

22.7 总结275

第23章 谈判和领导能力276

23.1 谈判和推进276

23.2 软件架构师作为领导者281

23.3 与开发团队集成287

23.4 总结289

第24章 打造职业发展路径290

24.1 20分钟规则290

24.2 开发个人雷达291

24.3 使用社交媒体295

24.4 临别赠言296

附录A 自我评估问题297

关于作者

关于封面

软件架构:架构模式、特征及实践指南是2021年由机械工业出版社出版,作者NealFord。

得书感谢您对《软件架构:架构模式、特征及实践指南》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
云原生架构进阶实战 电子书

凝练云原生的核心思想和理念,通过讲述云原生敏捷基础架构构建过程和DevOps方法,并结合实际案例,为你展现云原生的实战场景和步骤。
智能风控实践指南:从模型、特征到决策 电子书

一本金融智能风控算法应用教程书。
分布式对象存储——原理、架构及Go语言实现 电子书

适读人群:本书适合从事云存储方面工作的工程师或架构师,也适合想要学习和实现分布式对象存储的读者。  赠送价值249元的云存储专家视频课程  掌握云存储理论,动手搭建分布式对象存...
透视C#核心技术:系统架构及移动端开发 电子书

本书采用循序渐进的方式讲解C#及其在电商、ERP及手机APP方面的开发技术。
微服务与事件驱动架构 电子书

本书教你从头开始构建完整的事件驱动型微服务架构。
云数据中心网络架构与技术 电子书

由华为数据通信数字化信息开发部和数据通信架构与设计部联合编写基于华为在全球范围的丰富商用交付经验聚焦新一代网络技术的发展热点聚集华为数据通信产品线的一线专家和技术人员的研发成果...