图书介绍
软件架构 Python语言实现PDF|Epub|txt|kindle电子书版本网盘下载
![软件架构 Python语言实现](https://www.shukui.net/cover/75/34522255.jpg)
- (印度)阿南德·巴拉钱德拉·皮莱著;李必信,廖力,王璐璐,周颖等译 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111590941
- 出版时间:2018
- 标注页数:382页
- 文件大小:117MB
- 文件页数:400页
- 主题词:软件工具-程序设计
PDF下载
下载说明
软件架构 Python语言实现PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第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.1 Python和可读性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单元测试模块nose269
3.2.4用py.test进行测试70
3.2.5代码覆盖72
3.2.6仿制一些东西74
3.2.7文档中的内联测试——doctest78
3.2.8集成测试81
3.2.9测试自动化83
3.3测试驱动开发84
3.4有回文的TDD85
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.1 objgraph120
4.7.2 pympler121
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.2 Python中的并发性——多线程机制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和GIL160
5.4.1 Python中的并发性——多进程机制160
5.4.2质数检查器161
5.4.3排序磁盘文件163
5.5多线程与多进程比较168
5.6先入为主的与合作的多任务处理170
5.7 Python中的asyncio模块173
5.8等待future对象——async和await175
5.9 concurrent.future——高级并发处理178
5.9.1磁盘缩略图产生器179
5.9.2并发选项——如何选择?181
5.10并行处理库182
5.10.1 j oblib182
5.10.2 PyMP183
5.10.3 fractals——Mandelbrot集184
5.11 Web扩展189
5.11.1扩展工作流——消息队列和任务队列189
5.11.2 Celery——一种分布式任务队列190
5.11.3在Web上使用Python服务——WSGI194
5.12可扩展架构197
5.12.1垂直可扩展架构197
5.12.2水平扩展架构198
5.13本章小结201
第6章 安全性——编写安全代码202
6.1信息安全架构202
6.2安全编码203
6.3常见的安全漏洞204
6.4 Python安全吗?208
6.4.1读取输入209
6.4.2任意输入求值211
6.4.3溢出错误214
6.4.4序列化对象216
6.5 Web应用的安全问题219
6.5.1服务器端模板注入220
6.5.2服务器端模板注入——回避222
6.5.3服务拒绝223
6.5.4跨站脚本攻击226
6.5.5回避——DoS和XSS227
6.6 Python中的安全策略228
6.7安全编码策略234
6.8本章小结234
第7章Python设计模式236
7.1设计模式——元素237
7.2设计模式分类237
7.2.1可插拔的散列算法238
7.2.2可插拔的散列算法总结242
7.3 Python模式——创建模式242
7.3.1单例模式242
7.3.2工厂模式248
7.3.3原型模式250
7.3.4建造者模式256
7.4 Python模式——结构化模式261
7.4.1适配器模式261
7.4.2外观模式269
7.4.3代理模式275
7.5 Python模式——行为模式279
7.5.1迭代器模式279
7.5.2观察者模式282
7.5.3状态模式288
7.6本章小结293
第8章Python架构模式295
8.1 M VC概述296
8.1.1模型模板视图——Django297
8.1.2Django管理——自动的以模型为中心的视图297
8.1.3灵活的微框架——Flask299
8.2事件驱动编程300
8.2.1采用I/O多路复用select模块的聊天服务器和客户端300
8.2.2事件驱动与并发编程306
8.2.3 Twisted306
8.2.4 Eventlet313
8.2.5 Greenlet和Gevent314
8.3微服务架构316
8.3.1 Python中的微服务框架317
8.3.2微服务实例——餐馆预订317
8.3.3微服务的优点320
8.4管道和过滤器架构320
8.5本章小结325
第9章 部署Python应用程序326
9.1可部署性327
9.1.1影响可部署性的因素327
9.1.2软件部署架构的层次328
9.2 Python软件部署329
9.2.1给Python代码打包329
9.2.2使用Fabric进行远程部署340
9.2.3使用Ansible进行远程部署341
9.2.4使用Supervisor管理远程守护进程342
9.3部署——模式和最佳实践343
9.4本章小结344
第10章 各种用于调试的技术346
10.1最大子阵列问题347
10.1.1 “ print”的力量348
10.1.2分析和重写349
10.1.3代码计时和代码优化351
10.2简单的调试技巧和技术353
10.2.1词搜索器程序353
10.2.2词搜索器程序——调试步骤1354
10.2.3词搜索器程序——调试步骤2355
10.2.4词搜索器程序——最终代码356
10.2.5跳过代码块357
10.2.6停止执行357
10.2.7使用wrapper来控制外部依赖358
10.2.8用函数的返回值或数据来替换函数(模拟)359
10.3作为一种调试技术的日志记录367
10.3.1简单的应用程序日志记录368
10.3.2高级日志记录——日志记录器对象369
10.4调试工具——使用各种调试器374
10.4.1一个使用pdb的调试会话375
10.4.2 pdb——两个相似的工具377
10.5高级调试——跟踪379
10.5.1 trace模块379
10.5.2 lptrace程序379
10.5.3使用strace的系统调用跟踪380
10.6本章小结381