Python中文网

软件架构:Python语言实现

cnpython810

推荐编程书籍:软件架构:Python语言实现,由机械工业出版社2018-03-01月出版发行,本书编译以及作者信息 为:李必信 廖力 王璐璐 周颖等译 译,此次为第1次发行, 国际标准书号为:9787111590941,品牌为机工出版, 这本书采用平装开本为16开,纸张采为胶版纸,全书共有381页字数万字,是本Python 编程相关非常不错的书。

此书内容摘要

本书首先解释如何利用Python语言实现应用软件架构,让你逐步理解什么是架构级的需求以及如何确定这些需求;然后,你可以获得对架构不同质量属性的完整理解,这些质量属性包括可修改性、可测试性、可扩展性、可部署性和安全性等,从而帮助架构师构建满足业务需求的软件架构产品。

关于此书作者

关于作者
Anand Balachandran Pillai是一名工程技术专家,在软件企业有18年以上的工作经历,在产品工程、软件设计、架构设计和相关研究方面具有非常丰富的经验。
他曾获得印度理工学院机械工程专业的学士学位。曾在Yahoo!、McAfee和Infosys等公司任职,担任产品开发团队的首席工程师。
他的主要兴趣在于软件性能工程、高可扩展性架构、安全和开源社区等方面。他也经常在Startups工作,担任首席技术专家或顾问。
他还是班加罗尔Python用户联盟的奠基人和Python软件协会(PSF)的会士。Anand现在是Yegii公司的首席架构师。

编辑们的推荐

暂无.

软件架构:Python语言实现图书的目录

目录
译者序
关于作者
关于评审人
前言
第1章软件架构原理 1
1.1软件架构定义 2
1.1.1软件架构与设计 2
1.1.2软件架构相关的几个方面 3
1.2软件架构的特征 3
1.2.1用架构来定义一种结构 3
1.2.2由架构来挑选一组核心元素 4
1.2.3由架构来捕获早期的设计决策 4
1.2.4由架构来管理利益相关者的需求 5
1.2.5架构影响着组织结构 5
1.2.6架构受到环境的影响 6
1.2.7架构是对系统的文档化 6
1.2.8架构通常会遵循某个模式 7
1.3软件架构的重要性 7
1.4系统架构与企业架构 8
1.5架构的质量属性 10
1.5.1可修改性 11
1.5.2可测试性 13
1.5.3可扩展性 14
1.5.4性能 15
1.5.5可用性 16
1.5.6安全性 17
1.5.7可部署性 18
1.6本章小结 19
第2章编写可修改可读的代码 20
2.1什么是可修改性 20
2.2与可修改性相关的几个方面 20
2.3理解可读性 21
2.3.1Python和可读性 21
2.3.2可读性–反模式 22
2.4增强可读性的各种技术 24
2.4.1文档化代码 24
2.4.2遵守编码和风格规范 30
2.4.3审查和重构代码 31
2.4.4注释代码 31
2.5可修改性的基础——内聚和耦合 32
2.5.1测量内聚性和耦合性 33
2.5.2字符串和文本处理 35
2.6探索提高可修改性的策略 37
2.6.1提供显式接口 37
2.6.2减少双向依赖 37
2.6.3抽象出公共服务 38
2.6.4使用继承技术 38
2.6.5使用延迟绑定技术 42
2.7度量——静态分析工具 43
2.7.1什么是代码坏味道 43
2.7.2圈复杂度——McCabe度量 44
2.7.3度量结果测试 45
2.7.4运行静态检查器 47
2.8重构代码 53
2.8.1降低复杂度 53
2.8.2改善代码坏味道 55
2.8.3改善风格上和编码上的问题 57
2.9本章小结 57
第3章可测试性——编写可测试的代码 58
3.1理解可测试性 58
3.1.1软件可测试性及相关属性 58
3.1.2架构级的方方面面 59
3.1.3策略 60
3.2白盒测试原理 65
3.2.1单元测试 65
3.2.2操作中的单元测试 66
3.2.3单元测试模块nose2 69
3.2.4用py.test进行测试 70
3.2.5代码覆盖 72
3.2.6仿制一些东西 74
3.2.7文档中的内联测试——doctest 78
3.2.8集成测试 81
3.2.9测试自动化 83
3.3测试驱动开发 84
3.4有回文的TDD 85
3.5本章小结 90
第4章好的性能就是回报 92
4.1什么是性能 93
4.2软件性能工程 93
4.3性能测试和度量工具 94
4.4性能复杂度 95
4.5度量性能 96
4.5.1使用上下文管理器度量时间 97
4.5.2使用timeit模块来计时代码 99
4.5.3使用timeit度量代码的性能 100
4.5.4揭示时间复杂度——各种图 102
4.5.5使用timeit度量CPU时间 106
4.6剖析 107
4.6.1确定性剖析 107
4.6.2使用cProfile和profile进行剖析 108
4.6.3收集和报告统计数据 111
4.6.4第三方剖析器 113
4.7其他工具 119
4.7.1objgraph 120
4.7.2pympler 121
4.8程序设计性能——数据结构 123
4.8.1可变容器——链表、字典和集合 123
4.8.2不可变容器——元组 124
4.8.3高性能容器——集合模块 125
4.8.4概率数据结构——布隆过滤器 131
4.9本章小结 134
第5章开发可扩展的应用 136
5.1可扩展性和性能 137
5.2并发性 139
5.2.1并发性与并行性 140
5.2.2Python中的并发性——多线程机制 141
5.3缩略图产生器 141
5.3.1缩略图产生器——生产者/消费者架构 143
5.3.2缩略图产生器——使用锁的资源约束 147
5.3.3缩略图产生器——使用信号量的资源约束 150
5.3.4资源约束——信号量和锁比较 153
5.3.5缩略图产生器——使用条件的URL速率控制器 153
5.4多线程机制——Python和GIL 160
5.4.1Python中的并发性——多进程机制 160
5.4.2质数检查器 161
5.4.3排序磁盘文件 163
5.5多线程与多进程比较 168
5.6先入为主的与合作的多任务处理 170
5.7Python中的asyncio模块 173
5.8等待future对象——async和await 175
5.9concurrent.future——高级并发处理 178
5.9.1磁盘缩略图产生器 179
5.9.2并发选项——如何选择? 181
5.10并行处理库 182
5.10.1joblib 182
5.10.2PyMP 183
5.10.3fractals —— Mandelbrot集 184
5.11Web扩展 189
5.11.1扩展工作流——消息队列和任务队列 189
5.11.2Celery —— 一种分布式任务队列 190
5.11.3在Web上使用Python服务——WSGI 194
5.12可扩展架构 197
5.12.1垂直可扩展架构 197
5.12.2水平扩展架构 198
5.13本章小结 201
第6章安全性——编写安全代码 202
6.1信息安全架构 202
6.2安全编码 203

