Python架构模式:精通基于Python的API设计、事件驱动架构和包管理

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

【编辑推荐】

开发规模和复杂性不断增长的大型系统需要深刻理解软件项目的实施过程。软件开发人员、架构师和技术管理团队遵循高级软件设计模式(如微服务架构、事件驱动架构,以及领域驱动设计规定的策略模式),可以简化开发过程。 本书涵盖了这些成熟的架构设计模式,并以前瞻性的方法帮助Python开发人员管理复杂应用程序的开发,令其从Python测试套件中获取价值。 本书从系统设计的起始阶段开始,让你了解软件开发的思路和项目中要考虑的重点问题。书中阐述了各种架构模式,如微服务、Web服务和事件驱动架构,以及如何选择你的项目的模式。然后,在建立相关概念的基础上,讨论如何进行开发、调试和测试,以编写高质量的代码,并为系统部署做好准备。此外,本书还讲解了当系统部署到最终用户之后如何实现持续运维,因为软件开发的生命周期永无止境。 学完本书,你将形成“架构思维”:一种不一样的软件设计方法,包括对运行中的系统进行调整。 通过学习本书,你将可以: ? 像架构师一样思考,分析软件架构模式。 ? 探索API设计、数据存储和数据呈现方法。 ? 探究常见架构模式的细微差别。 ? 利用微服务等架构模式的组件并实现其互操作。 ? 采用测试驱动开发模式执行高质量的代码测试。 ? 将大块可重用的代码构建为软件包。 ? 保持系统向后兼容性并部署其迭代变更。

【内容简介】

本书讲解软件架构系统各方面的内容,从顶层设计到用于支持高层功能的低层细节。本书首先介绍软件架构的含义并给出简单的设计示例,之后分为四个部分涵盖软件开发生命周期中的各个阶段:讨论构成系统的每个组成单元的一般性原则及其核心内容;重点介绍一些成功的架构模式,包括它们的优势和局限性;阐述如何进行软件测试以及如何构建和共享代码;讲解持续运维,涵盖日志、系统度量、性能分析、代码调试和架构调整等内容。本书将帮你形成架构思维,了解软件开发的思路和项目中要考虑的重点问题。

【目录】

Contents目  录
译者序
前言
关于作者
关于审校者
第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

以上就是“Python架构模式:精通基于Python的API设计、事件驱动架构和包管理”的全部内容,希望对你有所帮助。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值