自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (6)
  • 收藏
  • 关注

转载 nginx+uwsgi+flask部署

为什么要使用nginx+uwsgi+flask因为标准python只能是单线程,无法并发,而uwsgi/gunicorn通过多进程池达成了并发。安装uwsgi安装uwsgi之前先安装python-devel(centos下)使用pip install uwsgi,即可安装uwsgi使用命令find / -name uwsgi可以查看uwsgi的地点使用uwsgi --version可以查看uwsgi的版本2.0.17.1uwsgi有多种配置可用:1.ini2.xml3.json4.y

2021-02-21 18:47:09 806

转载 JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释

jvm区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(java虚拟机栈)、Local Method Statck(本地方法栈)。HotSpot虚拟机GC算法采用分代收集算法:1、一个人(对象)出来(new 出来)后会在Eden Space(伊甸园)无忧无虑的生活,直到GC到

2020-11-02 23:26:11 1341

原创 Jmeter xml报告字段说明

最近在搞jmeter,生成xml的测试报告,对报告字段进行解释,可能是自己不会找,网上资源不多,好不容易找到的,记录下来:感谢博主:http://blog.163.com/zhang_jing/blog/static/4684588620113821922909/t表示从请求开始到响应结束的时间 lt表示整个的空闲时间 ts表示访问的时刻 s表示返回的结果true表示成功,false表示失败 lb表示标题 rc表示返回的响应码 rm表示响应信息 tn表示线程的名字“1-138.

2020-06-17 18:16:18 692 1

转载 MySQL数据库日志介绍

第1章 binlog日志1.1 binlog日志介绍 MySQL的binlog日志作用是用来记录mysql内部增删改等对mysql数据库有更新的内容的记录(对数据库的改动),对数据库查询的语句如show,select开头的语句,不会被binlog日志记录。binlog日志只要用于数据库的增量恢复,以及主从复制。mysql数据目录下的如下文件就是mysql的binlog日志:<span style="color:black"><code class="languag...

2020-05-10 23:46:08 587 1

原创 Jmeter命令行选项

【命令行详解】-f, --forceDeleteResultFile 强力删除已经存在的测试报告和web报告在运行测试之前-i, --jmeterlogconf <argument> jmeter日志配置文件

2020-05-07 23:52:36 202

转载 jmeter线程组---外部插件

jmeter线程组---外部插件原创paidaxing_dashu 最后发布于2019-03-25 14:15:32 阅读数 221 收藏展开文章目录一,外部插件线程组二,介绍1)bzm - Arrivals Thread Group(到达线程组)2)bzm - Free-Form Arrivals Thread Group(自由格式到达线程组)3)jp@gc - Steppin...

2020-02-29 17:19:21 697

转载 Jmeter监视器

以下是下载了服务器监控插件的各个组件的功能介绍,有助于以后jmeter的性能测试1.jp@gc - Actiive Threads Over Time:不同时间的活动用户数量展示(图表)当前的时间间隔是1毫秒,在setting中可以设置时间间隔以及其他的参数2.jp@gc - AutoStop Listener :自动停止监听器设置当发生某些预期之外的情况时自动停止测试...

2020-02-29 17:18:36 670

原创 AUM、MAU与DAU

“AUM”:即“资产管理规模”,是衡量金融机构资产管理业务规模的指标,具体到零售业务,即指“零售资产管理规模”。“MAU“,指的是"月度活跃用户数量",它由两部分组成,一部分是客户数量,一部分是客户的活跃度,两者缺一不可。DAU(Daily Active User)日活跃用户数量。常用于反映网站、互联网应用或网络游戏的运营情况。通常DAU会结合MAU(月活跃用户数量)一起使用,这两个指标一...

2020-02-27 15:05:06 16161

转载 硬件均衡负载与软件均衡负载

数据流量过大的网络中,单一设备一般是无法承担的,需要多台设备进行数据分流,而负载均衡器就是起到把数据分流到多台设备的作用。负载均衡也分了不少技术,用以满足不同的需求,有软/硬件负载均衡、本地/全局负载均衡、更高网络层负载均衡,以及链路聚合技术。我们用了软负载均衡,也用了硬件负载均衡,下面我们说说这两个各自的千秋。一.软件负载均衡指在服务器的操作系统上,安装软件,来实现负载均衡,...

2020-02-27 14:20:37 1637

转载 机器学习特征处理——独热编码(One-Hot Encoding)

在机器学习算法中,常会遇到分类特征是离散的,无序的。例如:性别有男、女,城市有北京,上海,深圳等。性别特征:["男","女"] => 0,1地区特征:["北京","上海,"深圳"] => 0,1,2工作特征:["演员","厨师","公务员","工程师","律师"] => 0,1,2,3,4比如,样本(女,北京,工程师)=>(1,0,3),但是,这样的特...

2020-02-10 23:24:32 2096

转载 Redis集群分片原理

Redis的分片机制Redis集群分片原理Redis集群方案总结Redis Cluster搭建高可用Redis服务器集群Redis Cluster 搭建高可用Redis服务器集群2是否使用过Redis集群,集群的原理是什么?Redis Sentinal着眼于高可用,在master宕机时会自动将slave提升为master,继续提供服务。Redis Cl...

2019-12-25 17:23:24 382

转载 tensorflow的reshape操作tf.reshape()

在处理图像数据的时候总会遇到输入图像的维数不符合的情况,此时tensorflow中reshape()就很好的解决了这个问题。更为详细的可以参考官方文档说明:numpy.reshapereshape()的括号中所包含的参数有哪些呢?常见的写法有tf.reshape((28,28)):tf.reshape(tensor,shape,name=None) 1函数的作用是将ten...

2019-07-15 22:26:26 737

转载 ./configure, make, sudo make install 的含义

一般编译安装会用到。将压缩包example.tar.gz解压到onePackage下example, 在onePackage下新建install文件夹。在终端中执行,1) 配置sudo ./configure –prefix=....onePackage/install2) 编译sudo make3) 安装sudo make install接下来介绍一下各个命令的含义1) ...

2019-06-28 15:29:41 10368

转载 原子操作和非原子操作

今天在学习多线程时突然想到一个问题,CPU的CAS操作保证了原子性,但是现在的CPU都是多核心可以并行运算的多核CPU了,那CPU怎么实现并行运算时而又能保证对内存操作的原子性呢?于是查阅了一些资料,有了以下了解: 所谓原子操作,就是”不可中断的一个或一系列操作”1.单核CPU的原子操作 在单核CPU中, 能够在一个指令中完成的操作都可以看作为原子操作, 因为中断只发生在...

