腾讯区块链白皮书(2018)
腾讯正式发布了区块链方案白皮书,旨在与合作伙伴共同推动可信互联网的发展,打造区块链的共赢生态。与此同时,具有自主知识产权的腾讯区块链行业解决方案也于官方网站正式发布。数字经济时代,腾讯区块链将以其高性能、高安全性、高速接入、高效运营等核心优势,在鉴证证明、智能合约、共享经济、数字资产等领域拥有多样化的应用前景,为合作伙伴提供金融级区块链基础设施的同时,也为用户提供更安全、平等的产品服务。
低功耗蓝牙开发权威指南 (带书签完整版PDF)
低功耗蓝牙开发权威指南通过与经典蓝牙作对比,详尽介绍了将深入影响下一次无线技术革命的低功耗蓝牙技术的产生、设计、工作原理及其良好的节能、抗干扰特性和灵活、简单的开发特点。本书分为四个部分,分别阐述了低功耗蓝牙技术及其控制器、主机的工作原理,以及应用程序的设计开发,适合从事低功耗蓝牙产品开发工作的工程师、应用程序开发人员、设计师或市场营销人员等各类读者阅读
目录
《低功耗蓝牙开发权威指南》
译者序
前言
第一部分 综 述
第1章 什么是低功耗蓝牙技术 2
1.1 设备类型 4
1.2 设计目标 5
1.3 术语 6
第2章 基本概念 8
2.1 纽扣电池 8
2.2 时间即能量 9
2.3 昂贵的内存 10
2.4 非对称设计 10
2.5 为成功而设计 11
2.6 凡事皆有状态 12
2.7 客户端–服务器架构 12
2.8 模块化架构 13
2.9 十亿只是个小数目 14
2.10 无连接模型 14
2.11 范式 14
2.11.1 客户端–服务器架构 14
2.11.2 面向服务的架构 15
第3章 低功耗蓝牙的体系结构 19
3.1 控制器 20
3.1.1 物理层 20
3.1.2 直接测试模式 20
3.1.3 链路层 21
3.1.4 主机/控制器接口 22
3.2 主机 22
3.2.1 逻辑链路控制和适配协议 22
3.2.2 安全管理器协议 23
3.2.3 属性协议 23
3.2.4 通用属性规范 24
3.2.5 通用访问规范 25
3.3 应用层 25
3.3.1 特性 26
3.3.2 服务 26
3.3.3 规范 26
3.4 协议栈划分 27
3.4.1 单芯片解决方案 27
3.4.2 双芯片解决方案 28
3.4.3 三芯片解决方案 28
第4章 新的使用模型 30
4.1 存在检测 30
4.2 广播数据 31
4.3 无连接模式 31
4.4 网关 32
第二部分 控 制 器
第5章 物理层 36
5.1 背景 36
5.2 模拟调制 36
5.3 数字调制 38
5.4 频段 39
5.5 调制 40
5.6 射频信道 41
5.7 发射功率 41
5.8 容限 42
5.9 接收机灵敏度 42
5.10 通信距离 42
第6章 直接测试模式 45
6.1 背景 45
6.2 收发机测试 46
6.2.1 测试报文格式 46
6.2.2 发射机测试 47
6.2.3 接收机测试 47
6.3 硬件接口 48
6.3.1 串口 48
6.3.2 命令与事件 48
6.4 使用HCI的直接测试模式 50
第7章 链路层 51
7.1 链路层状态机 51
7.1.1 就绪态 52
7.1.2 广播态 53
7.1.3 扫描态 53
7.1.4 发起态 54
7.1.5 连接态 55
7.1.6 多状态机 55
7.2 报文 57
7.2.1 广播与数据报文 57
7.2.2 白化 57
7.3 报文结构 59
7.3.1 比特序与字节 60
7.3.2 前导 60
7.3.3 接入地址 60
7.3.4 报头 61
7.3.5 长度 61
7.3.6 净荷 63
7.3.7 循环冗余校验 63
7.4 信道 63
7.4.1 跳频 66
7.4.2 自适应跳频 66
7.5 设备发现 68
7.5.1 通用广播 69
7.5.2 定向广播 69
7.5.3 不可连接广播 70
7.5.4 可发现广播 70
7.6 广播 70
7.7 建立连接 71
7.7.1 接入地址 72
7.7.2 CRC初始化 72
7.7.3 发送窗口 72
7.7.4 连接事件 73
7.7.5 信道图 74
7.7.6 睡眠时钟精度 74
7.8 发送数据 74
7.8.1 数据报头 75
7.8.2 逻辑链路标识符 75
7.8.3 序列号 76
7.8.4 确认 76
7.8.5 更多数据 77
7.8.6 使用序列号和更多数据的例子 77
7.9 加密 79
7.9.1 AES 79
7.9.2 加密净荷数据 80
7.9.3 消息完整性校验 81
7.10 管理连接 82
7.10.1 连接参数更新 83
7.10.2 自适应跳频 84
7.10.3 启动加密 85
7.10.4 重启加密 87
7.10.5 版本交换 87
7.10.6 功能交换 89
7.10.7 终止连接 90
7.11 鲁棒性 90
7.11.1 自适应跳频 90
7.11.2 强CRC 92
7.12 为低功耗优化 93
7.12.1 短报文 93
7.12.2 高比特率 94
7.12.3 低开销 95
7.12.4 确认机制 96
7.12.5 单信道连接事件 96
7.12.6 亚速率连接事件 97
7.12.7 离线加密 98
第8章 主机/控制器接口 99
8.1 介绍 99
8.2 物理接口 99
8.2.1 UART 99
8.2.2 3线UART 100
8.2.3 USB 101
8.2.4 SDIO 102
8.3 逻辑接口 102
8.3.1 HCI信道 102
8.3.2 命令数据包 102
8.3.3 事件数据包 103
8.3.4 数据包 104
8.3.5 命令流控 105
8.3.6 数据流控 106
8.4 控制器的配置 106
8.4.1 重置控制器为已知状态 106
8.4.2 读取设备地址 107
8.4.3 设置事件掩码 107
8.4.4 读取缓冲区大小 108
8.4.5 读取控制器支持的功能 109
8.4.6 读取控制器支持的状态 109
8.4.7 随机数 110
8.4.8 加密数据 110
8.4.9 设置随机地址 111
8.4.10 白名单 112
8.5 广播和观察 112
8.5.1 广播 112
8.5.2 被动扫描 114
8.5.3 主动扫描 115
8.6 发起连接 116
8.6.1 与白名单设备发起连接 116
8.6.2 与单一设备发起连接 118
8.6.3 取消连接请求 118
8.7 连接管理 119
8.7.1 更新连接 119
8.7.2 更新信道映射图 120
8.7.3 交换功能列表 121
8.7.4 交换版本信息 121
8.7.5 加密连接 122
8.7.6 重启加密 123
8.7.7 终止连接 125
第三部分 主 机
第9章 逻辑链路控制和适配协议 128
9.1 背景 128
9.2 L2CAP信道 130
9.3 L2CAP数据包结构 130
9.4 低功耗信令信道 131
9.4.1 命令拒绝 132
9.4.2 连接参数更新请求和响应 132
第10章 属性 135
10.1 背景 135
10.1.1 精简协议 136
10.1.2 无所不在的数据 136
10.1.3 数据与状态 137
10.1.4 几种常见的状态 137
10.1.5 状态机 138
10.1.6 服务和规范 139
10.2 属性 142
10.2.1 属性概述 143
10.2.2 属性句柄 143
10.2.3 属性类型 143
10.2.4 属性值 144
10.2.5 数据库、服务器和客户端 145
10.2.6 属性许可 145
10.2.7 接入属性 147
10.2.8 原子操作和事务 148
10.3 分组 149
10.4 服务 150
10.4.1 扩展服务 151
10.4.2 其他服务的重用 153
10.4.3 结合服务 153
10.4.4 首要还是次要 154
10.4.5 即插即用的客户端应用 156
10.4.6 服务声明 157
10.4.7 包含服务 158
10.5 特性 159
10.5.1 特性声明 159
10.5.2 特性数值 161
10.5.3 描述符 161
10.6 属性协议 164
10.6.1 协议消息 165
10.6.2 交换MTU请求 165
10.6.3 查找信息请求 166
10.6.4 按类型值查找请求 167
10.6.5 按类型读取请求 168
10.6.6 读取请求 168
10.6.7 大对象读取请求 168
10.6.8 多重读取请求 169
10.6.9 按组类型读取请求 169
10.6.10 写入请求 169
10.6.11 写入命令 169
10.6.12 签名写入命令 169
10.6.13 准备写入请求与执行写入请求 170
10.6.14 句柄值通知 171
10.6.15 句柄值指示 171
10.6.16 错误响应 171
10.7 通用属性规范 173
10.7.1 发现规程 174
10.7.2 发现服务 174
10.7.3 特性发现 175
10.7.4 客户端发起规程 176
10.7.5 服务器发起规程 178
10.7.6 属性协议数据单元(ATT PDU)到GATT规程的映射 178
第11章 安全 180
11.1 安全概念 180
11.1.1 认证 180
11.1.2 授权 181
11.1.3 完整性 181
11.1.4 机密性 182
11.1.5 隐私 182
11.1.6 加密引擎 182
11.1.7 共享机密 182
11.2 配对和绑定 185
11.2.1 配对 185
11.2.2 配对信息交换 185
11.2.3 认证 186
11.2.4 密钥分配 187
11.2.5 绑定 188
11.3 数据签名 188
第12章 通用访问规范 189
12.1 背景 189
12.1.1 初次发现 190
12.1.2 建立初始连接 191
12.1.3 服务特性 191
12.1.4 长期关系 192
12.1.5 重连 192
12.1.6 私有地址 193
12.2 GAP角色 193
12.3 模式和规程 194
12.3.1 广播模式和观察规程 195
12.3.2 可发现性 195
12.3.3 可连接性 197
12.3.4 绑定 199
12.4 安全模式 200
12.5 广播数据 201
12.5.1 标识 202
12.5.2 服务 202
12.5.3 本地名称 203
12.5.4 发射功率等级 203
12.5.5 从设备连接间隔范围 203
12.5.6 服务请求 203
12.5.7 服务数据 203
12.5.8 制造商指定数据 203
12.6 GAP服务 204
12.6.1 设备名特性 204
12.6.2 外观特性 204
12.6.3 外围设备隐私标识 204
12.6.4 重连地址 205
12.6.5 外围设备首选连接参数 205
第四部分 应 用
第13章 中央设备 208
13.1 背景 208
13.2 发现设备 208
13.3 连接设备 209
13.4 这个设备能做什么 210
13.5 通用客户端 211
13.6 与服务交互 211
13.6.1 可读特性 212
13.6.2 控制点 212
13.6.3 状态机 213
13.6.4 通知和指示 214
13.7 绑定 214
13.8 变更服务 215
13.9 实现规范 216
13.9.1 定义规范 216
13.9.2 查找服务 217
13.9.3 查找特性 217
13.9.4 使用特性 217
13.9.5 规范安全 217
第14章 外围设备 219
14.1 背景 219
14.2 仅广播 219
14.3 可发现 220
14.4 可连接 220
14.5 公开服务 221
14.6 特性 221
14.7 安全事项 222
14.8 为低功耗优化 222
14.8.1 可发现广播 224
14.8.2 绑定 224
14.8.3 可连接广播 224
14.8.4 定向广播 225
14.8.5 已连接 225
14.8.6 保持连接还是断开 226
14.9 优化属性 227
第15章 测试和质量鉴定 229
15.1 启动项目 229
15.2 选择功能 231
15.3 一致性检查 232
15.4 生成测试计划 232
15.5 建立合规文件夹 232
15.6 鉴定测试 233
15.7 鉴定设计 234
15.8 合规声明 234
15.9 产品名录 234
15.10 结合组件 235
游戏脚本高级编程 (高清珍藏版PDF带书签)
一本学习游戏编程的入门宝典
第1篇 脚本编程的基本原理
第1章 脚本编程概论
1.1 什么是脚本编程
1.2 结构化的游戏内容——一种简单的游戏设计方法
1.3 通过将逻辑和具体实现相互分离来改善这种方法
1.4 硬编码的危险性
1.5 将功能函数存放到外部文件
1.6 脚本是如何运行的
1.7 脚本系统的基本类型
1.8 总结
第2章 脚本编程系统的应用
2.1 编写脚本的普遍目的
2.2 角色扮演游戏(Role Playing Games,RPGs)
2.3 第一人称射击游戏(First-Person Shooters,FPSs)
2.4 总结
第2篇 基于命令的脚本
第3章 基于命令的脚本编程绪论
3.1 基于命令的脚本编程的基础知识
3.2 基于命令的脚本编程综述
3.3 实现一种基于命令的语言
3.4 为一个游戏的介绍顺序编写脚本
3.5 为RPG游戏中某个角色的行为编写脚本
3.6 并发的脚本执行
3.7 总结
3.8 CD上的内容
3.9 挑战
第4章 基于命令的高级脚本
……
第3篇 结构化的脚本编程语言概述
第5章 结构化的脚本编程系统介绍
第6章 对现有脚本编程系统的集成和使用
第7章 设计一个面向过程的脚本编程语言
第4篇 设计和实现一种底层语言
第8章 汇编语言入门
第9章 构造XASM汇编器
第5篇 设计和实现虚拟机
第10章 汇编语言入门
第11章 高级虚拟机的概念和问题
第6篇 编译高级代码
第12章 编译理论概论
第13章 词法分析器
第14章 构造XtremeStcript编译器框架
第15章 语法分析和语义分析.
第7篇 完成培训
第16章 应用这个系统开发的一个完整游戏
第17章 从今往后,何去何从
云环境下的软件测试:迁移与执行 高清PDF完整版 带书签目录
《云环境下的软件测试--迁移与执行》作者斯科特·蒂利、托希达·帕维恩所在的美国卡内基·梅隆大学软件工程学院的团队组织了一个对云环境下软件测试相关课题感兴趣的社区,同时也开发和实现了SMART-T框架和HadoopUnit执行环境。书中涉及的思想、方法和工具都具有创新性,是在近年来发表的学术论文基础上进行总结和梳理形成的专著。该专著中详细研究和分析了5个案例,向云测试研究者提供了相关的理论分析和阐述,以及不可多得的实践经验,为希望将测试技术迁移至云计算环境的技术人员提供了最佳的实践范例。简而言之,本书是针对云测试技术的研究者和软件测试人员提供相关前沿技术介绍的一本论著,重点在一个“新”字,新兴市场的创新技术!
目录
第一章 引言
1.1 软件测试
1.1.1 回归测试
1.1.2 单元测试
1.1.3 分布式测试
1.2 云计算
1.2.1 云服务
1.2.2 云提供商
1.2.3 云的类型
1.3 系统迁移
1.3.1 遗留系统
1.3.2 迁移技术
1.3.3 SMART
1.4 测试执行时间冗长的问题
1.5 在云环境下的软件测试
第二章 sMART-T:将测试迁移至云
2.1 SMART-T
2.2 为什么将测试迁移至云
2.2.1 使测试更快
2.2.2 使测试更便宜
2.2.3 更好的测试
2.3 何时将测试迁移至云
2.3.1 应用程序的特点
2.3.2 测试类型
2.3.3 基于云的测试执行环境
2.4 如何将测试迁移至云
2.4.1 尝试迁移
2.4.2 实际迁移
2.5 小结
第三章 HadoopUnit:云环境下的测试执行
3.1 Hadoop
3.1.1 Hadoop分布式文件系统
3.1.2 MapRcduce
3.1.3 Hadoop是如何工作的
3.2 HadoopUnit的设计
3.2.1 测试用例的提取
3.2.2 Map函数
3.2.3 Reduce函数
3.3 HadoopUnit的实现
3.4 使用HadoopUnit
3.4.1 在主节点上安装HadoopUnit
3.4.2 为测试的执行配置HadoopUnit
3.4.3 采用HadoopUnit执行测试用例
3.5 小结
第四章 案例研究
4.1 JUnit
4.1.1 生成的测试用例
4.1.2 Hadoop
4.1.3 Spring
4.2 GCC
4.2.1 业务驱动
4.2.2 技术因素
4.2.3 尝试迁移
4.2.4 实际迁移
4.2.5 结果
4.3 XYZ
4.3.1 业务驱动
4.3.2 技术因素
4.3.3 讨论
4.4 效度的威胁
4.4.1 被测应用程序
4.4.2 执行的测试类型
4.4.3 迁移中的变更
4.5 小结
第五章 结论
5.1 结果总结
5.1.1 迁移至云
5.1.2 云环境下的测试执行
5.2 经验教训
5.2.1 将测试迁移至云
5.2.2 云环境下的测试执行
5.3 结束语
附录
附录A SMART-T问卷
附录B 搭建Hadoop
附录C 转换GCC测试用例
MySQL 中文参考手册
MySQL 中文参考手册
MySQL 中文参考手册
MySQL 中文参考手册
OpenGL编程指南(原书第9版) 英文原版+源码 高清pdf
OpenGL编程指南(原书第9版) 将着色器相关的技术完全融入了经典的以函数讲解为核心的章节当中,并且通过丰富的代码案例来演示这些现代化的技法。从基础的概念,到物体的绘制、着色、像素、片元、变换方法、纹理、帧缓存、光照和阴影、内存等高级方法和非图形学应用的讲解,无所不包。本书还讲解了着色器的每一个阶段,包括全新的细分、几何和计算着色器。
本书共12章,第1章概述OpenGL主要特性和功能;第2章讨论OpenGL中*主要的特性——可编程着色器和SPIR-V;第3章介绍使用OpenGL进行几何体绘制的各种方法,以及一些可以让渲染更为高效的优化手段;第4章阐释OpenGL对于颜色的处理过程;第5章介绍在一个二维计算机屏幕上表现三维场景的操作细节;第6章讨论将几何模型与图像结合来创建真实的、高质量的三维模型的方法;第7章介绍计算机图形的光照效果模拟方法;第8章介绍使用可编程着色器生成纹理和其他表面效果的方法细节;第9章解释OpenGL管理和细分几何表面的着色器功能;第10章介绍在OpenGL渲染流水线中使用着色器进行几何体图元修改的特别技术;第11章介绍使用OpenGL帧缓存和缓存内存实现高级渲染技术和非图形学应用的相关方法;第12章介绍了*新的着色器阶段,将通用计算的方法融合到OpenGL的渲染流水线当中。
D程序设计语言 (高清完整版) 适合初学者
《D程序设计语言》据说最容易学习理解的语言 不仅适合于D语言初学者,对于想学习编译器实现的研究人员、想拓展学生的编程语言知识面的教师以及想深入了解编程语言设计的人,也能提供很好的帮助和指导。
物联网 核心技术详解(高清完整版PDF 带索引)
物联网 核心技术详解(高清完整版PDF 带索引)
需要的可以看看。
网络游戏服务器端编程 高清完整版PDF 写出高效的服务端
非常适合从事游戏开发,但是没有网络游戏服务器端开发经验的游戏行业程序开发人员
DEEP LEARNING 深度学习 中文高清珍藏版.包含源代码
本资源包含 高清PDF 和源代码 《Deep Learning》(深度学习)是一本皆在帮助学生和从业人员进入机器学习领域的教科书,以开源的形式免费在网络上提供,这本书是由学界领军人物 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 合力打造。
VC 6.0 精简版(完美支持WIN7 WIN8 WIN10)
VC 6.0 精简版(完美支持WIN7 WIN8 WIN10)
很适合学习编程入门
VC 6.0 精简版(完美支持WIN7 WIN8 WIN10)
很适合学习编程入门
VC 6.0 精简版(完美支持WIN7 WIN8 WIN10)
很适合学习编程入门
Java API文档中文版chm版
Java API文档中文版
查 询、学习、 必 备学习资料 。。
Java API文档中文版
查 询、学习、 必 备学习资料 。。
Java API文档中文版
查 询、学习、 必 备学习资料 。。
PLSQL Developer 12.0.1 绿色版
PLSQL Developer 12.0.1 绿色版。需要的可以收藏下。。
PLSQL Developer 12.0.1 绿色版。需要的可以收藏下。。
PLSQL Developer 12.0.1 绿色版。需要的可以收藏下。。
PLSQL Developer 12.0.1 绿色版。需要的可以收藏下。。
PLSQL Developer 12.0.1 绿色版。需要的可以收藏下。。
微信跳一跳小游戏源代码
微信 跳一跳小游戏 源代码
别人给的 在这里分享给大家
微信 跳一跳小游戏 源代码
别人给的 在这里分享给大家
微信 跳一跳小游戏 源代码
别人给的 在这里分享给大家
蜕变-从菜鸟到Linux安全专家.高清扫描版
《蜕变:从菜鸟到linux安全专家》通过实际故事场景对linux安全技术和应用方法进行了全面、深入和系统的分析。分别从黑客攻击的基本技术、linux面临的安全威胁、linux系统安全管理、linux网络服务安全管理、linux核心安全技术等多个层面,向读者系统、全面、科学地讲述了与linux相关的原理、技术和机制等安全方法。
《蜕变:从菜鸟到linux安全专家》覆盖的知识面广,基本覆盖了linux安全的方方面面。本书适用于广大读者群,包括众多linux安全爱好者、中高级linux用户、it培训人员及it从业者,同时也兼顾网络管理员。本书也可作为高等院校计算机和信息安全专业学生的教学参考用书。
大型网站技术架构_核心原理与案例分析_李智慧
大型网站技术架构:核心原理与案例分析 目录:
第1篇 概述
1 大型网站架构演化 2
1.1 大型网站软件系统的特点 3
1.2 大型网站架构演化发展历程 4
1.2.1 初始阶段的网站架构 4
1.2.2 应用服务和数据服务分离 4
1.2.3 使用缓存改善网站性能 5
1.2.4 使用应用服务器集群改善网站的并发处理能力 6
1.2.5 数据库读写分离 7
1.2.6 使用反向代理和CDN加速网站响应 8
1.2.7 使用分布式文件系统和分布式数据库系统 9
1.2.8 使用NoSQL和搜索引擎 10
1.2.9 业务拆分 11
1.2.10 分布式服务 11
1.3 大型网站架构演化的价值观 13
1.3.1 大型网站架构技术的核心价值是随网站所需灵活应对 13
1.3.2 驱动大型网站技术发展的主要力量是网站的业务发展 13
1.4 网站架构设计误区 14
1.4.1 一味追随大公司的解决方案 14
1.4.2 为了技术而技术 14
1.4.3 企图用技术解决所有问题 14
1.5 小结 15
2 大型网站架构模式 16
2.1 网站架构模式 16
2.1.1 分层 17
2.1.2 分割 18
2.1.3 分布式 18
2.1.4 集群 19
2.1.5 缓存 20
2.1.6 异步 20
2.1.7 冗余 21
2.1.8 自动化 22
2.1.9 安全 23
2.2 架构模式在新浪微博的应用 23
2.3 小结 25
3 大型网站核心架构要素 26
3.1 性能 27
3.2 可用性 28
3.3 伸缩性 29
3.4 扩展性 30
3.5 安全性 30
3.6 小结 31
第2篇 架构
4 瞬时响应:网站的高性能架构 34
4.1 网站性能测试 35
4.1.1 不同视角下的网站性能 35
4.1.2 性能测试指标 36
4.1.3 性能测试方法 39
4.1.4 性能测试报告 41
4.1.5 性能优化策略 41
4.2 Web前端性能优化 42
4.2.1 浏览器访问优化 42
4.2.2 CDN加速 43
4.2.3 反向代理 44
4.3 应用服务器性能优化 45
4.3.1 分布式缓存 45
4.3.2 异步操作 52
4.3.3 使用集群 53
4.3.4 代码优化 54
4.4 存储性能优化 58
4.4.1 机械硬盘vs. 固态硬盘 58
4.4.2 B+树vs. LSM树 59
4.4.3 RAID vs. HDFS 61
4.5 小结 64
5 万无一失:网站的高可用架构 66
5.1 网站可用性的度量与考核 67
5.1.1 网站可用性度量 67
5.1.2 网站可用性考核 67
5.2 高可用的网站架构 69
5.3 高可用的应用 71
5.3.1 通过负载均衡进行无状态服务的失效转移 72
5.3.2 应用服务器集群的Session管理 73
5.4 高可用的服务 76
5.5 高可用的数据 78
5.5.1 CAP原理 79
5.5.2 数据备份 82
5.5.3 失效转移 84
5.6 高可用网站的软件质量保证 85
5.6.1 网站发布 85
5.6.2 自动化测试 86
5.6.3 预发布验证 87
5.6.4 代码控制 88
5.6.5 自动化发布 90
5.6.6 灰度发布 91
5.7 网站运行监控 91
5.7.1 监控数据采集 92
5.7.2 监控管理 93
5.8 小结 94
6 永无止境:网站的伸缩性架构 95
6.1 网站架构的伸缩性设计 97
6.1.1 不同功能进行物理分离实现伸缩 97
6.1.2 单一功能通过集群规模实现伸缩 98
6.2 应用服务器集群的伸缩性设计 99
6.2.1 HTTP重定向负载均衡 100
6.2.2 DNS域名解析负载均衡 101
6.2.3 反向代理负载均衡 102
6.2.4 IP负载均衡 103
6.2.5 数据链路层负载均衡 104
6.2.6 负载均衡算法 105
6.3 分布式缓存集群的伸缩性设计 106
6.3.1 Memcached分布式缓存集群的访问模型 107
6.3.2 Memcached分布式缓存集群的伸缩性挑战 107
6.3.3 分布式缓存的一致性Hash算法 109
6.4 数据存储服务器集群的伸缩性设计 112
6.4.1 关系数据库集群的伸缩性设计 113
6.4.2 NoSQL数据库的伸缩性设计 117
6.5 小结 119
7 随需应变:网站的可扩展架构 121
7.1 构建可扩展的网站架构 122
7.2 利用分布式消息队列降低系统耦合性 123
7.2.1 事件驱动架构 123
7.2.2 分布式消息队列 124
7.3 利用分布式服务打造可复用的业务平台 126
7.3.1 Web Service与企业级分布式服务 128
7.3.2 大型网站分布式服务的需求与特点 129
7.3.3 分布式服务框架设计 130
7.4 可扩展的数据结构 131
7.5 利用开放平台建设网站生态圈 132
7.6 小结 134
8 固若金汤:网站的安全架构 135
8.1 道高一尺魔高一丈的网站应用攻击与防御 136
8.1.1 XSS攻击 136
8.1.2 注入攻击 138
8.1.3 CSRF攻击 139
8.1.4 其他攻击和漏洞 140
8.1.5 Web应用防火墙 141
8.1.6 网站安全漏洞扫描 142
8.2 信息加密技术及密钥安全管理 142
8.2.1 单向散列加密 143
8.2.2 对称加密 144
8.2.3 非对称加密 144
8.2.4 密钥安全管理 145
8.3 信息过滤与反垃圾 146
8.3.1 文本匹配 147
8.3.2 分类算法 148
8.3.3 黑名单 149
8.4 电子商务风险控制 150
8.4.1 风险 151
8.4.2 风控 151
8.5 小结 153
第3篇 案例
9 淘宝网的架构演化案例分析 156
9.1 淘宝网的业务发展历程 157
9.2 淘宝网技术架构演化 158
9.3 小结 162
10 维基百科的高性能架构设计分析 163
10.1 Wikipedia网站整体架构 163
10.2 Wikipedia性能优化策略 165
10.2.1 Wikipedia前端性能优化 165
10.2.2 Wikipedia服务端性能优化 166
10.2.3 Wikipedia后端性能优化 167
11 海量分布式存储系统Doris的高可用架构设计分析 169
11.1 分布式存储系统的高可用架构 170
11.2 不同故障情况下的高可用解决方案 171
11.2.1 分布式存储系统的故障分类 172
11.2.2 正常情况下系统访问结构 172
11.2.3 瞬时故障的高可用解决方案 173
11.2.4 临时故障的高可用解决方案 174
11.2.5 永久故障的高可用解决方案 175
12 网购秒杀系统架构设计案例分析 176
12.1 秒杀活动的技术挑战 177
12.2 秒杀系统的应对策略 177
12.3 秒杀系统架构设计 178
12.4 小结 182
13 大型网站典型故障案例分析 183
13.1 写日志也会引发故障 184
13.2 高并发访问数据库引发的故障 184
13.3 高并发情况下锁引发的故障 185
13.4 缓存引发的故障 185
13.5 应用启动不同步引发的故障 186
13.6 大文件读写独占磁盘引发的故障 186
13.7 滥用生产环境引发的故障 187
13.8 不规范的流程引发的故障 187
13.9 不好的编程习惯引发的故障 188
13.10 小结 188
第4篇 架构师
14 架构师领导艺术 190
14.1 关注人而不是产品 191
14.2 发掘人的优秀 191
14.3 共享美好蓝图 192
14.4 共同参与架构 193
14.5 学会妥协 194
14.6 成就他人 194
15 网站架构师职场攻略 196
15.1 发现问题,寻找突破 197
15.2 提出问题,寻求支持 199
15.3 解决问题,达成绩效 201
16 漫话网站架构师 203
16.1 按作用划分架构师 203
16.2 按效果划分架构师 204
16.3 按职责角色划分架构师 205
16.4 按关注层次划分架构师 205
16.5 按口碑划分架构师 206
16.6 非主流方式划分架构师 207
附录A 大型网站架构技术一览 208
附录B Web开发技术发展历程 215
后记 218
大型网站技术架构.核心
[Android开发从入门到精通].扶松柏.扫描版
《Android开发从入门到精通》包括Android世界、界面布局实战演练、基本控件实战演练、数据存储实战演练等内容。
目录:
第1章 走进Android世界
第2塞界面布局实战演练
第3章 基本控件实战演练
第4章 数据存储实战演练
第5章 通信领域实战演练
第6章 自动服务实战演练
第7章 互联网实战演练
第日章 多媒傩实战演练
第9章 Google地图实战演练
第10章 GoogleApI实战演练
第11章 游戏实战演练
第12章 优化和发布项目
微信公众平台应用开发实战-完整扫描版
本书是微信公众平台应用开发领域的经典著作,作者是腾讯公司的资深软件开发工程师,而且是微信公众平台应用开发的先驱者之一。本书全面介绍了微信公众平台应用开发所需的各项技术,系统解读了微信公众平台开放的API和各项高级功能,逐步讲解了微信公众平台应用开发的流程、方法和技巧。注重实战,不仅通过3个实战案例呈现了娱乐型、应用型、游戏型应用的完整开发过程,还实现了一个快速开发公众平台应用的框架,读者可以直接用于快速开发自己的公众平台应用。
全书一共9章,在逻辑上分为四大部分:第一部分(第1章)介绍了微信公众平台的开发模式、数据交互方式,以及开发公众平台应用所需要的各项技术;第二部分(第2~4章)首先详细讲解了微信公众平台开放的所有API的功能特性及使用方法,然后实现了一个快速开发公众平台应用的框架,这个框架可供读者直接使用;第三部分(第5~7章)以迭代的方式讲解了3个实战案例的完整开发过程,这3个实战案例涉及的应用分别是娱乐型、应用型和游戏型的,其中应用型实战案例用到了人脸识别等技术;第四部分(第8~9章)详细探讨了应对海量请求和恶意请求的方法,这是企业运营公众账号(尤其是服务号)时容易忽视的,但也是应该重点关注的。
PHP 中文手册(带用户注释)
PHP 中文手册(带用户注释)的 Windows HTML Help 版本是针对开发人员的,他们希望每时每刻都有手册在手头,并且不需要等待远程页面下载就可以阅读手册以及用户注解。此版本给你完整的手册内容加上用户注解,以及一些很棒的特色。这是由我们用来生成此格式的脚本产生的阅读程序以及其他人在皮肤样式上的贡献所提供的。
菜鸟用C语言写的一分钟动画
刚学C语言的菜鸟用putchar写的一分钟NB动画(C语言写的动画) 你们看看觉得怎么样?
C语言写的声音恶作剧(会一直嘿嘿嘿的笑)
菜鸟用C语言写的声音恶作剧(会一直嘿嘿嘿的笑),很有趣的东东。
菜鸟用C语言写的声音恶作剧(会一直嘿嘿嘿的笑),很有趣的东东。
C语言写的动画(怎样才能学好C语言 )
C语言写的动画(怎样才能学好C语言的秘籍 ),内含C语言无上心法。
C语言写的动画(怎样才能学好C语言的秘籍 ),内含C语言无上心法。
一个神奇的C代码(如果你感觉自己很菜,就不要下了)
一个神奇的C代码(如果你感觉自己很菜,就不要下了)
C语言最快三次猜出你的属相
C语言最快三次猜出你的属相,不信可以一试!
C语言最快三次猜出你的属相,不信可以一试!
C语言最快三次猜出你的属相,不信可以一试!
精通Git (第2版)高清带书签
Git仅用了几年时间就一跃成为了几乎一统商业及开源领域的版本控制系统。精通Git (第2版)全面介绍Git进行版本管理的基础和进阶知识。全书共10章,内容由浅入深,展现了普通程序员和项目经理如何有效利用Git提高工作效率,掌握分支概念,灵活地将Git用于服务器和分布式工作流,如何将开发项目迁移到Git,以及如何高效利用GitHub。
精通Git (第2版)目录
第1章 入门 1
第2章 Git基础 13
第3章 Git分支机制 42
第4章 Git服务器 76
第5章 分布式Git 95
第6章 GitHub 128
第7章 Git工具 171
第8章 自定义Git 262
第9章 Git与其他系统 289
第10章 Git内幕 338
8位数字密码生成器Demo(速度超快)
8位数字密码生成器Demo 速度超快,至少我还没遇到过生成8位数字密码在速度上能比这个还快的
快速生成8位数字密码Demo(同类最快的)
快速生成8位数字密码,据说是同类软件中最快的,好像还是单线程实现的,但好像只是一个Demo...
微信小程序:开发入门及案例详解
内容简介编辑
本书全面介绍微信小程序的开发思路、技术、工具与案例,涉及小程序开发的方方面面。主要内容包括:前端开发基础、小程序开发基础、小程序组件、AIP详解、实例分析等。本书案例丰富、讲解细腻、实用性强,可帮助读者从零开始快速入门小程序开发。 [1]
目录编辑
对本书的赞誉
序 一
序 二
前 言
第1章 初识小程序 1
1.1 简介 1
1.2 接入流程 2
1.2.1 注册小程序帐号 2
1.2.2 开发环境准备 4
1.3 第一个小程序 6
1.4 小结 10
第2章 小程序开发核心 11
2.1 简介 11
2.2 “徒手”创建小程序 12
2.3 框架主体文件 15
2.3.1 配置文件(app.json) 15
2.3.2 小程序逻辑(app.js) 19
2.3.3 全局样式(app.wxss) 20
2.4 框架页面文件 21
2.4.1 页面配置文件 21
2.4.2 页面逻辑文件(JavaScript) 21
2.4.3 页面结构文件(WXML) 27
2.4.4 页面样式文件(WXSS) 43
2.5 模块化 46
2.5.1 模块化简介 46
2.5.2 文件作用域 47
2.5.3 模块的使用 47
2.5.4 其他 48
2.6 小结 49
第3章 布局 50
3.1 基本知识 50
3.1.1 盒子模型 50
3.1.2 块级元素 51
3.1.3 行内元素 52
3.1.4 行内块元素 54
3.2 浮动和定位 54
3.2.1 浮动 54
3.2.2 定位 58
3.3 Flex布局 59
3.3.1 基本概念 59
3.3.2 容器属性 60
3.3.3 项目属性 64
3.4 小结 68
第4章 组件 69
4.1 组件定义及属性 69
4.2 视图容器 70
4.2.1 view组件 71
4.2.2 scroll-view组件 72
4.2.3 滑块视图组件 74
4.3 基础组件 77
4.3.1 icon 77
4.3.2 text组件 81
4.3.3 progress组件 82
4.4 表单组件 82
4.4.1 radio组件 83
4.4.2 checkbox组件 84
4.4.3 switch组件 86
4.4.4 label组件 87
4.4.5 slider组件 89
4.4.6 picker组件 91
4.4.7 picker-view组件 95
4.4.8 input组件 97
4.4.9 textarea组件 99
4.4.10 button组件 101
4.4.11 form组件 102
4.5 导航组件 105
4.6 媒体组件 107
4.6.1 image 107
4.6.2 audio 110
4.6.3 video 112
4.7 地图组件 114
4.8 画布组件 117
4.9 客服会话 119
4.10 小结 119
第5章 API 120
5.1 网络 121
5.1.1 发起HTTPS请求 121
5.1.2 上传、下载 122
5.1.3 WebSocket 124
5.2 媒体 127
5.2.1 图片 127
5.2.2 录音 128
5.2.3 音频播放控制 129
5.2.4 音乐播放控制 130
5.2.5 音频组件控制 134
5.2.6 视频 135
5.2.7 视频组件控制 136
5.3 文件 137
5.4 数据缓存 139
5.4.1 保存数据 140
5.4.2 获取数据 140
5.4.3 获取本地数据信息 141
5.4.4 删除数据 141
5.4.5 清空数据 142
5.5 位置 142
5.5.1 获取位置 142
5.5.2 选择位置 143
5.5.3 查看位置 144
5.5.4 地图组件控制 144
5.6 设备 145
5.6.1 系统信息 145
5.6.2 网络状态 146
5.6.3 重力感应 146
5.6.4 罗盘 147
5.6.5 拨打电话 147
5.6.6 扫码 147
5.7 界面 148
5.7.1 交互反馈 148
5.7.2 设置导航条 149
5.7.3 导航 150
5.7.4 动画 152
5.7.5 绘图 156
5.7.6 下拉刷新 172
5.8 开放接口 173
5.8.1 登录 173
5.8.2 用户信息 175
5.8.3 微信支付 176
5.8.4 模板消息 176
5.8.5 客服消息 181
5.8.6 分享 188
5.8.7 获取二维码 189
5.9 小结 189
第6章 案例分析——豆瓣电影 190
6.1 准备工作 190
6.1.1 豆瓣API 190
6.1.2 跳转层 192
6.2 技术架构 193
6.3 公共模块开发 195
6.3.1 业务逻辑层 195
6.3.2 公共模块 196
6.4 页面构建 197
6.4.1 首页 197
6.4.2 详情页 199
6.5 页面逻辑开发 201
6.5.1 首页 201
6.5.2 详情页 203
6.6 小结 204
第7章 案例分析——驾考 205
7.1 业务流程 205
7.2 项目架构 206
7.2.1 功能点分析 206
7.2.2 项目结构图 207
7.2.3 数据接口 208
7.3 代码分析 210
7.3.1 小程序底层代码封装 210
7.3.2 首页 212
7.3.3 答题页 213
7.3.4 答题结果页 225
7.4 小结 227
第8章 案例分析——打赏 228
8.1 登录 228
8.1.1 登录流程 228
8.1.2 源码讲解 230
8.2 支付 237
8.3 小结 241
第9章 案例分析——日程表 243
9.1 业务流程 243
9.2 项目架构 245
9.2.1 功能点分析 245
9.2.2 项目结构图 245
9.3 代码分析 246
9.3.1 日程详情页 246
9.3.2 首页 251
9.3.3 日程管理页 257
9.4 小结 263
第10章 案例分析——多点商城 264
10.1 需求分析 264
10.2 技术架构 267
10.2.1 主界面架构 267
10.2.2 业务逻辑层 268
10.2.3 代理网络请求接口 271
10.2.4 本地模拟接口数据 273
10.2.5 widgets 273
10.2.6 全局样式控制 275
10.3 页面实现 276
10.3.1 主界面实现 276
10.3.2 首页与活动页 279
10.3.3 分类页与搜索页 283
10.3.4 支付流程 286
10.3.5 其他页面 287
10.4 小结 287
Linux内核API完全参考手册(第2版) PDF带书签
Linux内核API完全参考手册(第2版)基于最新的Linux内核源代码3.19.3版本,对常用的内核API作了系统归纳,并编写了典型验证程序,使理论分析与实际编程做到了统一。分析的内核API模块包括:模块机制内核API、进程管理内核API、进程调度内核API、中断与异常机制内核API、时间与定时机制内核API、内存管理内核API、内核同步机制API、文件系统内核API和设备驱动与设备管理模块内核API。
目录
第1章 Linux内核API分析必备知识 1
第2章 内核模块机制API 14
第3章 Linux进程管理内核API 51
第4章 Linux 进程调度内核API 83
第5章 Linux中断机制内核API 187
第6章 Linux内存管理内核API 252
第7章 Linux内核定时机制API 350
第8章 Linux内核同步机制API 436
第9章 Linux文件系统内核API 500
第10章 Linux 设备驱动及设备管理API 560
计算机图形学 第四版 PDF带书签
本书是一本经典著作,这次版本更新增加了许多实践内容,覆盖了近年来计算机图形学的最新发展和成就,并附有使用OpenGL编写的大量程序以及各种效果图。本书共分24章,全面系统地讲解了计算机图形学的基本概念和相关技术。作者首先对计算机图形学进行综述;然后讲解了二维图形的对象表示、算法及应用,三维图形的相关技术、建模和变换等;接着介绍了层次建模、动画技术、样条曲线表示、纹理处理等方面的内容,最后光照模型、颜色模型和交互输入法等。
ORACLE PLSQL性能调优诀窍与方法
本书作者从PL/SQL入手,根据其特性,将其全书组织为4大部分共12章。第一部分(1-3章)从宏观的角度综合概述了系统调优涉及的关键领域,并结合Web应用系统的9大步骤探讨了性能调优问题的定位和根源。第二部分(4-6章)阐述了PL/SQL与SQL的集成问题;第三部分(7-9章)描述了Dynamic SQL、缓冲机制及高级数据类型三类技术;第四部分(10-12章)结合大量的案例,介绍了性能调优的日常工作内容、版本控制的意义及作用等。
Python大战机器学习
数据科学家是当下炙手可热的职业,机器学习则是他们的必备技能。机器学习在大数据分析中居于核心地位,在互联网、金融保险、制造业、零售业、医疗等产业领域发挥了越来越大的作用且日益受到关注。
Python 是最好最热门的编程语言之一,以简单易学、应用广泛、类库强大而著称,是实现机器学习算法的首选语言。
《Python大战机器学习:数据科学家的第一个小目标》以快速上手、四分理论六分实践为出发点,讲述机器学习的算法和Python 编程实践,采用“原理笔记精华+ 算法Python 实现+ 问题实例+ 代码实战+ 运行调参”的形式展开,理论与实践结合,算法原理与编程实战并重。
《Python大战机器学习:数据科学家的第一个小目标》从内容上分为13 章分4 篇展开:第一篇:机器学习基础篇(第1~6 章),讲述机器学习的基础算法,包括线性模型、决策树、贝叶斯分类、k 近邻法、数据降维、聚类和EM算法;第二篇:机器学习高级篇(第7~10 章),讲述经典而常用的高级机器学习算法,包括支持向量机、人工神经网络、半监督学习和集成学习;第三篇:机器学习工程篇(第11~12章),讲述机器学习工程中的实际技术,包括数据预处理,模型评估、选择与验证等;第四篇:Kaggle 实战篇(第13 章),讲述一个Kaggle 竞赛题目的实战。
《Python大战机器学习:数据科学家的第一个小目标》内容丰富、深入浅出,算法与代码双管齐下,无论你是新手还是有经验的读者,都能快速学到你想要的知识。本书可供为高等院校计算机、金融、信息、自动化及相关理工科专业的本科生或研究生使用,也可供对机器学习感兴趣的研究人员和工程技术人员阅读参考。 [1]
中文编程:学习进阶(一本中文编程的教程)
中文编程:学习进阶 目录
第一部分 易语言核心支持库
第一章 易语言常用组件
第二章 易语言常用命令
第二部分 易语言外部支持库
第三章 易语言支持库
第四章 易语言扩展组件的应用
第五章 易语言扩展功能的应用
第三部分 易语言对数据库的操作
第六章 MySQL数据库
第七章 SQL语句应用
第四部分 易语言网络功能应用
第八章 Internet程序设计
第九章 局域网应用
第五部分 易语言行业软件
第十章 进销存管理系统
终极算法:机器学习和人工智能如何重塑世界(高清PDF)
多明戈斯在他的《终极算法》中认为机器学习将被明确归入全球经济未来的中心。随着数量的不断增多,我们使用的算法也可能不需要那么复杂,反而需要一种简单的、通用的算法,称之为“终极算法”。在多明戈斯的眼里,终极算法将会统一物理、数学、社会、生物等各种学科的理论,进而获得一种万有理论。他把宇宙生成、生命进化看成是一个程序,而不同的物种在不同时间、不同地点的生长、成熟和消灭都是由于程序设置的参数不同所导致的。他还分别从大脑皮层的统一、物理学规律的统一、进化论的规律、计算机科学本身的规律来分析了生成终极算法的可能性。多明戈斯也总结了目前机器学习的5大流派,分别是符号派、联结派、进化派、贝叶斯派、类推派。
DOS/BIOS高手真经(第2版) 高清PDF 带书签
本书详实而精确地讲解了DOS和BIOS相关知识和应用技巧。从维护计算机系统、提高工作效率和网络管理的实际需要出发,以实际应用驱动,直接告诉读者如何用DOS命令和BIOS设置快速高效地完成Windows不擅长或无法完成的工作。
维护磁盘、解决系统故障、保障网络运行,应用案例印证DOS解决问题知道。BIOS系统典型设置、安全与破解一一道来,关注解决问题实际流程。
人工智能:计算Agent基础(扫描版PDF)
内容简介 · · · · · ·
《人工智能:计算agent基础》讨论AI科学,它将AI作为智能计算Agent设计的研究课题。《人工智能:计算agent基础》虽然设计为教科书,但它也适合广大专业人员和研究人员阅读。《人工智能:计算agent基础》的一个重要特色是其在线学习资源。在过去的几十年里,人工智能是作为一种严肃科学和工程学科出现的。《人工智能:计算agent基础》提供了针对本科生和研究生的第一手便利可用的领域综合资料,对当今该领域的基础发展进行了展望。像任何名副其实的科学一样,AI具有条理分明、形式化的理论和难以控制的实验。《人工智能:计算agent基础》均衡了理论和实验部分,并说明了如何将理论与实验密切地联系起来,使科学与工程应用共同发展。
作者简介 · · · · · ·
普尔(David L.Poole),加拿大不列颠哥伦比亚大学计算机科学教授,计算智能实验室主任。2014-2015年,他是牛津大学Leverhulme Trust客座教授。他还是加拿大人工智能学会(CAIAC)2013年终身成就奖获得者,是国际人工智能促进协会(AAAI)和加拿大人工智能学会(CAIAC)Fellow。
麦克沃思(Alan K.Mackworth),加拿大不列颠哥伦比亚大学计算机科学教授。他的研究兴趣是基于约束的人工智能及其应用,被称为约束满足、机器人足球、混合系统和基于约束的Agent等研究领域的先驱。他是国际人工智能联合会议(IJCAI)公司的总裁和理事,以及IJCAI执行委员会主席;同时还担任许多编委会和程序委员会委员。他是加拿大计算机智能研究会(CSCSI)主席,还担任国际人工智能促进协会(AAAI)主席。荣获的奖励包括
NLP汉语自然语言处理原理与实践 高清完整版PDF
本书是一本研究汉语自然语言处理方面的基础性、综合性书籍,涉及NLP的语言理论、算法和工程实践的方方面面,内容繁杂。 本书包括NLP的语言理论部分、算法部分、案例部分,涉及汉语的发展历史、传统的句法理论、认知语言学理论。需要指出的是,本书是迄今为止*本系统介绍认知语言学和算法设计相结合的中文NLP书籍,并从认知语言学的视角重新认识和分析了NLP的句法和语义相结合的数据结构。这也是本书的创新之处。 本书适用于所有想学习NLP的技术人员,包括各大人工智能实验室、软件学院等专业机构。
解析深度学习 语音识别实践 PDF
AlphaGo与李世石的围棋大战激发了人们对人工智能是非的诸多争论。人工智能背后的工作原理深度学习跳入大众的视野。AlphaGo的大获全胜一定程度展示了深度学习在应用领域的成功,而语音识别正是深度学习取得显著成功的应用领域之一。
本书是首次以深度学习为主线介绍语音识别应用的书籍,对读者了解语音识别技术及其发展历程有重要的参考价值。
本书作者俞栋、邓力均是该领域的著名专家,他们是深度学习在应用领域取得突破性进展的推动者与实践者,他们在书中分享的研究成果一定程度上代表了本领域最新的研究进展;译者俞凯、钱彦旻也是本领域的资深专家,并有众多实践成果。对于从事此领域研究的读者来说,本书无疑有重要的参考价值。
《解析深度学习:语音识别实践》是首部介绍语音识别中深度学习技术细节的专著。全书首先概要介绍了传统语音识别理论和经典的深度神经网络核心算法。接着全面而深入地介绍了深度学习在语音识别中的应用,包括"深度神经网络-隐马尔可夫混合模型"的训练和优化,特征表示学习、模型融合、自适应,以及以循环神经网络为代表的若干先进深度学习技术。
《解析深度学习:语音识别实践》适合有一定机器学习或语音识别基础的学生、研究者或从业者阅读,所有的算法及技术细节都提供了详尽的参考文献,给出了深度学习在语音识别中应用的全景。
神奇的匹配:正则表达式求精之旅 带书签目录完整PDF
《神奇的匹配:正则表达式求精之旅》适合广大Web网站开发人员、网站管理维护人员和在校学生阅读,尤其适合与字符串处理相关的Web编程技术人员阅读。
目录
第1篇 正则表达式基础
第1章 外行看正则表达式 1
1.1 什么是正则表达式 1
1.2 本书使用的测试工具 2
1.3 理解元字符 3
1.3.1 匹配位置的元字符 3
1.3.2 匹配字符的元字符 4
1.3.3 元字符总结 5
1.4 文字匹配 7
1.4.1 字符类 7
1.4.2 字符转义 9
1.4.3 反义 9
1.4.4 限定符 10
1.5 字符的操作 15
1.5.1 替换 15
1.5.2 分组 17
1.5.3 反向引用 17
1.6 正则的其他操作 19
1.6.1 零宽度断言 19
1.6.2 负向零宽度断言 20
1.6.3 匹配选项 21
1.6.4 注释 21
1.6.5 优先级顺序 22
1.6.6 递归匹配 22
1.7 典型正则表达式解释 23
1.7.1 匹配Windows操作系统的名称 23
1.7.2 匹配HTML标记 23
1.7.3 匹配HTML标记之间的内容 24
1.7.4 匹配CSV文件内容 25
第2章 数字验证的方法 27
2.1 9种数值验证 27
2.1.1 字符串只包含数字的验证 27
2.1.2 字符串只包含整数的验证 31
2.1.3 字符串指定范围的整数验证 32
2.1.4 字符串为实数的验证 35
2.1.5 字符串指定精度的实数验证 38
2.1.6 科学计数法的数值验证 39
2.1.7 二进制数值的验证 39
2.1.8 八进制数值的验证 40
2.1.9 十六进制数值的验证 41
2.2 4种国内电话号码的验证 43
2.2.1 国内手机号码验证 43
2.2.2 固定电话号码(不包括区号)验证 44
2.2.3 区号+固定电话号码验证 45
2.2.4 区号+固定电话号码+分机号码验证 47
2.2.5 固定电话号码验证总结 48
2.3 2种身份证号码验证 49
2.3.1 15位身份证号码验证 50
2.3.2 18位身份证号码验证 51
2.4 银行卡和信用卡号验证 51
2.5 邮政编码验证 52
2.5.1 国内邮政编码验证 52
2.5.2 国际邮政编码验证 53
2.6 4种IP地址验证 53
2.6.1 简单IP地址验证 53
2.6.2 精确IP地址验证 54
2.6.3 子网内部IP地址验证 56
2.6.4 64位IP地址验证 57
第3章 常用字符串验证方法 60
3.1 5种英文单词验证 60
3.1.1 小写英文单词验证 60
3.1.2 大写英文单词验证 61
3.1.3 英文单词的分隔符验证 62
3.1.4 否定验证 64
3.1.5 具有重复特征的英文单词验证 67
3.2 6种非单词字符串验证 69
3.2.1 英文标点符号验证 69
3.2.2 中文标点符号验证 70
3.2.3 中文文本验证 70
3.2.4 特殊字符验证 71
3.2.5 密码验证 71
3.2.6 字符表的分类 76
3.3 常用的文件名称和路径验证 76
3.3.1 通配符 76
3.3.2 指定文件扩展名的验证 77
3.3.3 指定文件名的验证 78
3.3.4 包含指定字符串的文件全名验证 78
3.3.5 排除两端存在空白字符的文件全名验证 79
3.3.6 文件路径验证 81
3.4 4种网络常用元素验证 82
3.4.1 电子邮件验证 82
3.4.2 主机名称验证 83
3.4.3 HTTP地址验证 85
3.4.4 FTP地址验证 86
第4章 常见数字和字符混合验证 87
4.1 5种数学表达式验证 87
4.1.1 操作数验证 87
4.1.2 操作符验证 88
4.1.3 简单数学表达式验证 88
4.1.4 只含操作数和操作符的数学表达式验证 89
4.1.5 包含小括号的数学表达式验证 90
4.2 8种日期和时间验证 92
4.2.1 年验证 92
4.2.2 月验证 93
4.2.3 日验证 94
4.2.4 年月日格式的日期验证 95
4.2.5 24小时制时分秒格式的时间验证 96
4.2.6 12小时制时分秒格式的时间验证 97
4.2.7 带毫秒的时间验证 98
4.2.8 长格式的日期和时间验证 100
4.3 4种编码规范验证 101
4.3.1 类名称验证 101
4.3.2 声明变量表达式验证 102
4.3.3 函数名称验证 102
4.3.4 声明函数表达式验证 103
4.4 3种车牌号码验证 106
4.4.1 通用车牌号码验证 106
4.4.2 武警车牌号码验证 108
第5章 常见的HTML元素验证和处理 110
5.1 6种HTML元素验证的基础 110
5.1.1 HTML标记验证 110
5.1.2 非封闭HTML标记验证 111
5.1.3 封闭HTML标记验证 112
5.1.4 属性赋值表达式验证 113
5.1.5 HTML中的注释验证 116
5.1.6 HTML中的脚本代码块验证 117
5.2 4种非封闭的HTML元素验证 118
5.2.1 <br>元素验证 119
5.2.2 <hr>元素验证 121
5.2.3 <a>元素验证 124
5.2.4 <input>元素验证 128
5.3 封闭的HTML元素验证 129
5.4 处理HTML元素 130
5.4.1 提取HTML标记 130
5.4.2 提取HTML标记之间的内容 131
5.4.3 提取URL 132
5.4.4 提取图像的URL 133
5.4.5 提取HTML页面的标题 134
第2篇 ASP.NET正则表达式应用
第6章 C#常用数据类型的检查与转换 136
6.1 数值数据类型的检查与转换 136
6.1.1 整数检查 136
6.1.2 实数检查 137
6.1.3 整数和字符串之间的转换 138
6.1.4 浮点数和字符串之间的转换 140
6.2 布尔数据类型检查与转换 141
6.2.1 布尔值检查 141
6.2.2 布尔值和字符串之间的转换 141
6.3 时间数据类型检查与转换 142
6.3.1 时间数据类型检查 142
6.3.2 时间和字符串之间的转换 143
6.4 数据类型检查与转换应用实例 144
第7章 不可变字符串与可变字符串的处理 146
7.1 15种不可变字符串String处理 146
7.1.1 String类和对象 146
7.1.2 插入字符串 147
7.1.3 替换字符串 147
7.1.4 填充字符串 148
7.1.5 删除字符串 149
7.1.6 分割字符串 149
7.1.7 比较字符串 150
7.1.8 连接字符串 151
7.1.9 处理字符串中的空白 152
7.1.10 转换字符串大小写 153
7.1.11 匹配和检索字符串 153
7.1.12 格式化字符串 156
7.1.13 获取子字符串 156
7.1.14 编码字符串 157
7.1.15 不可变字符串String处理的应用 157
7.2 8种可变字符串StringBuilder处理 159
7.2.1 StringBuilder类和对象 159
7.2.2 追加字符串 159
7.2.3 插入字符串 161
7.2.4 替换字符串 162
7.2.5 删除字符串 163
7.2.6 复制字符串 164
7.2.7 处理字符串容量 165
7.2.8 可变字符串StringBuilder处理的应用 165
第8章 常见的.NET框架中正则表达式及其应用 167
8.1 10种.NET框架中的正则表达式类库 167
8.1.1 System.Text.RegularExpressions命名空间 167
8.1.2 正则表达式类Regex 168
8.1.3 正则表达式选项 168
8.1.4 检查是否匹配表达式 169
8.1.5 匹配单个匹配项 170
8.1.6 匹配多个匹配项 171
8.1.7 替换 173
8.1.8 使用委托MatchEvaluator处理匹配结果 174
8.1.9 获取分组名称 175
8.1.10 分割表达式 175
8.2 14种正则表达式类Regex处理字符串 176
8.2.1 只包含数字验证 176
8.2.2 整数验证 176
8.2.3 实数验证 176
8.2.4 电话号码验证 177
8.2.5 邮政编码验证 177
8.2.6 身份证号码验证 177
8.2.7 银行卡号验证 177
8.2.8 IP地址验证 178
8.2.9 日期和时间验证 178
8.2.10 车牌号码验证 178
8.2.11 电子邮件验证 179
8.2.12 URL验证 179
8.2.13 提取网页标题 179
8.2.14 提取网页中的图像地址 180
8.2.15 提取网页中的HTTP地址 181
第9章 常见ASP.NET验证控件 183
9.1 ASP.NET验证简介 183
9.2 2种非空验证 184
9.2.1 无初始值的非空验证 185
9.2.2 指定初始值的验证 185
9.3 3种范围验证 186
9.3.1 整数范围验证 186
9.3.2 字母范围验证 187
9.3.3 日期范围验证 188
9.4 3种比较验证 189
9.4.1 两个控件内容的比较验证 189
9.4.2 检查控件内容的数据类型 190
9.4.3 指定的值和控件内容的比较验证 191
9.5 2种自定义验证 192
9.5.1 自定义客户端验证 192
9.5.2 自定义服务端验证 193
9.6 7种正则表达式验证 194
9.6.1 整数验证 194
9.6.2 数值验证 195
9.6.3 电话号码验证 196
9.6.4 身份证号码验证 197
9.6.5 电子邮件验证 198
9.6.6 日期和时间验证 199
9.6.7 URL验证 200
9.7 2种显示验证摘要 201
9.7.1 在对话框上显示验证摘要 201
9.7.2 在网页上显示验证摘要 202
第3篇 PHP正则表达式应用
第10章 常见PHP数据类型 204
10.1 7种PHP常见数据类型 204
10.1.1 布尔型 204
10.1.2 NULL型 204
10.1.3 整型 205
10.1.4 浮点型 205
10.1.5 字符串 205
10.1.6 数组 207
10.1.7 对象 208
10.2 5种常见的类型转化 209
10.2.1 变量类型变化 209
10.2.2 强制类型转换 210
10.2.3 字符串转化 212
10.2.4 数字转化 212
10.2.5 数组转化 213
10.3 小结 213
第11章 常见PHP字符串处理 214
11.1 常见的3种字符串分析 214
11.1.1 访问字符串中的字符 214
11.1.2 处理子字符串 215
11.1.3 分割字符串 217
11.2 4种字符串的操作 218
11.2.1 删除字符串的空白 218
11.2.2 转换字符串大小写 219
11.2.3 填补字符串 220
11.2.4 反转字符串 221
11.3 2种字符串的格式化 221
11.3.1 格式化数字 221
11.3.2 格式化字符串 222
11.4 字符串的查找和替换 224
11.4.1 查找字符串 224
11.4.2 替换字符串 225
11.5 3种常见的字符串的比较方法 227
11.5.1 按ASCII码顺序比较 227
11.5.2 按“自然排序”法比较 228
11.5.3 按相似性比较 229
11.6 处理HTML和URL 230
11.6.1 HTML标签的清理 230
11.6.2 HTML实体的处理 231
11.6.3 URL字符串的解析 232
11.6.4 URL编码处理 234
11.6.5 查询字符串的构造 235
11.7 小结 236
第12章 PHP与正则表达式的应用 237
12.1 关于POSIX扩展库的正则表达式函数 237
12.1.1 模式匹配 237
12.1.2 模式替换 238
12.1.3 模式分割 239
12.2 关于PCRE库的正则表达式函数 239
12.2.1 对正则表达式匹配 240
12.2.2 取得正则表达式的全部匹配 241
12.2.3 返回与模式匹配的数组单元 241
12.2.4 正则表达式的替换 242
12.2.5 正则表达式的拆分 243
12.3 PHP与正则表达式的综合应用 243
12.3.1 表单验证 243
12.3.2 UBB代码 247
12.3.3 分析Apache日志文件 251
12.4 小结 254
第4篇 JSP正则表达式应用
第13章 常见的JSP中数据处理 255
13.1 5种JSP中的常用数据类型 255
13.1.1 整数类型及应用 255
13.1.2 浮点类型及应用 258
13.1.3 字符类型及应用 259
13.1.4 布尔类型及应用 260
13.1.5 字符串类型及应用 261
13.2 2种JSP中数据类型的转换 262
13.2.1 自动类型转换及应用 262
13.2.2 强制类型转换及应用 263
13.3 7种JSP中字符串数据的处理 264
13.3.1 字符串与其他类型数据的转换 264
13.3.2 字符串的分析 265
13.3.3 字符串的查找与替换 267
13.3.4 字符串数据的整理 268
13.3.5 字符串的比较 269
13.3.6 字符串的连接 270
13.3.7 字符串的格式化 271
13.4 小结 272
第14章 常见的JSP中正则表达式 273
14.1 2种JSP中的正则表达式函数 273
14.1.1 Pattern类 273
14.1.2 Matcher类 275
14.1.3 正则表达式常用的四种功能 278
14.2 JSP中正则表达式的常见应用示例 282
14.2.1 电子邮件地址的校验 282
14.2.2 URL地址的校验 283
14.2.3 电话号码的校验 284
14.3 小结 286
第5篇 JavaScript正则表达式应用
第15章 常见的JavaScript中数据类型及其转化 287
15.1 常见的三种JavaScript数据类型 287
15.1.1 数字基本类型 287
15.1.2 字符串基本类型 288
15.1.3 布尔值基本类型 289
15.2 数据类型转化 289
15.2.1 基本数据类型转换 289
15.2.2 将字符串转化为整数 290
15.2.3 将字符串转化为浮点数 290
第16章 常见JavaScript字符串和数组处理 291
16.1 6种字符串格式处理 291
16.1.1 获取字符串的长度 291
16.1.2 根据指定的Unicode编码返回一个字符串 291
16.1.3 将字符串分割并存储到数组中 292
16.1.4 比较两个字符串的大小 292
16.1.5 将字符串转化为小写格式 293
16.1.6 将字符串转化为大写格式 294
16.2 最基本的字符串查找、替换 294
16.2.1 获取指定字符(串)第一次在字符串中出现的位置 294
16.2.2 获取指定字符(串)最后一次在字符串中出现的位置 295
16.2.3 替换字符串中指定的内容 296
16.3 字符串截取、组合的方法 296
16.3.1 返回字符串中指定位置处的字符 297
16.3.2 将一个或多个字符串连接到当前字符串的末尾 298
16.3.3 获取指定位置的字符的Unicode编码 298
16.3.4 从字符串中提取子串(1) 299
16.3.5 从字符串中提取子串(2) 300
16.3.6 从字符串中提取子串(3) 301
16.4 字符串HTML格式化 301
16.4.1 在字符串两端加入锚点标志 302
16.4.2 在字符串的两端加上粗体标志 302
16.4.3 在字符串两端加入斜体标签 302
16.4.4 在指定字符串的两端加上大字体标志 303
16.4.5 在字符串的两端加上固定宽度字体标记 303
16.4.6 设置字符串输出时的字体大小 304
16.4.7 设置字符串输出时的前景色 305
16.4.8 在字符串上加入超链接 305
16.4.9 在字符串两端加上小字体标记 306
16.4.10 在字符串两端加入下标标签 307
16.4.11 在字符串两端加入上标标签 307
16.4.12 在字符串的两端加入下画线标记 308
16.5 Array对象的方法及使用 308
16.5.1 连接其他数组到当前数组末尾 309
16.5.2 将数组元素连接为字符串 309
16.5.3 删除数组中的第一个元素 310
16.5.4 删除数组中最后一个元素 310
16.5.5 删除或替换数组中部分数据 311
16.5.6 将指定的数据添加到数组中 312
16.5.7 在数组前面插入数据 313
16.5.8 获取数组中的一部分数据 313
16.5.9 反序排列数组中的元素 314
16.5.10 对数组中的元素进行排序 314
16.5.11 返回一个包含数组中全部数据的字符串 315
第17章 常见JavaScript正则表达式应用 317
17.1 正则表达式对象RegExp及其应用 317
17.1.1 正则表达式的创建 317
17.1.2 判断字符串中是否存在匹配内容 317
17.1.3 对字符串进行匹配检测 318
17.1.4 编译正则表达式 319
17.1.5 替换字符串中的指定内容 320
17.2 处理匹配的结果 320
17.2.1 获取字符串中所有的匹配信息 320
17.2.2 获取第一次匹配的起始位置(1) 321
17.2.3 获取第一次匹配的起始位置(2) 322
17.2.4 获取子匹配的结果 322
17.2.5 获取与正则表达式进行匹配检测的字符串 324
17.2.6 获取最近一次匹配的内容 324
17.2.7 获取最近一次匹配的最后一个子匹配 325
17.2.8 获取匹配的内容的最后一个索引位置 325
17.2.9 获取匹配内容左侧的字符信息 326
17.2.10 获取匹配内容右侧的字符信息 327