PYTHON架构模式:精通基于PYTHON的API设计、事件驱动架构和包管理
- ISBN:9787111742876
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:409
- 出版时间:2024-01-01
- 条形码:9787111742876 ; 978-7-111-74287-6
本书特色
开发规模和复杂性不断增长的大型系统需要深刻理解软件项目的实施过程。软件开发人员、架构师和技术管理团队遵循高级软件设计模式(如微服务架构、事件驱动架构,以及领域驱动设计规定的策略模式),可以简化开发过程。 本书涵盖了这些成熟的架构设计模式,并以前瞻性的方法帮助Python开发人员管理复杂应用程序的开发,令其从Python测试套件中获取*大价值。 本书从系统设计的起始阶段开始,让你了解软件开发的思路和项目中要考虑的重点问题。书中阐述了各种架构模式,如微服务、Web服务和事件驱动架构,以及如何选择*适合你的项目的模式。然后,在建立相关概念的基础上,讨论如何进行开发、调试和测试,以编写高质量的代码,并为系统部署做好准备。此外,本书还讲解了当系统部署到*终用户之后如何实现持续运维,因为软件开发的生命周期永无止境。 学完本书,你将形成“架构思维”:一种不一样的软件设计方法,包括对运行中的系统进行调整。 通过学习本书,你将可以: ? 像架构师一样思考,分析软件架构模式。 ? 探索API设计、数据存储和数据呈现方法。 ? 探究常见架构模式的细微差别。 ? 利用微服务等架构模式的组件并实现其互操作。 ? 采用测试驱动开发模式执行高质量的代码测试。 ? 将大块可重用的代码构建为软件包。 ? 保持系统向后兼容性并部署其迭代变更。
内容简介
本书讲解软件架构系统各方面的内容,从顶层设计到用于支持高层功能的低层细节。本书首先介绍软件架构的含义并给出简单的设计示例,之后分为四个部分涵盖软件开发生命周期中的各个阶段:讨论构成系统的每个组成单元的一般性原则及其核心内容;重点介绍一些成功的架构模式,包括它们的优势和局限性;阐述如何进行软件测试以及如何构建和共享代码;讲解持续运维,涵盖日志、系统度量、性能分析、代码调试和架构调整等内容。本书将帮你形成架构思维,了解软件开发的思路和项目中要考虑的重点问题。
目录
译者序
前言
关于作者
关于审校者
第1章 软件架构简介 1
1.1 设计软件系统的架构 1
1.2 划分为较小的单元 3
1.3 康威定律:对软件架构的影响 5
1.4 应用示例:概述 6
1.5 软件架构安全 8
1.6 小结 9
**部分 设计
第2章 API设计 13
2.1 抽象 14
2.1.1 使用合适的抽象 15
2.1.2 抽象失效 16
2.1.3 资源与操作抽象 17
2.2 RESTful接口 18
2.2.1 实用性定义 19
2.2.2 HTTP头部及状态 21
2.2.3 资源设计 24
2.2.4 资源与参数 25
2.2.5 分页 26
2.2.6 RESTful API流程设计 27
2.2.7 使用Open API规范 29
2.3 认证 32
2.3.1 HTML接口认证 33
2.3.2 RESTful接口认证 34
2.4 API版本管理 38
2.4.1 为何需要版本管理 38
2.4.2 内部版本与外部版本 38
2.4.3 语义化版本管理 39
2.4.4 简单的版本管理 40
2.5 前端与后端 41
2.6 HTML接口 43
2.6.1 传统HTML接口 43
2.6.2 动态页面 44
2.6.3 单页应用程序 45
2.6.4 混合模式 46
2.7 API设计示例 47
2.7.1 端点 48
2.7.2 设计及实现审查 55
2.8 小结 55
第3章 数据建模 56
3.1 数据库的类型 56
3.1.1 关系数据库 57
3.1.2 非关系数据库 59
3.1.3 小型数据库 62
3.2 数据库事务 63
3.3 分布式关系数据库 65
3.3.1 主库/副本 65
3.3.2 分片 67
3.3.3 分片的优势和劣势 71
3.4 数据库模式设计 72
3.4.1 模式规范化 75
3.4.2 去规范化 77
3.5 数据索引 78
3.6 小结 81
第4章 数据层 82
4.1 模型层 82
4.1.1 DDD 83
4.1.2 使用ORM 84
4.1.3 工作单元模式及数据封装 90
4.1.4 CQRS使用不同的读写
模型 93
4.2 数据库迁移 96
4.2.1 向后兼容性 96
4.2.2 关系数据库迁移 97
4.2.3 非关系数据库迁移 101
4.3 处理遗留数据库 102
4.3.1 检测数据库模式 103
4.3.2 同步现有模式至ORM 104
4.4 小结 105
第二部分 架构模式
第5章 十二要素App方法论 109
5.1 十二要素App简介 109
5.2 CI 110
5.3 可扩展性 111
5.4 配置 113
5.5 十二要素 115
5.5.1 一次构建,多次运行 115
5.5.2 依赖项和配置 117
5.5.3 可扩展性 120
5.5.4 监控和管理 122
5.6 容器化的十二要素App 125
5.7 小结 126
第6章 Web服务器架构 127
6.1 请求–响应架构 127
6.2 Web架构 129
6.3 Web服务器 130
6.3.1 由外部提供静态内容 131
6.3.2 反向代理 133
6.3.3 日志 135
6.3.4 高级用法 136
6.4 uWSGI 136
6.4.1 WSGI应用程序 137
6.4.2 与Web服务器交互 138
6.4.3 进程 139
6.4.4 进程生命周期 140
6.5 Python Worker 143
6.5.1 Django MVT架构 143
6.5.2 将请求路由到视图 144
6.5.3 视图 146
6.5.4 中间件 150
6.5.5 Django REST框架 152
6.6 外部层 158
6.7 小结 158
第7章 事件驱动架构 160
7.1 发送事件 160
7.2 异步任务 161
7.3 任务细分 164
7.4 计划任务 165
7.5 队列机制 166
7.5.1 统一Worker代码 169
7.5.2 云队列和Worker 169
7.6 Celery 171
7.6.1 配置Celery 172
7.6.2 Celery Worker 172
7.6.3 触发任务 175
7.6.4 联调 175
7.6.5 计划任务 178
7.6.6 Celery Flower 182
7.6.7 Flower的HTTP API 184
7.7 小结 185
第8章 高级事件驱动架构 187
8.1 流式事件 187
8.2 管道 190
8.2.1 准备 191
8.2.2 基础任务 192
8.2.3 图像任务 193
8.2.4 视频任务 195
8.2.5 连接任务 196
8.2.6 运行任务 198
8.3 定义总线 200
8.4 更复杂的系统 201
8.5 测试事件驱动系统 204
8.6 小结 205
第9章 微服务与单体 207
9.1 单体架构 207
9.2 微服务架构 208
9.3 架构选择 209
9.4 关键因素:团队沟通 213
9.5 从单体迁移到微服务 216
9.5.1 迁移面临的挑战 216
9.5.2 四步迁移 218
9.6 服务容器化 224
9.6.1 构建并运行镜像 226
9.6.2 构建并运行Web服务 228
9.7 容器编排与Kubernetes 236
9.8 小结 237
第三部分 实现
第10章 测试与TDD 241
10.1 代码测试 2
作者简介
詹姆·布尔塔(Jaime Buelta)是拥有20多年经验的杰出程序员,其中10余年全职从事Python开发。在此期间,他接触了很多不同的技术,帮助航空航天、工业系统、在线视频游戏服务、金融服务和教育工具等多个行业领域的客户达成目标。自2018年以来,Jaime一直在撰写技术书籍,总结职业生涯中的经验教训,除本书外,他还著有Python Automation Cookbook和Hands On Docker for Microservices in Python。Jaime目前居住在爱尔兰都柏林。
一本书的出版非一人之功。这离不开直接参与完善、改进文稿的人员的辛苦付出,还有与Python基金会及其技术社区那些出色的技术人员进行的大量沟通和交流,这些沟通和交流形成了书中的观点。当然,如果没有我了不起的妻子Dana付出的爱和支持,本书也不可能完成。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥48.2¥79.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0