2019-06-26 21:46:32 3308

转载 python多维数组切片,实例

文章目录 x[n,:]、x[:,n]、x[m:n,:]、x[:,m:n] x[n,::]、x[:,n:]、x[::,n]、x[:,:,n]、x[m:n,::]、x[:,m:n:]、x[::,m:n]、x[:,:,m:n]如果对象是二维数组,则切片应当是x[:]的形式,里面有一个冒号,冒号之前和之后分别表示对象的第0个维度和第1个维度;如果对象是三维数组,则切片应当是x[::...

2019-06-24 22:58:05 881

转载 Jenkins构建访问代码仓库设置

jenkins credentialsjenkins使用2种认证方式在服务器git仓库pull代码:第一种ssh方式,通过ssh的密钥或者是远程账号密码进行认证。登陆 jenkins 服务器,切换到 jenkins 用户,生成 ssh key,然后把 公钥添加到 git 服务器上。jenkins 添加认证:jenkins project credentials写法:g...

2019-06-18 16:02:52 2164

转载 git配置多个SSH Key

1 步骤我们假设原来在~/.ssh目录下已经生成了一个密钥对:id_rsaid_rsa.pub1.1 生成第二个key接下来我们生成第二个ssh key:ssh-keygen -t rsa -C "[email protected]"这里不要一路回车,我们自己手动填写保存路径:Generating public/private rsa key pair.En...

2019-06-14 17:55:50 203

转载 pytest-allure-poco之allure详细用法

allure简介  Allure Framework是一个灵活的轻量级多语言测试报告工具。貌似是目前最漂亮的一个报告工具python版本及必要库或工具python 3.7pytest 4.3.1allure-pytest 2.6.1 (注意:这里不要使用pytest-allure-adaptor,踩过坑。使用pytest-allure-adaptor时因为一些兼容问题发现...

2019-06-13 22:28:31 3136 1

转载 Appium获取appPackage和appActivity

appPackage和appActivity 进行appium自动化测试非常重要的两个参数,我们所测试的APP不同,这两个参数肯定也是不一样的。那如何快速的获取这APP的这两个参数呢?我这里介绍五个方法。方法一(最简单有效的方法)通过cmd命令,前提是先打开手机中你要获取包名的APP1. adb shell2. dumpsys activity | grep mFocusedAc...

2019-05-07 11:20:04 238

转载 fiddler远程抓包

 Fiddler是一个http调试代理,它能 够记录所有的你电脑和互联网之间的http通讯,Fiddler 可以也可以让你检查所有的http通讯,设置断点,以及Fiddle 所有的“进出”的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。 Fiddler 要比其他的网络调试器要更加简单,因为它仅仅暴露http通讯还有提供一个用户友好的格式。一、Fiddler...

2019-05-06 15:15:51 3088 1

转载 python中的random使用

(1)random.seed([x])伪随机数生成模块。如果不提供 seed,默认使用系统时间。使用相同的 seed,可以获得完全相同的随机数序列,常用于算法改进测试。>>>from random import *>>>a = Random(); a.seed(1)>>>[a.randint(1, 100) for i in rang...

2019-05-05 22:23:57 1092

转载 什么是猴子补丁(monkey patch)

monkey patch指的是在运行时动态替换,一般是在startup的时候.用过gevent就会知道,会在最开头的地方gevent.monkey.patch_all();把标准库中的thread/socket等给替换掉.这样我们在后面使用socket的时候可以跟平常一样使用,无需修改任何代码,但是它变成非阻塞的了.之前做的一个游戏服务器,很多地方用的import json,后来发现ujson...

2019-04-21 21:18:40 356

转载 sqlAlchemy三种排序方式

sqlalceemy排序方式有三种,接下来分别讲讲这三种的用法。第一种:直接在查询语句中使用order_by现在就用第一种方法实现刚才所说(最新注册的用户的拍在前面),最新注册的也就是时间最大的。代码如下 results = session.query(User).order_by(User.create_time.desc()).all() print(results)...

2019-04-12 16:11:46 3505

转载 多线程还是多进程的选择及区别

鱼还是熊掌:浅谈多进程多线程的选择关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害。经常在网络上看到有的XDJM问“多进程好还是多线程好?”、“Linux下用多进程还是多线程?”等等期望一劳永逸的问题,我只能说:没有最好,只有更...

2019-04-12 10:04:01 89

转载 MySql查询select from 两个表与left join on的区别

join查询会包含含有null的结果

2019-03-26 11:07:43 5554

转载 使用dao层对数据库进行增删改查的优势

接口是为了屏蔽不同数据库的JDBC实现差异而出现的。以常见的系统组织结构为例,管理系统里有一个部门department表用于存放部门信息,因为部门下面可能有子部门所以表中的字段要定义成类似树形结构的方式(parentId呀什么的)。这时我们想在java中用sql去查询指定部门下的数据,你就要考虑不同数据库的SQL语句的问题了:Oracle sql提供了树查询的方法,你只需要发一句sql就能查...

2019-03-07 13:06:12 1775

转载 Python魔法模块之contextlib

      今天在逛stackoverflow的时候,发现了contextlib这个模块的的作用!而且今天成功将这个模块应用到了项目中,简直爽的飞起!特此整理一篇博客,分享给大家!一.引言     我们在操作文件时最常用的就是使用with上下文管理器,这样会让代码的可读性更强而且错误更少,例如:with open('/tmp/a.txt', a) as file_obj: f...

2019-02-16 14:13:17 202

转载 IntelliJ IDEA中各个文件图标的含义

在咱们使用 IntelliJ IDEA 创建文件的时候, 随着文件类型的不同,其显示的图标也不相同。例如,咱们分别创建 Java、Interface、Enum 和 JavaScript 文件,如下图所示:如上图所示,显然不同的文件类型,其显示的图标也不相同。为了能够更好的掌握 IntelliJ IDEA,在这里,咱们更进一步,了解一下 IntelliJ IDEA 各种文件类型的图标,主要分...

2019-01-15 16:22:37 9795

转载 Mongodb启动命令mongod参数说明

Mongodb启动命令mongod参数说明mongod的主要参数有: 基本配置-------------------------------------------------------------------------------- --quiet # 安静输出 --port arg # 指定服务端口号,默认端口27017 --bind_ip arg #...

2019-01-06 12:42:09 268 2

转载 【docker】CMD ENTRYPOINT 的使用方法

昨天用Dockerfile来启动mongodb的集群,启动参数--replSet死活没执行,最后就决定研究一哈cmd和entrypoint。但是上网看了一些资料个人觉得讲的不好,还是没有说出根本的东西,决定自己研究并且整理一哈。首先上docker官网:https://docs.docker.com/engine/reference/builder/#cmd感觉官网关于这两个命令讲的简直不要...

2019-01-05 14:06:57 1726

转载 使用docker run的选项以覆盖Dockerfile中的设置详解

通常,我们首先定义Dockerfile文件,然后通过docker build命令构建得到镜像文件。然后,才能够基于镜像文件通过docker run启动一个容器的实例。那么在启动一个容器的时候,就可以改变镜像文件中的一些参数,而镜像文件中的这些参数往往是通过Dockerfile文件定义的。但并非Dockerfile文件中的所有定义都可以在启动容器的时候被重新定义。docker run不能覆盖...

2019-01-04 17:30:20 1276

转载 Mysql 8.0.13配置远程用户连接信息

一、前期准备1、虚拟机/物理机    mysql环境(非本机)2、本机 navicat软件(验证远程连接)二 、mysql配置1、在远程主机的本机   使用root用户连接mysqlmysql -u root -p备注 : mysql -u 最高权限用户名 -p   再输入密码进入2、设置用户配置项(1) 查看用户信息select host,user,plugin,...

2019-01-04 16:19:13 943

Bootstrap用户手册:设计响应式网站.pdf

Bootstrap是Mark Otto和Jacob Thornton在Twitter公司共同开发的一个开源网站开发框架,2011年8月发布至今已经成为Github上最受关注的项目。从最初CSS驱动的项目到目前内置很多JavaScript插件和图标,并且涵盖表单和按钮元素、支持响应式Web设计,所有这一切让Web开发有了前瞻性的设计和开发基础,能够大幅提升开发效率,已被很多流行网站采用。本书全面介绍了Bootstrap为前端开发提供的所有工具,包括网格布局系统、预定义CSS样式、内置界面组件和交互式JavaScript插件。 本书内容系统、结构完整、讲解简明、方便实用,是前端开发人员使用Bootstrap的最佳参考书,适合所有前端开发人员和希望了解Bootstrap的读者阅读参考。

2019-10-05

Flask Web开发 基于Python的Web应用开发实战 第2版【美】米格尔·格林贝格 著 【中文版】【文字版】【带书签】

目录 前言 xi 第 一部分 Flask简介 第 1章 安装 3 1.1 创建应用目录 4 1.2 虚拟环境 4 1.3 在Python 3中创建虚拟环境 4 1.4 在Python 2中创建虚拟环境 5 1.5 使用虚拟环境 5 1.6 使用pip安装Python包 6 第 2章 应用的基本结构 7 2.1 初始化 7 2.2 路由和视图函数 7 2.3 一个完整的应用 9 2.4 Web开发服务器 9 2.5 动态路由 10 2.6 调试模式 11 2.7 命令行选项 13 2.8 请求–响应循环 14 2.8.1 应用和请求上下文 14 2.8.2 请求分派 16 2.8.3 请求对象 16 2.8.4 请求钩子 17 2.8.5 响应 18 2.9 Flask扩展 19 第3章 模板 20 3.1 Jinja2模板引擎 20 3.1.1 渲染模板 21 3.1.2 变量 21 3.1.3 控制结构 22 3.2 使用Flask-Bootstrap集成Bootstrap 24 3.3 自定义错误页面 27 3.4 链接 29 3.5 静态文件 30 3.6 使用Flask-Moment本地化日期和时间 31 第4章 Web表单 34 4.1 配置 34 4.2 表单类 35 4.3 把表单渲染成HTML 37 4.4 在视图函数中处理表单 38 4.5 重定向和用户会话 40 4.6 闪现消息 42 第5章 数据库 44 5.1 SQL数据库 44 5.2 NoSQL数据库 45 5.3 使用SQL还是NoSQL 46 5.4 Python数据库框架 46 5.5 使用Flask-SQLAlchemy管理数据库 47 5.6 定义模型 48 5.7 关系 49 5.8 数据库操作 51 5.8.1 创建表 51 5.8.2 插入行 51 5.8.3 修改行 53 5.8.4 删除行 53 5.8.5 查询行 53 5.9 在视图函数中操作数据库 55 5.10 集成Python shell 56 5.11 使用Flask-Migrate实现数据库迁移 56 5.11.1 创建迁移仓库 57 5.11.2 创建迁移脚本 57 5.11.3 更新数据库 58 5.11.4 添加几个迁移 59 第6章 电子邮件 60 第7章 大型应用的结构 65 7.1 项目结构 65 7.2 配置选项 66 7.3 应用包 67 7.3.1 使用应用工厂函数 68 7.3.2 在蓝本中实现应用功能 69 7.4 应用脚本 71 7.5 需求文件 71 7.6 单元测试 72 7.7 创建数据库 74 7.8 运行应用 74 第二部分 实例:社交博客应用 第8章 用户身份验证 77 8.1 Flask的身份验证扩展 77 8.2 密码安全性 77 8.3 创建身份验证蓝本 80 8.4 使用Flask-Login验证用户身份 81 8.4.1 准备用于登录的用户模型 82 8.4.2 保护路由 83 8.4.3 添加登录表单 83 8.4.4 登入用户 85 8.4.5 登出用户 86 8.4.6 理解Flask-Login的运作方式 86 8.4.7 登录测试 87 8.5 注册新用户 88 8.5.1 添加用户注册表单 88 8.5.2 注册新用户 90 8.6 确认账户 90 8.6.1 使用itsdangerous生成确认令牌 90 8.6.2 发送确认邮件 92 8.7 管理账户 95 第9章 用户角色 97 9.1 角色在数据库中的表示 97 9.2 赋予角色 100 9.3 检验角色 101 第 10章 用户资料 104 10.1 资料信息 104 10.2 用户资料页面 105 10.3 资料编辑器 107 10.3.1 用户级资料编辑器 107 10.3.2 管理员级资料编辑器 109 10.4 用户头像 111 第 11章 博客文章 115 11.1 提交和显示博客文章 115 11.2 在资料页中显示博客文章 118 11.3 分页显示长博客文章列表 118 11.3.1 创建虚拟博客文章数据 119 11.3.2 在页面中渲染数据 120 11.3.3 添加分页导航 121 11.4 使用Markdown和Flask-PageDown支持富文本文章 123 11.4.1 使用Flask-PageDown 124 11.4.2 在服务器端处理富文本 125 11.5 博客文章的固定链接 126 11.6 博客文章编辑器 128 第 12章 关注者 130 12.1 再论数据库关系 130 12.1.1 多对多关系 130 12.1.2 自引用关系 132 12.1.3 高级多对多关系 132 12.2 在资料页面中显示关注者 135 12.3 使用数据库联结查询所关注用户的文章 137 12.4 在首页显示所关注用户的文章 139 第 13章 用户评论 143 13.1 评论在数据库中的表示 143 13.2 提交和显示评论 144 13.3 管理评论 146 第 14章 应用编程接口 150 14.1 REST简介 150 14.1.1 资源就是一切 151 14.1.2 请求方法 151 14.1.3 请求和响应主体 152 14.1.4 版本 153 14.2 使用Flask实现REST式Web服务 153 14.2.1 创建API蓝本 153 14.2.2 错误处理 154 14.2.3 使用Flask-HTTPAuth验证用户身份 156 14.2.4 基于令牌的身份验证 158 14.2.5 资源和JSON的序列化转换 159 14.2.6 实现资源的各个端点 161 14.2.7 分页大型资源集合 163 14.2.8 使用HTTPie测试Web服务 164 第三部分 成功在望 第 15章 测试 169 15.1 获取代码覆盖度报告 169 15.2 Flask测试客户端 172 15.2.1 测试Web应用 172 15.2.2 测试Web服务 175 15.3 使用Selenium进行端到端测试 176 15.4 值得测试吗 180 第 16章 性能 181 16.1 在日志中记录影响性能的缓慢数据库查询 181 16.2 分析源码 183 第 17章 部署 184 17.1 部署流程 184 17.2 把生产环境中的错误写入日志 185 17.3 云部署 186 17.4 Heroku平台 186 17.4.1 准备工作 187 17.4.2 使用heroku local测试 193 17.4.3 执行git push命令部署 194 17.4.4 升级后重新部署 195 17.5 Docker容器 195 17.5.1 安装Docker 195 17.5.2 构建容器映像 196 17.5.3 运行容器 199 17.5.4 审查运行中的容器 200 17.5.5 把容器映像推送到外部注册处 200 17.5.6 使用外部数据库 201 17.5.7 使用Docker Compose编排容器 202 17.5.8 清理旧容器和映像 205 17.5.9 在生产环境中使用Docker 205 17.6 传统部署方式 206 17.6.1 架设服务器 206 17.6.2 导入环境变量 207 17.6.3 配置日志 207 第 18章 其他资源 209 18.1 使用集成开发环境 209 18.2 寻找Flask扩展 209 18.3 寻求帮助 210 18.4 参与Flask社区 210 作者简介 211 关于封面 211

2019-03-06

Jenkins权威指南.2016【美】约翰·弗格森·斯马特(带书签)(文字版)

目录 序xvii 前言xix 第1章Jenkins简介1 简介1 持续集成基础1 Jenkins简介(néeHudson)3 从Hudson到Jenkins——一个简短的故事3 应该使用Jenkins还是Hudson4 引进持续集成到你的公司5 阶段1——无构建服务器5 阶段2——夜间构建6 阶段3——夜间构建加自动化测试6 阶段4——加入度量指标6 阶段5——更认真地对待测试6 阶段6——自动化验收测试和自动化部署7 阶段7——持续部署7 接下来做什么呢7 第2章迈入Jenkins的第一步9 简介9 准备环境9 安装Java10 安装Git11 创建GitHub账号11 配置SSH密钥11 创建代码库分支12 启动Jenkins13 配置工具17 配置你的Maven设置18 配置JDK19 通知20 设置Git20 你的第一个Jenkins构建作业21 你的第一个构建作业26 更多的报告——显示Javadoc33 添加代码覆盖率和其他度量34 小结40 第3章安装Jenkins41 简介41 下载和安装Jenkins41 为Jenkins准备好构建服务器44 Jenkins主目录45 在Debian或者Ubuntu系统上安装Jenkins47 在RedHat、Fedora或者CentOS上安装Jenkins48 在SUSE或者OpenSUSE上安装Jenkins49 以单机应用形式运行Jenkins49 基于Apache服务器运行Jenkins53 在应用服务器上运行Jenkins54 内存方面的考虑54 安装Jenkins为一个Windows服务55 Jenkins主目录里有什么59 备份Jenkins数据62 升级Jenkins安装63 小结64 第4章配置Jenkins服务器65 简介65 配置面板——Manage Jenkins界面65 配置系统环境68 配置全局属性69 配置JDK70 配置构建工具72 Maven73 Ant74 Shell脚本75 配置版本控制工具75 配置Subversion75 配置CVS75 配置邮件服务器76 配置代理77 小结78 第5章设置构建作业79 简介79 Jenkins构建作业79 创建自由式构建作业80 通用选项81 高级项目选项82 配置源代码管理83 用Subversion工作84 使用Git86 Build Triggers96 构建作业完成后触发下一个97 计划构建作业97 轮询SCM98 远程触发构建99 手工构建作业101 构建步骤101 Maven构建步骤102 Ant构建步骤103 执行Shell或Windows批处理命令104 在构建中使用Jenkins环境变量105 运行Groovy脚本108 用其他语言构建项目110 构建后的操作110 报告测试结果110 归档构建产物110 通知114 构建其他的项目114 运行新的构建作业115 使用Maven构建作业115 每当SNAPSHOT(快照)依赖被建立时都要进行构建116 配置Maven构建116 构建后期操作118 部署到企业仓库管理器118 部署到商业企业仓库管理器122 管理模块122 Maven构建作业中额外的构建步骤122 用其他语言使用Jenkins124 用Grails构建项目124 用Gradle构建项目126 用Visual Studio MSBuild构建项目129 用NAnt构建项目130 使用Ruby和Ruby on Rails构建项目130 小结132 第6章自动化测试133 简介133 自动化单元和集成测试134 在Jenkins中配置测试报告135 显示测试结果137 忽略测试140 代码覆盖率142 使用Cobertura测量代码覆盖率143 使用Clover测量代码覆盖率152 自动化验收测试154 JMeter自动化性能测试157 请求帮助!我的测试运行得太慢了165 添加更多的硬件166 运行更少的集成/功能测试166 并行运行测试167 小结167 第7章Jenkins安全169 简介169 激活Jenkins安全169 Jenkins安全实例170 安全域——定义Jenkins用户171 使用Jenkins内置用户数据库171 使用LDAP仓库174 使用微软活动目录176 使用UNIX用户和用户组177 Servlet容器授权177 使用Atlassian Crowd178 与其他系统集成179 授权——谁可以做什么181 安全矩阵181 基于项目的安全185 基于角色的安全188 审计——跟踪用户行为190 小结193 第8章通知195 简介195 电子邮件通知195 更高级的电子邮件通知197 声明构建200 RSS订阅202 构建分发器202 即时消息204 用Jabber进行IM通知204 使用IRC的IM通知209 IRC通知209 桌面通知器212 通过Notifo通知213 移动通知216 短信通知216 制造噪声219 极端反馈设备221 小结222 第9章代码质量225 简介225 构建过程中的代码质量226 受欢迎的Java和Groovy代码质量分析工具227 Checkstyle227 PMD/CPD230 FindBugs235 CodeNarc237 使用Violations插件报告代码质量问题238 与自由风格下的构建作业一起工作239 使用Maven构建作业242 使用Checkstyle、PMD和FindBugs报告244 报告代码复杂度247 报告未完成的任务248 集成Sonar249 小结253 第10章高级构建255 简介255 参数化构建作业255 创建一个参数化构建作业256 为构建适配参数化构建脚本257 高级参数类型259 使用Subversion标签构建260 使用Git标签构建261 远程启动参数化构建作业262 参数化构建作业历史263 参数化触发263 多重结构的构建作业266 搭建多重结构构建266 配置从节点轴267 配置JDK轴268 自定义轴268 执行多重结构构建268 自动生成Maven构建作业271 配置作业271 使用继承复用作业配置273 插件支持275 自由式作业278 构建协作278 在Jenkins中并行构建279 依赖关系图279 连接280 Locks and Latches插件281 构建管道及优化282 通过M2Release插件管理Maven版本发布283 复制构建产物286 构建进阶289 汇总测试结果295 构建管道296 小结299 第11章分布式构建301 简介301 Jenkins分布式构建架构301 Jenkins主/从策略302 主节点使用SSH启动从节点代理303 使用Java Web Start手工启动从代理307 把Jenkins从节点安装为Windows服务309 无主节点模式启动从节点310 以远程服务方式启动Windows从节点310 把构建作业与一个或一组从节点关联311 节点监控313 云计算314 使用Amazon EC2314 使用CloudBees DEV@cloud服务318 小结319 第12章自动化部署和持续交付321 简介321 实现自动化和持续部署322 部署脚本322 数据库更新322 冒烟测试325 回滚更改326 部署到应用程序服务器上326 部署一个Java应用327 部署像Ruby和PHP这样基于脚本的应用程序336 小结339 第13章Jenkins的维护341 简介341 监控磁盘空间341 使用Disk Usage插件343 磁盘使用及Jenkins Maven项目类型344 监控服务器负载345 备份配置346 Jenkins备份基础346 使用备份插件348 更为轻量的自动备份350 构建作业归档350 构建迁移351 小结355 附录A自动化你的单元和集成测试357 索引367

2018-08-06

Python参考手册 第4版 修订版【美】大卫 M.比兹利 (作者), 谢俊 杨越 高伟 (译者)(高清)(带书签)

目录 目录 第 一部分 Python语言 第 1章 Python简介 2 1.1 运行Python 2 1.2 变量和算术表达式 3 1.3 条件语句 5 1.4 文件输入和输出 6 1.5 字符串 7 1.6 列表 8 1.7 元组 9 1.8 集合 10 1.9 字典 11 1.10 迭代与循环 12 1.11 函数 13 1.12 生成器 14 1.13 协程 15 1.14 对象与类 16 1.15 异常 17 1.16 模块 18 1.17 获得帮助 19 第 2章 词法约定和语法 20 2.1 行结构和缩进 20 2.2 标识符和保留字 21 2.3 数字字面量 21 2.4 字符串字面量 22 2.5 容器 23 2.6 运算符、分隔符及特殊符号 24 2.7 文档字符串 24 2.8 装饰器 24 2.9 源代码编码 25 第3章 类型与对象 26 3.1 术语 26 3.2 对象的标识与类型 26 3.3 引用计数与垃圾回收 27 3.4 引用与复制 28 3.5 第 一类对象 29 3.6 表示数据的内置类型 30 3.6.1 None类型 30 3.6.2 数值类型 31 3.6.3 序列类型 31 3.6.4 映射类型 35 3.6.5 集合类型 36 3.7 表示程序结构的内置类型 38 3.7.1 可调用类型 38 3.7.2 类、类型与实例 40 3.7.3 模块 41 3.8 解释器内部使用的内置类型 41 3.8.1 代码对象 41 3.8.2 帧对象 42 3.8.3 跟踪对象 42 3.8.4 生成器对象 43 3.8.5 切片对象 43 3.8.6 Ellipsis对象 43 3.9 对象行为与特殊方法 44 3.9.1 对象的创建与销毁 44 3.9.2 对象字符串表示 44 3.9.3 对象比较与排序 45 3.9.4 类型检查 46 3.9.5 属性访问 46 3.9.6 属性包装与描述符 46 3.9.7 序列与映射方法 47 3.9.8 迭代 48 3.9.9 数学操作 48 3.9.10 可调用接口 50 3.9.11 上下文管理协议 50 3.9.12 对象检查与dir() 51 第4章 运算符与表达式 52 4.1 数值操作 52 4.2 序列操作 53 4.3 字符串格式化 56 4.4 高 级字符串格式化 57 4.5 字典操作 59 4.6 集合操作 60 4.7 增量赋值 60 4.8 属性(.)运算符 61 4.9 函数调用()运算符 61 4.10 转换函数 61 4.11 布尔表达式与真值 62 4.12 对象等同性与标识 63 4.13 运算优先级 63 4.14 条件表达式 64 第5章 程序结构与控制流 65 5.1 程序结构与执行 65 5.2 执行条件语句 65 5.3 循环与迭代 66 5.4 异常 68 5.4.1 内置异常 70 5.4.2 定义新异常 71 5.5 上下文管理器与with语句 72 5.6 断言与__debug__ 73 第6章 函数与函数式编程 75 6.1 函数 75 6.2 参数传递与返回值 77 6.3 作用域规则 78 6.4 作为对象与闭包的函数 79 6.5 装饰器 82 6.6 生成器与yield 83 6.7 协程与yield表达式 85 6.8 使用生成器与协程 87 6.9 列表推导 89 6.10 生成器表达式 90 6.11 声明式编程 91 6.12 lambda运算符 92 6.13 递归 92 6.14 文档字符串 93 6.15 函数属性 94 6.16 eval&#40;&#41;、exec&#40;&#41;和compile()函数 94 第7章 类与面向对象编程 96 7.1 class语句 96 7.2 类实例 97 7.3 作用域规则 97 7.4 继承 98 7.5 多态动态绑定和鸭子类型 100 7.6 静态方法和类方法 101 7.7 特性 102 7.8 描述符 104 7.9 数据封装和私有属性 105 7.10 对象内存管理 106 7.11 对象表示和属性绑定 108 7.12 __slots__ 109 7.13 运算符重载 110 7.14 类型和类成员测试 111 7.15 抽象基类 113 7.16 元类 114 7.17 类装饰器 117 第8章 模块、包与分发 118 8.1 模块与import语句 118 8.2 从模块导入选定符号 119 8.3 以主程序的形式执行 120 8.4 模块搜索路径 121 8.5 模块加载和编译 121 8.6 模块重新加载和卸载 122 8.7 包 123 8.8 分发Python程序和库 125 8.9 安装第三方库 127 第9章 输入与输出 129 9.1 读取命令行选项 129 9.2 环境变量 130 9.3 文件和文件对象 130 9.4 标准输入、输出和错误 133 9.5 print语句 133 9.6 print()函数 134 9.7 文本输出中的变量插入 134 9.8 生成输出 135 9.9 Unicode字符串处理 136 9.10 Unicode I/O 137 9.10.1 Unicode数据编码 138 9.10.2 Unicode字符特性 140 9.11 对象持久化与pickle模块 140 第 10章 执行环境 142 10.1 解释器选项与环境 142 10.2 交互式会话 144 10.3 启动Python应用程序 145 10.4 站点配置文件 145 10.5 用户站点包 146 10.6 启用新功能 146 10.7 程序终止 147 第 11章 测试、调试、探查与调优 149 11.1 文档字符串和doctest模块 149 11.2 单元测试和unittest模块 151 11.3 Python调试器和pdb模块 153 11.3.1 调试器命令 153 11.3.2 从命令行进行调试 156 11.3.3 配置调试器 156 11.4 程序探查 156 11.5 调优与优化 157 11.5.1 进行计时测量 157 11.5.2 进行内存测量 158 11.5.3 反汇编 158 11.5.4 调优策略 159 第 二部分 Python库 第 12章 内置函数和异常 164 12.1 内置函数和类型 164 12.2 内置异常 172 12.2.1 异常基类 172 12.2.2 异常实例 173 12.2.3 预定义的异常类 173 12.3 内置警告 176 12.4 future_builtins 176 第 13章 Python运行时服务 178 13.1 atexit 178 13.2 copy 178 13.3 gc 179 13.4 inspect 180 13.5 marshal 183 13.6 pickle 184 13.7 SYS 186 13.7.1 变量 186 13.7.2 函数 189 13.8 traceback 191 13.9 types 192 13.10 warnings 193 13.11 weakref 195 13.11.1 示例 196 13.11.2 注意 196 第 14章 数学运算 197 14.1 decimal 197 14.1.1 Decimal对象 197 14.1.2 Context对象 198 14.1.3 函数和常量 200 14.1.4 示例 201 14.1.5 注意 202 14.2 fractions 203 14.3 math 204 14.4 numbers 205 14.5 random 206 14.5.1 种子和初始化 206 14.5.2 随机整数 206 14.5.3 随机序列 207 14.5.4 实值随机分布 207 14.5.5 注意 208 第 15章 数据结构、算法与代码简化 209 15.1 abc 209 15.2 array 210 15.3 bisect 212 15.4 collections 213 15.4.1 deque和defaultdict 213 15.4.2 命名元组 214 15.4.3 抽象基类 216 15.5 contextlib 217 15.6 functools 218 15.7 heapq 219 15.8 itertools 220 15.9 operator 222 第 16章 字符串和文本处理 225 16.1 codecs 225 16.1.1 低级codecs接口 225 16.1.2 I/O相关函数 226 16.1.3 有用的常量 227 16.1.4 标准编码 227 16.1.5 注意 228 16.2 re 228 16.2.1 模式语法 228 16.2.2 函数 229 16.2.3 正则表达式对象 231 16.2.4 匹配对象 231 16.2.5 示例 232 16.2.6 注意 233 16.3 string 233 16.3.1 常量 233 16.3.2 Formatter对象 233 16.3.3 Template字符串 235 16.3.4 实用工具函数 235 16.4 struct 235 16.4.1 打包和解包函数 236 16.4.2 Struct对象 236 16.4.3 格式编码 236 16.4.4 注意 237 16.5 unicodedata 238 第 17章 Python数据库访问 241 17.1 关系数据库API规范 241 17.1.1 连接 241 17.1.2 Cursor 242 17.1.3 生成查询 243 17.1.4 类型对象 244 17.1.5 错误处理 245 17.1.6 多线程 245 17.1.7 将结果映射到字典中 246 17.1.8 数据库API扩展 246 17.2 sqlite3模块 246 17.2.1 模块级函数 246 17.2.2 连接对象 248 17.2.3 游标和基本操作 250 17.3 DBM风格的数据库模块 252 17.4 shelve模块 253 第 18章 文件和目录处理 254 18.1 bz2 254 18.2 filecmp 255 18.3 fnmatch 256 18.4 glob 257 18.5 gzip 257 18.6 shutil 258 18.7 tarfile 259 18.7.1 异常 261 18.7.2 示例 262 18.8 tempfile 262 18.9 zipfile 263 18.10 zlib 266 第 19章 操作系统服务 268 19.1 Commands 268 19.2 ConfigParser、configparser 269 19.2.1 ConfigParser类 269 19.2.2 示例 270 19.2.3 注意 272 19.3 datetime 272 19.3.1 date对象 272 19.3.2 time对象 273 19.3.3 datetime对象 274 19.3.4 timedelta对象 275 19.3.5 涉及日期的数学运算 276 19.3.6 tzinfo对象 277 19.3.7 日期与时间解析 278 19.4 errno 278 19.4.1 POSIX错误代码 278 19.4.2 Windows错误代码 279 19.5 fcntl 280 19.5.1 示例 281 19.5.2 注意 281 19.6 io 282 19.6.1 基本I/O接口 282 19.6.2 原始I/O 282 19.6.3 缓存二进制I/O 283 19.6.4 文本I/O 285 19.6.5 open()函数 285 19.6.6 抽象基类 286 19.7 logging 286 19.7.1 日志记录级别 286 19.7.2 基本配置 286 19.7.3 Logger对象 288 19.7.4 处理器对象 292 19.7.5 消息格式化 294 19.7.6 各种实用工具函数 296 19.7.7 日志记录配置 296 19.7.8 性能考虑 299 19.7.9 注意 299 19.8 mmap 299 19.9 msvcrt 301 19.10 optparse 303 19.10.1 例子 305 19.10.2 注意 306 19.11 os 307 19.11.1 进程环境 307 19.11.2 文件创建与文件描述符 309 19.11.3 文件与目录 313 19.11.4 进程管理 316 19.11.5 系统配置 320 19.11.6 异常 321 19.12 os.path 321 19.13 signal 323 19.13.1 例子 325 19.13.2 注意 325 19.14 subprocess 325 19.14.1 例子 327 19.14.2 注意 328 19.15 time 328 19.16 winreg 330 第 20章 线程与并发 334 20.1 基本概念 334 20.2 并发编程与Python 335 20.3 multiprocessing 336 20.3.1 进程 336 20.3.2 进程间通信 337 20.3.3 进程池 343 20.3.4 共享数据与同步 345 20.3.5 托管对象 347 20.3.6 连接 352 20.3.7 各种实用工具函数 353 20.3.8 多进程处理的一般建议 353 20.4 threading 354 20.4.1 Thread对象 354 20.4.2 Timer对象 356 20.4.3 Lock对象 356 20.4.4 RLock对象 356 20.4.5 信号量与有边界的信号量 357 20.4.6 事件 358 20.4.7 条件变量 358 20.4.8 使用Lock 359 20.4.9 线程终止与挂起 360 20.4.10 实用工具函数 361 20.4.11 全局解释器锁 361 20.4.12 使用线程编程 361 20.5 queue、Queue 362 20.6 协程与微线程 364 第 21章 网络编程和套接字 365 21.1 网络编程基础 365 21.2 asynchat模块 367 21.3 asyncore模块 370 21.4 select 374 21.4.1 高 级模块功能 375 21.4.2 高 级异步I/O示例 375 21.4.3 异步联网的时机 381 21.5 socket 383 21.5.1 地址族 383 21.5.2 套接字类型 383 21.5.3 寻址 384 21.5.4 函数 385 21.5.5 异常 395 21.5.6 示例 395 21.5.7 注意 396 21.6 ssl 396 21.7 SocketServer 399 21.7.1 处理程序 399 21.7.2 服务器 400 21.7.3 定义自定义服务器 401 21.7.4 自定义应用服务器 403 第 22章 网络应用程序编程 404 22.1 ftplib 404 22.2 http包 407 …… 22.3 smtplib 418 22.4 urllib包 419 …… 22.5 xmlrpc包 427 …… 第 23章 Web编程 433 23.1 cgi 435 23.1.1 CGI编程建议 438 23.1.2 注意 439 23.2 cgitb 440 23.3 wsgiref 440 23.3.1 WSGI规范 440 23.3.2 wsgiref包 442 23.4 webbrowser 444 第 24章 网络数据处理和编码 445 24.1 base64 445 24.2 binascii 447 24.3 CSV 447 24.3.1 方言 449 24.3.2 示例 450 24.4 email包 450 24.4.1 解析电子邮件 450 24.4.2 编写电子邮件 453 24.4.3 注意 456 24.5 hashlib 456 24.6 hmac 456 24.7 HTMLParser 458 24.8 json 460 24.9 mimetypes 462 24.10 quopri 463 24.11 xml包 463 …… 第 25章 其他库模块 477 25.1 Python服务 477 25.2 字符串处理 478 25.3 操作系统模块 478 25.4 网络 478 25.5 网络数据处理 478 25.6 国际化 478 25.7 多媒体服务 479 25.8 其他 479 第三部分 扩展与嵌入 第 26章 扩展与嵌入Python 482 26.1 扩展模块 482 26.1.1 扩展模块原型 484 26.1.2 命名扩展模块 486 26.1.3 编译与打包扩展 486 26.1.4 从Python到C语言的类型转换 488 26.1.5 从C到Python的类型转换 492 26.1.6 给模块添加值 493 26.1.7 错误处理 494 26.1.8 引用计数 495 26.1.9 线程 496 26.2 嵌入Python解释器 496 26.2.1 嵌入模板 497 26.2.2 编译与链接 497 26.2.3 基本的解释器操作与设置 497 26.2.4 在C语言中访问Python 498 26.2.5 将Python对象转换为C对象 499 26.3 ctypes 500 26.3.1 加载共享库 500 26.3.2 外来函数 500 26.3.3 数据类型 501 26.3.4 调用外来函数 502 26.3.5 其他类型构造方法 503 26.3.6 实用工具函数 504 26.3.7 示例 505 26.4 高 级扩展与嵌入 506 26.5 Jython和IronPython 507 附录 Python 3 508

2018-06-23

Docker开发指南高清完整文字版(带书签)【英】Adrian Mouat 【译】黄彦邦

目录 前言xi 第一部分 背景与基础 第 1章何谓容器,为何需要它 3 1.1 容器与虚拟机的比较 4 1.2 Docker与容器 5 1.3 Docker的历史 7 1.4 插件与基础设施 8 1.564位Linux 9 第 2章安装 10 2.1 在Linux上安装Docker 10 2.1.1 将SELinux置于宽容模式下运行 11 2.1.2 不使用sudo命令执行Docker 11 2.2 在MacOS及Windows上安装Docker 12 2.3 快速确认 13 第 3章迈出第一步 15 3.1 运行第一个镜像 15 3.2 基本命令 16 3.3 通过Dockerfile创建镜像 20 3.4 使用寄存服务 22 3.5 使用Redis官方镜像 24 3.6 总结 27 第 4章Docker基本概念 28 4.1 Docker系统架构 28 4.1.1 底层技术 29 4.1.2 周边技术 30 4.1.3 Docker托管 31 4.2 镜像是如何生成的 32 4.2.1 构建环境的上下文 32 4.2.2 镜像层 33 4.2.3 缓存 35 4.2.4 基础镜像 35 4.2.5 Dockerfile指令 37 4.3 使容器与世界相连 39 4.4 容器互联 40 4.5 利用数据卷和数据容器管理数据 41 4.5.1 共享数据 43 4.5.2 数据容器 44 4.6 Docker常用命令 45 4.6.1 run命令 46 4.6.2 容器管理 48 4.6.3 Docker信息 50 4.6.4 容器信息 50 4.6.5 镜像管理 52 4.6.6 使用寄存服务器 54 4.7 总结 55 第二部分 Docker与软件生命周期 第 5章在开发中应用Docker 59 5.1 说声“HelloWorld!” 59 5.2 通过Compose实现自动化 67 5.3 总结 69 第 6章创建一个简单的Web应用 71 6.1 创建一个基本网页 72 6.2 利用现有镜像 73 6.3 实现缓存功能 78 6.4 微服务 81 6.5 总结 81 第 7章镜像分发 82 7.1 镜像及镜像库的命名方式 82 7.2 DockerHub 83 7.3 自动构建 85 7.4 私有分发 86 7.4.1 运行自己的寄存服务 86 7.4.2 商业寄存服务 92 7.5 缩减镜像大小 92 7.6 镜像出处 94 7.7 总结 94 第 8章Docker持续集成与测试 95 8.1 为identidock添加单元测试 95 8.2 创建Jenkins容器 100 8.3 推送镜像 106 8.3.1 给镜像正确的标签 106 8.3.2 准生产及生产环境 108 8.3.3 镜像数量激增的问题 108 8.3.4 使用Docker部署Jenkinsslaves 109 8.4 备份Jenkins数据 109 8.5 持续集成的托管解决方案 109 8.6 测试与微服务 110 8.7 总结 111 第 9章部署容器 113 9.1 通过DockerMachine配置资源 114 9.2 使用代理 117 9.3 执行选项 122 9.3.1 shell脚本 122 9.3.2 使用进程管理器(或用systemd控制所有进程) 124 9.3.3 使用配置管理工具 127 9.4 主机配置 130 9.4.1 选择操作系统 130 9.4.2 选择存储驱动程序 130 9.5 专门的托管方案 132 9.5.1 Triton 132 9.5.2 谷歌容器引擎 134 9.5.3 亚马逊EC2容器服务 135 9.5.4 GiantSwarm 136 9.6 持久性数据和生产环境容器 138 9.7 分享秘密信息 139 9.7.1 在镜像中保存秘密信息 139 9.7.2 通过环境变量传递密钥 139 9.7.3 通过数据卷传递密钥 140 9.7.4 使用键值存储 140 9.8 网络连接 141 9.9 生产环境的寄存服务 141 9.10 持续部署/交付 141 9.11 总结 142 第 10章日志记录和监控 143 10.1 日志记录 144 10.1.1 Docker默认的日志记录 144 10.1.2 日志汇总 145 10.1.3 使用ELK进行日志记录 146 10.1.4 通过syslog实现日志管理 155 10.1.5 从文件抓取日志 160 10.2 监控和警报 161 10.2.1 使用Docker工具进行监测 161 10.2.2 cAdvisor 162 10.2.3 集群解决方案 163 10.3 商用的监听及日志记录解决方案 166 10.4 总结 166 第三部分 工具和技术 第 11章联网和服务发现 169 11.1 大使容器 170 11.2 服务发现 173 11.2.1 etcd 173 11.2.2 SkyDNS 177 11.2.3 Consul 181 11.2.4 服务注册 185 11.2.5 其他解决方案 186 11.3 联网选项 187 11.3.1 网桥模式 187 11.3.2 主机模式 188 11.3.3 容器模式 188 11.3.4 未联网模式 188 11.4 全新的Docker联网功能 188 11.5 网络解决方案 190 11.5.1 Overlay 191 11.5.2 Weave 193 11.5.3 Flannel 196 11.5.4 Calico项目 201 11.6 总结 205 第 12章编排、集群和管理 207 12.1 集群和编排工具 208 12.1.1 Swarm 208 12.1.2 fleet 214 12.1.3 Kubernetes 219 12.1.4 Mesos和Marathon 226 12.2 容器管理平台 235 12.2.1 Rancher 236 12.2.2 Clocker 237 12.2.3 Tutum 238 12.3 总结 239 第 13章容器安全与限制容器 241 13.1 需要考虑的事项 242 13.2 纵深防御 244 13.3 如何保护identidock 245 13.4 以主机隔离容器 246 13.5 进行更新 246 13.6 镜像出处 249 13.6.1 Docker摘要 250 13.6.2 Docker的内容信任机制 250 13.6.3 可复制及可信任的Dockerfile 254 13.7 安全建议 256 13.7.1 设置用户 256 13.7.2 限制容器联网 257 13.7.3 删除setuid和setgid的二进制文件 258 13.7.4 限制内存使用 259 13.7.5 限制CPU使用 260 13.7.6 限制重新启动 261 13.7.7 限制文件系统 261 13.7.8 限制内核能力 262 13.7.9 应用资源限制 263 13.8 运行加固内核 264 13.9 Linux安全模块 265 13.9.1 SELinux 265 13.9.2 AppArmor 268 13.10 审核 268 13.11 事件响应 269 13.12 未来特性 269 13.13 总结 270 作者简介 271 关于封面 271

2018-06-09

Python基础教程(第3版)【译】[袁国忠]【挪】[Magnus Lie Hetland](带书签)

本书包括Python 程序设计的方方面面:首先,从Python 的安装开始,随后介绍了Python 的基础知识 和基本概念,包括列表、元组、字符串、字典以及各种语句;然后,循序渐进地介绍了一些相对高级的主 题,包括抽象、异常、魔法方法、属性、迭代器;此后,探讨了如何将Python 与数据库、网络、C 语言等 工具结合使用,从而发挥出Python 的强大功能,同时介绍了Python 程序测试、打包、发布等知识;最后, 作者结合前面讲述的内容,按照实际项目开发的步骤向读者介绍了10 个具有实际意义的Python 项目的开 发过程。 本书内容涉及的范围较广,既能为初学者夯实基础,又能帮助程序员提升技能,适合各个层次的 Python 开发人员阅读参考。

2018-04-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除