- ISBN:9787115516176
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:140
- 出版时间:2018-04-01
- 条形码:9787115516176 ; 978-7-115-51617-6
本书特色
在软件开发流程中,为了尽可能快地响应各种变化,理应把结构渐进改变作为设计的首要原则。《演进式架构》详尽阐述了演进式架构的必要性、构建方法以及需要注意的问题。各章结合案例分别讨论了软件架构、适应度函数、开展增量变更、架构耦合、演进式数据、构建可演进的架构、演进式架构的陷阱和反模式,以及实践演进式架构。
内容简介
在软件开发流程中,为了尽可能快地响应各种变化,理应把结构渐进改变作为设计的首要原则。《演进式架构》详尽阐述了演进式架构的必要性、构建方法以及需要注意的问题。各章结合案例分别讨论了软件架构、适应度函数、开展增量变更、架构耦合、演进式数据、构建可演进的架构、演进式架构的陷阱和反模式,以及实践演进式架构。
目录
O'Reilly Media, Inc.介绍 iv
序 ix
前言 xi
第 1章 软件架构 1
1.1 演进式架构 2
1.1.1 一切都在变化,如何才能长期规划 3
1.1.2 完成架构构建后,如何防止它逐渐退化 4
1.2 增量变更 5
1.3 引导性变更 6
1.4 多个架构维度 6
1.5 康威定律 8
1.6 为何演进 10
1.7 小结 11
第 2章 适应度函数 13
2.1 什么是适应度函数 15
2.2 适应度函数分类 16
2.2.1 原子适应度函数与整体适应度函数 16
2.2.2 触发式适应度函数与持续式适应度函数 16
2.2.3 静态适应度函数与动态适应度函数 17
2.2.4 自动适应度函数与手动适应度函数 17
2.2.5 临时适应度函数 18
2.2.6 预设式高于应急式 18
2.2.7 针对特定领域的适应度函数 18
2.3 尽早确定适应度函数 18
2.4 审查适应度函数 19
第3章 实施增量变更 21
3.1 构件 24
3.1.1 可测试性 25
3.1.2 部署流水线 26
3.1.3 组合不同类型的适应度函数 30
3.1.4 案例研究:在每天部署60次的情况下重建架构 31
3.1.5 目标冲突 33
3.1.6 案例研究:为PenultimateWidgets的发票服务添加适应度函数 33
3.2 假设驱动开发和数据驱动开发 36
3.3 案例研究:移植什么 37
第4章 架构耦合 39
4.1 模块化 39
4.2 架构的量子和粒度 40
4.3 不同类型架构的演进能力 42
4.3.1 大泥团架构 42
4.3.2 单体架构 44
4.3.3 事件驱动架构 49
4.3.4 服务导向架构 53
4.3.5 “无服务”架构 62
4.4 控制架构量子大小 63
4.5 案例分析:防止组件循环依赖 64
第5章 演进式数据 67
5.1 演进式数据库设计 67
5.1.1 数据库模式演进 67
5.1.2 共享数据库集成 69
5.2 不当的数据耦合 73
5.2.1 二阶段提交事务 74
5.2.2 数据的年龄和质量 75
5.3 案例研究:PenultimateWidgets的路由演进 76
第6章 构建可演进的架构 79
6.1 演进机制 79
6.1.1 识别受演进影响的架构维度 79
6.1.2 为每个维度定义适应度函数 80
6.1.3 使用部署流水线自动化适应度函数 80
6.2 全新的项目 80
6.3 改良现有架构 81
6.3.1 适当的耦合和内聚 81
6.3.2 工程实践 81
6.3.3 适应度函数 82
6.3.4 关于商业成品软件 82
6.4 架构迁移 83
6.4.1 迁移步骤 84
6.4.2 演进模块间的交互 86
6.5 演进式架构构建指南 89
6.5.1 去除不必要的可变性 89
6.5.2 让决策可逆 91
6.5.3 演进优于预测 91
6.5.4 构建防腐层 92
6.5.5 案例分析:服务模板 93
6.5.6 构建可牺牲架构 94
6.5.7 应对外部变化 95
6.5.8 更新库与更新框架 97
6.5.9 持续交付优于快照 97
6.5.10 服务内部版本化 98
6.6 案例分析:PenultimateWidgets的评分服务演进 99
第7章 演进式架构的陷阱和反模式 103
7.1 技术架构 103
7.1.1 反模式:供应商为王 103
7.1.2 陷阱:抽象泄漏 104
7.1.3 反模式:*后10%的陷阱 107
7.1.4 反模式:代码复用和滥用 108
7.1.5 案例研究:PenultimateWidgets中的复用 109
7.1.6 陷阱:简历驱动开发 110
7.2 增量变更 111
7.2.1 反模式:管理不当 111
7.2.2 案例研究:PenultimateWidgets的“金发姑娘”管理 112
7.2.3 陷阱:发布过慢 113
7.3 业务问题 114
7.3.1 陷阱:产品定制 114
7.3.2 反模式:报表 115
7.3.3 陷阱:规划视野 116
第8章 实践演进式架构 119
8.1 组织因素 119
8.1.1 全功能团队 119
8.1.2 围绕业务能力组织团队 121
8.1.3 产品高于项目 121
8.1.4 应对外部变化 122
8.1.5 团队成员间的连接数 123
8.2 团队的耦合特征 124
8.2.1 文化 124
8.2.2 试验文化 125
8.3 首席财务官和预算 126
8.4 构建企业适应度函数 128
8.5 从何开始 129
8.5.1 容易实现的目标 129
8.5.2 *高价值优先 129
8.5.3 测试 129
8.5.4 基础设施 130
8.5.5 PenultimateWidgets的企业架构师 131
8.6 演进式架构的未来 131
8.6.1 基于AI的适应度函数 132
8.6.2 生成式测试 132
8.7 为什么(不)呢 132
8.7.1 公司为何决定构建演进式架构 132
8.7.2 案例分析:PenultimateWidgets选择性伸展 134
8.7.3 企业为何选择不构建演进式架构 135
8.7.4 说服他人 136
8.7.5 案例分析:“咨询柔道” 136
8.8 商业案例 136
8.8.1 未来已来…… 136
8.8.2 没有后顾之忧地快速前行 137
8.8.3 风险更低 137
8.8.4 新能力 137
8.9 构建演进式架构 137
关于作者 139
封面介绍 140
作者简介
尼尔·福特(Neal Ford)是ThoughtWorks软件架构师、Meme Wrangler,曾任DSW集团CTO,是国际公认的软件开发与交付专家。 丽贝卡·帕森斯(Rebecca Parsons)是ThoughtWorks CTO,在大规模分布式对象应用开发和系统集成方面拥有丰富经验。 帕特里卡·柯(Patrick Kua)是数字银行N26科学家,曾任ThoughtWorks主任咨询师和技术主管,在敏捷和精益开发方面拥有丰富经验。
-
全图解零基础word excel ppt 应用教程
¥15.6¥48.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥12.7¥39.8 -
情感计算
¥66.8¥89.0 -
大模型RAG实战 RAG原理、应用与系统构建
¥69.3¥99.0 -
LINUX企业运维实战(REDIS+ZABBIX+NGINX+PROMETHEUS+GRAFANA+LNMP)
¥51.8¥69.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥67.4¥89.8 -
LINUX实战——从入门到精通
¥51.8¥69.0 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
快速部署大模型:LLM策略与实践(基于ChatGPT等大语言模型)
¥56.9¥79.0 -
数据驱动的工业人工智能:建模方法与应用
¥68.3¥99.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥81.8¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
UN NX 12.0多轴数控编程案例教程
¥24.3¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥38.7¥79.0 -
明解C语言:实践篇
¥62.9¥89.8