部分内容试读

前言
软件架构,可以说是为特定的应用软件创建一个蓝图设计。软件架构中存在两大挑战:首先,软件架构与需求必须保持一致,对尚未发现的需求或者发生演化的需求都是如此;其次,尽管常常发生架构实现的变更,但软件架构与其对应的架构实现必须保持一致。
本书包含很多示例和用例,通过这种直观的方法来帮助你获取成为一名成功的软件架构师所需的一切。本书将帮助你了解Python的来龙去脉,以便可以用Python来构建和设计高度可扩展的、健壮的、简洁的、性能强大的应用程序。
主要内容
第1章介绍了软件架构的核心思想,简要介绍了架构质量属性和一些隐含的原理。这将使你能够在软件架构原理和基本属性方面拥有良好的知识基础。
第2章包括开发中软件架构的可修改性和可读性。它将帮助你深入理解架构的可维护性等质量属性,并获得用Python编写代码来测试应用程序的各种技巧和策略。
第3章帮助你理解软件架构的可测试性,以及如何为Python应用程序构建架构以满足可测试性。你还将了解可测试性和软件测试的各个方面,以及Python中可用的各种库和模块,以便编写各种可测试的应用程序。
第4章讨论了在编写Python代码过程中关于性能的方方面面。你不仅可以学习架构性能的基本知识,还可以掌握在何时何地需要进行性能优化。例如,你会学习到何时进行SDLC的性能优化。
第5章不仅阐述了编写可扩展应用程序的重要性,还讨论了实现应用程序可扩展性的各种不同方法,并论述了如何利用Python来实现各种可扩展性技术。你不仅能学到可扩展性的理论方面的知识,还能学到业界的最佳实践。
第6章讨论了架构安全性的方方面面,并使你掌握一些最佳实践和技巧来编写安全性高的应用程序。你会了解在Python架构应用程序中可能出现的各种不同的安全问题,以及Python是如何从头开始保障安全性的。
第7章从程序员实用性的角度,简要论述了Python中出现的各种设计模式以及每个模式的理论背景。这些设计模式对程序员来说是非常实用的。
第8章从较高抽象层次角度介绍Python中现有的架构模式,同时给出了几个示例,用来说明如何利用Python库和框架来实现基于这些模式的高层次架构问题的解决方法。
第9章讨论如何正确地在远程环境中或云上使用Python轻松部署代码的方方面面。
第10章讨论了一些Python代码调试技术,包括最简单实用的打印语句、日志记录和系统调用跟踪机制等,这些对程序员来说都是非常容易获得的,也有助于系统架构师指导他的团队。
阅读本书需要准备什么
为运行本书中展示的大部分代码示例,需要在系统中安装Python 3。其他的预备知识会在相应的实例中提到。
本书的读者对象
本书适用于有经验的Python开发人员,他们渴望成为企业级应用程序的架构师;本书也适用于软件架构师,他们希望利用Python的特长来创建更有效的应用程序蓝图。
约定
书中的代码块设置如下:

当希望重点关注代码块的某个特定部分时,会将相关的行(line)或项(item)设置成粗体:

任何命令行输入或输出写成如下形式:

新术语和重要词汇以粗体形式表示。
示例代码下载
可以从http://www.packtpub.com下载本书的示例代码文件(需要Packt账户)。也可以访问http://www.packtpub.com/support并注册账户,Packt将通过email把文件直接发送给你。
可以按照以下步骤下载代码文件:
(1)使用你的电子邮件地址和密码注册或登录到我们的网站。
(2)将鼠标指针悬停在顶部的SUPPORT选项卡上。
(3)单击Code Downloads & Errata选项。
(4)在Search框中输入图书的名称。
(5)选择要下载代码文件的书。
(6)从下拉菜单中选择本书的购买渠道。
(7)单击Code Download下载。
你还可以单击Packt Publishing网站中图书页面上的Code Files按钮下载代码文件,也可以通过在Search框中输入图书的名称来访问此页面。请注意,你需要首先登录Packt账户。
下载文件后,请确保使用这些最新版软件来解压缩文件或文件夹:
WinRAR / 7-Zip for Windows
Zipeg / iZip / UnRarX for Mac
7-Zip / PeaZip for Linux
该书的代码包也由GitHub托管在https://github.com/PacktPublishing/Software-Architecture-with-Python。你还可从Packt提供的图书和视频目录中获取其他代码包,网址为https://github.com/PacktPublishing/。

关于此书评价

暂无.

书摘内容

暂无.

软件架构:Python语言实现最新最全的试读、书评、目录、简介信息由Python中文网整理提供。

上一篇:没有了

下一篇:Python数据科学与机器学习 从入门到实践