链接: https://pan.baidu.com/s/1DBy9-9H4GaaS3UDRftCm8A
提取码: pkz7
内容简介 · · · · · ·
这不是一本常规意义上Python的入门书。这本书中没有Python关键字和for循环的使用,也没有细致入微的标准库介绍,而是完全从实战的角度出发,对构建一个完整的Python应用所需掌握的知识进行了系统而完整的介绍。更为难得的是,本书的作者是开源项目OpenStack的PTL(项目技术负责人)之一,因此本书结合了Python在OpenStack中的应用进行讲解,非常具有实战指导意义。
本书从如何开始一个新的项目讲起,首先是整个项目的结构设计,对模块和库的管理,如何编写文档,进而讲到如何分发,以及如何通过虚拟环境对项目进行测试。此外,本书还涉及了很多高级主题,如性能优化、插件化结构的设计与架构、Python 3的支持策略等。本书适合各个层次的Python程序员阅读和参考。
作者简介 · · · · · ·
Julien Danjou 具有12年从业经验的自由软件黑客。拥有多个开源社区的不同身份:Debian开发者、Freedesktop贡献者、GNU Emacs提交者、awesome窗口管理器的创建者以及OpenStack Ceilometer项目的技术主管。近年,他经常使用Python,尤其是在参与了OpenStack(云计算平台)的开发之后。在此期间,他有机会与许多杰出的黑客一起工作。
译者简介
王飞龙 OpenStack Glance项目和Zaqar项目的核心开发人员。曾任职于IBM,从事系统管理软件和云计算的开发工作,现居住在新西兰,专注于OpenStack开发。
第1章 项目开始 1
1.1 Python版本 1
1.2 项目布局 2
1.3 版本编号 3
1.4 编码风格与自动检查 5
1.5 Joshua Harlow访谈 8
第2章 模块和库 13
2.1 导入系统 13
2.2 标准库 17
2.3 外部库 18
2.4 框架 20
2.5 Doug Hellmann访谈 21
第3章 管理API变化 27
第4章 时区陷阱 35
第5章 文档 39
5.1 Sphinx和reST入门 40
5.2 Sphinx模块 41
5.3 扩展Sphinx 44
第6章 分发 47
6.1 简史 47
6.2 使用pbr打包 49
6.3 Wheel格式 51
6.4 包的安装 52
6.5 和世界分享你的成果 53
6.6 Nick Coghlan访谈 58
6.7 入口点 59
6.7.1 可视化的入口点 60
6.7.2 使用控制台脚本 61
6.7.3 使用插件和驱动程序 63
第7章 虚拟环境 67
第8章 单元测试 71
8.1 基础知识 71
8.2 fixture 78
8.3 模拟(mocking) 79
8.4 场景测试 83
8.5 测试序列与并行 87
8.6 测试覆盖 91
8.7 使用虚拟环境和tox 93
8.8 测试策略 97
8.9 Robert Collins访谈 98
第9章 方法和装饰器 101
9.1 创建装饰器 101
9.2 Python中方法的运行机制 107
9.3 静态方法 109
9.4 类方法 110
9.5 抽象方法 111
9.6 混合使用静态方法、类方法和抽象方法 112
9.7 关于super的真相 115
第10章 函数式编程 119
10.1 生成器 120
10.2 列表推导 124
10.3 函数式函数的函数化 125
第11章 抽象语法树 133
11.1 用抽象语法树检查来扩展flake8 136
11.2 Hy 141
11.3 Paul Tagliamonte访谈 143
第12章 性能与优化 149
12.1 数据结构 149
12.2 性能分析 151
12.3 有序列表和二分查找 156
12.4 namedtuple和slots 158
12.5 memoization 163
12.6 PyPy 165
12.7 通过缓冲区协议实现零复制 166
12.8 Victor Stinner访谈 171
第13章 扩展与架构 175
13.1 多线程的注意事项 175
13.2 多进程与多线程 177
13.3 异步和事件驱动架构 179
13.4 面向服务架构 181
第14章 RDBMS和ORM 185
14.1 用Flask和PostgreSQL流化数据 188
14.2 Dimitri Fontaine访谈 193
第15章 Python 3支持策略 201
15.1 语言和标准库 202
15.2 外部库 205
15.3 使用six 205
第16章 少即是多 209
16.1 单分发器 209
16.2 上下文管理器 214
第17章 延伸阅读 217
网友评论