更新时间:2024-11-13 10:18:05
封面
版权信息
O' Reilly Media Inc.介绍
原书第1版序
序
前言
第一部分 机制
第1章 演进软件架构
1.1 软件演进的挑战
1.2 演进式架构
1.2.1 引导式变更
1.2.2 增量变更
1.2.3 多种架构维度
1.3 长期规划如何应对层出不穷的变化
1.4 架构构建完成后,如何防止其随时间推移而退化
1.5 为何演进
1.6 小结
第2章 适应度函数
2.1 什么是适应度函数
2.2 适应度函数分类
2.2.1 按范围分类:原子与整体
2.2.2 按节奏分类:触发式、持续式和时间式
2.2.3 案例研究:触发式还是持续式
2.2.4 按结果分类:静态与动态
2.2.5 按调用方式分类:自动与手动
2.2.6 按响应方式分类:预设式与应急式
2.2.7 按覆盖范围分类:领域特定适应度函数
2.3 谁来写适应度函数
2.4 哪里有适应度函数测试框架
2.5 结果与实现
2.6 小结
第3章 实现增量变更
3.1 增量变更
3.1.1 部署流水线
3.1.2 案例研究:为PenultimateWidgets的发票服务增加适应度函数
3.1.3 案例研究:使用自动化构建验证API的一致性
3.2 小结
第4章 自动化架构治理
4.1 架构治理之适应度函数
4.2 基于代码的适应度函数
4.2.1 传入/传出耦合
4.2.2 抽象性、不稳定性和与主序列的距离
4.2.3 导入的方向性
4.2.4 圈复杂度和“引导式”治理
4.3 即插即用的工具
4.3.1 开源库的合法性
4.3.2 可访问性和支持的其他架构属性
4.3.3 ArchUnit
4.3.4 代码治理的lint工具
4.3.5 案例研究:可用性适应度函数
4.3.6 案例研究:配合金丝雀发布的负载测试
4.3.7 案例研究:移植什么
4.3.8 已经在使用的适应度函数
4.4 集成架构
4.4.1 微服务架构中的通信治理
4.4.2 案例研究:如何实现适应度函数
4.5 DevOps
4.6 企业架构
4.6.1 案例研究:每天部署60次的架构重构
4.6.2 保真度适应度函数
4.7 适应度函数作为清单,而非棍棒
4.8 记录适应度函数
4.9 小结
第二部分 结构
第5章 演进式架构拓扑
5.1 可演进的架构结构
5.1.1 共生性
5.1.2 共生性与限界上下文的交集
5.2 架构量子和粒度
5.2.1 独立部署
5.2.2 高功能内聚性
5.2.3 高静态耦合
5.2.4 动态量子耦合
5.3 契约
案例研究:微服务作为演进式架构
5.4 复用模式
5.4.1 有效的复用=抽象+低变动性
5.4.2 Sidecar和服务网格:正交操作的耦合
5.4.3 数据网格:正交数据耦合
5.5 小结
第6章 演进式数据
6.1 演进式数据库设计
6.1.1 演进模式
6.1.2 共享数据库集成
6.2 不适当的数据纠缠
6.2.1 两段式提交事务
6.2.2 数据的历史和质量
6.2.3 案例研究:演进PenultimateWidgets的路由
6.3 从原生到适应度函数
6.3.1 引用完整性
6.3.2 数据冗余
6.3.3 替换触发器和存储过程
6.3.4 案例研究:从关系型到非关系型的演进
6.4 小结
第三部分 影响
第7章 构建可演进的架构
7.1 演进式架构的原则
7.1.1 最后责任时刻
7.1.2 针对可演进性进行架构设计和开发
7.1.3 波斯特尔定律