0%

基本信息

名称: 高性能网站建设指南
作者信息: 作者: 平均4.0 星 [ 中文 pdf ]

简单介绍

《高性能网站建设指南》适合Web架构师、信息架构师、Web开发人员及产品经理阅读和参考。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

前言
绪言A 前端性能的重要性
绪言B HTTP概述
第1章 规则1——减少HTTP请求
第2章 规则2——实用内容发布网络
第3章 规则3——添加Expires头
第4章 规则4——压缩组件
第5章 规则5——将样式表放在顶部
第6章 规则6——将脚本放在底部
第7章 规则7——避免CSS表达式
第8章 规则8——使用外部和CSS
第9章 规则9——减少DNS查找
第10章 规则10——精简JavaScript
第11章 规则11——避免重定向
第12章 规则12——移出重复脚本
第13章 规则13——配置ETag
第14章 规则14——使AJAX可缓存
第15章 析构十大网站
索引

亚马逊链接

基本信息

名称: JavaScript王者归来
作者信息: 作者: 浏览全部评论 [ 中文 pdf ]

简单介绍

脚本神力与你同在 无忧版主月影力作。《JavaScript王者归来》是一本寻求JavaScript解决之道的书。《JavaScript王者归来》是一本探寻程序设计思想本源的“魔法典籍” 。从简单的语言基础到丰富的实际应用再到语言本质的深入剖析。字里行间包含作者对JavaScript实践乃至程序设计思想的深入思考和总结脚本攻击就在黎明发起。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
第一部分 概论
第一章 从零开始
1.1 为什么选择JavaScript?
1.1.1 用户的偏好:B/S模式
1.1.2 在什么情况下用JavaScript
1.1.3 对JavaScript的一些误解
1.1.3.1 JavaScript和Java
1.1.3.2 披着C外衣的Lisp
1.1.3.3 思维定势
1.1.3.4 业余爱好者
1.1.3.5 面向对象
1.1.3.6 其他误解
1.1.4 警惕!脚本诱惑
1.1.5 隐藏在简单表象下的复杂度
1.1.6 令人迷惑的选择:锦上添花还是雪中送炭
1.1.7 回到问题上来
1.2 JavaScript的应用范围
1.2.1 客户端的JavaScript
1.2.2 服务器端的JavaScript
1.2.3 其他环境中的JavaScript
1.3 JavaScript的版本
1.3.1 浏览器中的JavaScript版本
1.3.2 其他版本
1.4 一些值得留意的特性
1.4.1 小把戏——神奇的魔法代码
1.4.2 为客户端服务——经典Hello World!的另一种JavaScript实现
1.4.3 数据交互——JavaScript的一项强大功能
1.4.4 JavaScript表面上的禁忌及如何突破这些禁忌
1.5 安全性和执行效率
1.5.1 数据安全——永远的敏感话题
1.5.2 实战!攻击与防范
1.5.3 不容马虎——时刻关注性能
1.6 一个例子——JavaScript编写的计算器
1.6.1 从需求分析开始——什么是计算器?
1.6.2 系统设计——如何实现计算器?
1.6.3 系统实现——计算器的最终实现
1.6.4 持续改进——迭代的软件开发过程
1.7 学习和使用JavaScript的几点建议
1.7.1 像程序员一样地思考——程序员的四个境界
1.7.2 吝惜你的代码
1.7.3 学会在环境中调试
1.7.4 警惕那些小缺陷
1.7.5 思考先于实践——不要轻易动手写代码
1.7.6 时刻回头——圣贤也无法完全预知未来
1.8 关于本书的其余部分

第2章 浏览器中的JavaScript 2.1 嵌入网页的可执行内容 2.1.1 在什么地方装载JavaScript代码 2.1.2 关于代码的Script标签 2.1.3 我的代码什么时候被执行——不同执行期的JavaScript代码 2.1.4 拿来主义——引入外部的JavaScript文件 2.2 赏心悦目的特效 2.2.1 生命在于运动——DHTML的效果 2.2.2 换一种风格——CSS的力量 2.2.3 用JavaScript操作DOM——一个可拖动窗口的例子 2.3 使用JavaScript来与用户交互 2.3.1 创建一个弹出式帮助和进度条 2.3.2 填错了哦 2.4 绕开脚本陷阱 2.4.1 现实并不总是完美的 2.4.2 不能完全相信你所见到的 2.5 总结

第3章 开发环境和调试方法 3.1 我能用什么来编写脚本——适合编写JavaScript的 文本编辑器 3.2 来自浏览器的支持 3.2.1 主流浏览器 3.2.2 非主流浏览器 3.3 集成开发环境 3.3.1 什么是集成开发环境 3.3.2 我需要集成开发环境吗 3.3.3 适合JavaScript的集成开发环境 3.4 调试工具——提升开发效率的利器 3.4.1 什么是调试 3.4.2 原始的调试方法——利用输出语句、“反射”机制和调试对象来进行调试 3.4.3 适合JavaScript的调试工具 3.5 定位代码和调用堆栈 3.5.1 Step by Step——单步和断点 3.5.2 监视内存 3.5.3 追踪问题的源头——查看调用堆栈 3.5.4 遇到麻烦了——为什么我跟踪不到代码 3.6 浏览器捕获异常 3.6.1 异常处理机制——一个try/catch/finally模式的例子 3.6.2 异常的种类 3.6.3 应该在什么时候“吃掉”异常 3.7 总结

第二部分 JavaScript核心 第4章 语言结构 第5章 数据类型 第6章 函数 第7章 对象 第8章 集合 第9章 字符串 第10章 正则表达式

第三部分 浏览器与DOM 第11章 浏览器对象 第12章 文档对象模型 第13章 事件处理 第14章 级联样式表 第15章 数据存储的脚本化

第四部分 数据交互 第16章 同步和异步 第17章 XML DOM和XML HTTP 第18章 Ajax简介 第19章 标准和兼容性 第20章 信息安全

第五部分 超越JavaScript 第21章 面向对象 第22章 闭包与函数式编程 第23章 模块级管理 第24章 动态构建 第25章 执行效率 第26章 应用框架

亚马逊链接

基本信息

名称: JavaScript高级应用与实践
作者信息: 作者: 浏览全部评论 [ 中文 pdf ]

简单介绍

《JavaScript高级应用与实践》适合于不同层次的JavaScript语言爱好者和技术人员学习和参考。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
第1章  快速入门
1.1 阅读本书方式
1.1.1 融合注释,会说话的代码
1.1.2 交叉阅读
1.1.3 水到渠成
1.1.4 环境
1.2 规范和约定
1.2.1 注释约定
1.2.2 命名约定
1.2.3 辅助调试编码约定
1.3 本书公共代码(Jcore.js)导读
1.4 本书常见代码语法预阅
1.4.1 逗号运算符号
1.4.2 JavaScript独特的逻辑或、逻辑与运算符号
1.5 不推荐的中文命名方式
1.6 本书的写作思想

第2章 Function扩展和性能 2.1 关于Function的设计原则建议 2.2 arguments,length 2.3 toString 方法和valueOf 方法 2.4 Function的toString还有个妙用 2.5 绑定技术 HTML DOM对象事件动态行为绑定 2.6 JavaScript中的this( )是什么 2.7 绑定NaN、Infinity、null、undefined给对象,this会是什么 2.8 Function对象的apply 和call的区别 2.9 不用new的时候应该注意什么 2.9.1 一般直接调用方式 2.9.2 new调用 2.9.3 apply方式 2.9.4 call方式 2.9.5 本书推荐的巧妙方式 2.10 如何给你的function增加[ ]运算符号的支持Web项目中HTML DOM的应用 2.11 如何让你的this加、减、乘、除 2.12 回调函数之函数“类型” 流行中的AJAX里的回调应用 2.13 打造方便的调试函数 2.14 匿名函数 2.15 匿名函数的递归调用 2.16 继承后如何在函数中访问Super的简化设计 2.17 静态函数、属性的访问问题 2.18 总结

第3章 Object扩展和性能及Web应用之神兵利器 3.1 typeof和constructor总结 3.2 高性能初始化 3.2.1 和普通Object初始化的性能比较 3.2.2 与function的比较 3.3 当心,这里的bind对我无用 3.4 完美之绑定(bind)将通用于Object、Function和其他对象,同时支持给Object增加[ ]运算符号 3.5 通用属性复制 3.6 “继承” 3.7 多态 3.8 推荐的对象模型方法[优点:一个名称空间,更便于内存才清理和释放] 3.9 Json引入 3.9.1 什么是Json 3.9.2 Json串形化有什么用途 3.9.3 我为Json修正了什么 3.9.4 Json使用举例 3.10 toString 3.11 融合HTML DOM支持的完美通用对象迭代器模型设计之each 3.12 通用迭代模式的元素属性的获取和设置Style外观样式对象的获取和设置设计 3.13 通用对象排序模型设计之继承Array的相关功能 3.14 isPrototypeOf和hasOwnProperty 3.14.1 isPrototypeOf 3.14.2 hasOwnProperty 3.15 给所有JavaScript对象扩展属性、方法 3.16 打造“完美中的完美”的HTML DOM对象XPath对象选择器 115 3.16.1 XPath对象选择器架构说明 3.16.2 模式匹配函数定义说明 3.16.3 基本正则表达式模式详解 3.16.4 可扩展的转义及可扩展模块说明 3.16.5 选择后的对象集合如何支持HTML事件的动态绑定 125 3.16.6 实现代码及使用举例 3.17 不要被怪物吓倒:0.1234[“each”]、true[“each”] 152 3.18 泛型设计之保留四舍五入保留小数:toFixed 3.19 addClass、removeClass、toggleClass、mstgcls、remove的扩展设计

第4章 Array扩展和独辟蹊径的应用 4.1 高性能初始化 4.2 数字下标 4.3 文本下标 4.4 “特殊”数字下标揭秘 4.5 对象下标揭秘 4.6 迭代器 4.7 扩展Array及应用 4.7.1 Max、Min的扩展 4.7.2 indexOf、lastIndexOf的扩展 4.7.3 some、every、filter、forEach、map的扩展 4.7.4 克隆的实现 4.8 Array函数功能增强 4.8.1 push的增强,名为ps 4.8.2 pop的增强,名为pp 4.8.3 shift的增强,名为sft 4.8.4 unshift的增强,名为usft 4.8.5 splice的增强,名为splc 4.9 给自己定义的对象增加[ ]运算符号

第5章 String的扩展 5.1 如何将自定义对象直接赋予HTML DOM的innerText、innerHTML、value和其他属性 5.2 扩展自己的append方法 5.3 也谈StringBuffer 5.3.1 StringBuffer的实现 5.3.2 和String扩展的append性能比较 5.4 扩展自己的trim、trimAll、trimL、trimR 5.5 兼容Java时equals的扩展 5.6 把replace玩到颠峰 5.6.1 稍微高级的玩法设计 5.6.2 最迷惑人的隐匿方式设计 5.7 转换汉字及双字节字符为Unicode 5.7.1 Unicode编码 5.7.2 Unicode解码 5.8 加密我的String加、解密的实现 5.9 Web常用验证功能集 5.9.1 身份证的验证和自动升位 5.9.2 E-mail的验证 5.9.3 数字范围验证及在Web开发中的应用、输入限制的设计 214 5.9.4 Web开发中IP地址的输入限制和验证 5.10 类似Java里的参数功能:toString的{1 ……n}参数模式的合成 5.11 String的Left、Right、Mid扩展

第6章 For的优化和性能提升 6.1 使用For…in应该注意什么 6.2 do{……} while()和for的性能比较 6.3 匿名函数对象对性能的提升 6.4 倒着循环对性能的提升 6.5 最佳性能for的设计 6.6 本章for各种实现性能综合比较 第7章 window对象的性能应用

第8章 Form开发经验之谈 8.1 通用获取输入对象元素value的设计 8.2 通用设置输入对象元素value的设计 8.3 异步支持设计 8.4 动态支持上传N个文件的封装设计 8.5 Web开发中自定义输入对象组和表达式求值的设计 309 8.6 Web开发中人性化输入值长度光标跟踪提示 8.7 如何在必输项没有输入值前其相关按钮、对象不可以操作 313 8.8 如何令表格中没有选择radio、checkbox输入对象的时候相应的 8.8 按钮、相应的对象不可以操作 8.9 AJAX让你的网站支持多语言——多语言的google Translate AJAX 8.8 的封装 …… 第15章 JavaScript在WebDAV中的应用 附录A 附录B 参考文献

亚马逊链接

基本信息

名称: Python源码剖析 深度探索动态语言核心技术
作者信息: 作者: 浏览全部评论 [ 中文 pdf ]

简单介绍

《Python源码剖析:深度探索动态语言核心技术》适合于Python程序员、动态语言爱好者、C程序员阅读。作为主流的动态语言,Python不仅简单易学、移植性好,而且拥有强大丰富的库的支持。此外,Python强大的可扩展性,让开发人员既可以非常容易地利用C/C++编写Python的扩展模块,还能将Python嵌入到C/C++程序中,为自己的系统添加动态扩展和动态编程的能力。为了更好地利用Python语言,无论是使用Python语言本身,还是将Python与C/C++交互使用,深刻理解Python的运行原理都是非常重要的。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
第0章 Python源码剖析——编译Python
0.1 Python总体架构
0.2 Python源代码的组织
0.3 Windows环境下编译Python
0.4 Unix/Linux环境下编译Python
0.5 修改Python源代码
0.6 通往Python之路
0.7 一些注意事项

第1部分 Python内建对象 第1章 Python对象初探 1.1 Python内的对象 1.1.1 对象机制的基石——PyObject 1.1.2 定长对象和变长对象 1.2 类型对象 1.2.1 对象的创建 1.2.2 对象的行为 1.2.3 类型的类型 1.3 Python对象的多态性 1.4 引用计数 1.5 Python对象的分类 第2章 Python中的整数对象 第3章 Python中的字符串对象 第4章 Python中的LIST对象 第5章 Python中的DICT对象 第6章 最简单的Python模拟——SMALL Python

第2部分 Python的虚拟机 第7章 Python的编译结果——CODE 对象与PYC文件 第8章 Python虚拟机框架 第9章 Python虚拟机中的一般表达式 第10章 Python虚拟机中的控制流 第11章 Python虚拟机中的函数机制 第12章 Python虚拟机中的类机制

第3部分 Python高级话题 第13章 Python运行环境初始化 第14章 Python模块的动态加载机制 第15章 Python多线程机制 第16章 Python的内存管理机制

亚马逊链接

基本信息

名称: Windows核心编程(第5版)
作者信息: 作者: 杰夫瑞 (Jeffrey Richter) [ 中文 pdf ]

简单介绍

《Windows核心编程(第5版)》是一本经典的Windows核心编程指南,从第1版到第5版,引领着数十万程序员走入Windows开发阵营,培养了大批精英。《Windows核心编程(第5版)》针对WindowsXP,WindowsVista和WindowsServer2008全面修订。主题广泛,内容丰富,讲解深入而精辟。透过这本Windows编程经典,我们可以在专家的悉心指导下,洞悉Windows编程精华,深入了解高级编程技巧,编写出高性能的Windows应用程序。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
第1部分 必备知识
第1章 错误处理
1.1 定义自己的错误代码
1.2 Error Show示例程序
第2章 字符和字符串处理
2.1 字符编码
2.2 ANSI字符和Unicode字符与字符串数据类型
2.3 Windows中的Unicode函数和ANSI函数
2.4 C运行库中的Unicode函数和ANSI函数
2.5 C运行库中的安全字符串函数
2.5.1 初识新的安全字符串函数
2.5.2 在处理字符串时如何获得更多控制
2.5.3 Windows字符串函数
2.6 为何要用Unicode
2.7 推荐的字符和字符串处理方式
2.8 Unicode与ANSI字符串转换
2.8.1 导出ANSI和Unicode DLL函数
2.8.2 判断文本是ANSI还是Unicode
第3章 内核对象
3.1 何为内核对象
3.1.1 使用计数
3.1.2 内核对象的安全性
3.2 进程内核对象句柄表
3.2.1 创建一个内核对象
3.2.2 关闭内核对象
3.3 跨进程边界共享内核对象
3.3.1 使用对象句柄继承
3.3.2 改变句柄的标志
3.3.3 为对象命名
3.3.4 终端服务命名空间
3.3.5 专有命名空间
3.3.5 复制对象句柄
第Ⅱ部分 工作机制
第4章 进程
4.1 编写第一个Windows应用程序
4.1.1 进程实例句柄
4.1.2 进程前一个实例的句柄
4.1.3 进程的命令行
4.1.4 进程的环境变量
4.1.5 进程的关联性
4.1.6 进程的错误模式
4.1.7 进程当前所在的驱动器和目录
4.1.8 进程的当前目录
4.1.9 系统版本
4.2 Create Process函数
4.2.1 psz Application Name和psz Command Line参数
4.2.2 psa Process,psaThread和bInherit Handles参数
4.2.3 fdw Create参数
4.2.4 pv Environment参数
4.2.5 psz Cur Dir参数
4.2.6 psi StartInfo参数
4.2.7 ppi ProcInfo参数
4.3 终止进程
4.3.1 主线程的入口点函数返回
4.3.2 Exit Process函数
4.3.3 Terminate Process函数
4.3.4 当进程中的所有线程终止时
4.3.5 当进程终止运行时
4.4 子进程
4.5 管理员以标准用户权限运行时
4.5.1 自动提升进程的权限
4.5.2 手动提升进程的权限
4.5.3 何为当前权限上下文
4.5.4 枚举系统中正在运行的进程
4.5.5 Process Information示例程序
第5章 作业
5.1 对作业中的进程施加限制
5.2 将进程放入作业中
5.3 终止作业中的所有线程查询作业统计信息
5.4 作业通知
5.6 Job Lab示例程序
第6章 线程基础
6.1 何时创建线程
6.2 何时不应该创建线程
6.3 编写第一个线程函数
6.4 Create Thread函数
6.4.1 psa参数
6.4.2 cb Stack Size参数
6.4.3 pfn Start Addr和pv Param参数
6.4.4 dw Create Flags
6.4.5 pdw ThreadID7
6.5 终止运行线程
6.5.1 线程函数返回
6.5.2 Exit Thread函数
6.5.3 Terminate Thread函数
6.5.4 进程终止运行时
6.5.5 线程终止运行时
6.6 线程内幕
6.7 C/C++运行库注意事项
6.7.1 用_beginthreadex而不要用Create Thread创建线程
6.7.2 绝对不应该调用的C/C++运行库函数
6.8 了解自己的身份
6.8.1 将伪句柄转换为真正的句柄
第7章 线程调度、优先级和关联性
7.1 线程的挂起和恢复
7.2 进程的挂起和恢复
7.3 睡眠
7.4 切换到另一个线程
7.5 在超线程CPU上切换到另一个线程
7.6 线程的执行时间
7.7 在实际上下文中谈CONTEXT结构
7.8 线程优先级
7.9 从抽象角度看优先级
7.10 优先级编程
7.10.1 动态提升线程优先级
7.10.2 为前台进程微调调度程序
7.10.3 调度I/O请求优先级
7.10.4 Scheduling Lab 示例程序
7.11 关联性
第8章 用户模式下的线程同步
8.1 原子访问:Interlocked系列函数
8.2 高速缓存行
8.3 高级线程同步需要避免使用的一种方法
8.4 关键段
8.4.1 关键段:细节
8.4.2 关键段和旋转锁
8.4.3 关键段和错误处理
8.5 Slim读/写锁
8.6 条件变量
8.6.1 Queue示例程序
8.6.2 在停止线程时的死锁问题
8.6.3 一些有用的窍门和技巧
第9章 用内核对象进行线程同步
9.1 等待函数
9.2 等待成功所引起的副作用
9.3 事件内核对象
9.4 可等待的计时器内核对象
9.4.1 让可等待的计时器添加APC调用
9.4.2 计时器的剩余问题
9.5 信号量内核对象
9.6 互斥量内核对象
9.6.1 遗弃问题
9.6.2 互斥量与关键段的比较
9.6.3 Queue示例程序
9.7 线程同步对象速查表
9.8 其他的线程同步函数
9.8.1 异步设备I/O
9.8.2 Wait For InputIdle函数
9.8.3 Msg Wait For Multiple Objects(Ex)函数
9.8.4 Wait For Debug Event函数
9.8.5 Signal Object And Wait函数
9.8.6 使用等待链遍历API来检测死锁
第10章 同步设备I/O与异步设备I/O
10.1 打开和关闭设备细看Create File函数
10.2 使用文件设备
10.2.1 取得文件的大小
10.2.2 设置文件指针的位置
10.2.3 设置文件尾
10.3 执行同步设备I/O
10.3.1 将数据刷新至设备
10.3.2 同步I/O的取消
10.4 异步设备I/O基础
10.4.1 OVERLAPPED结构
10.4.2 异步设备I/O的注意事项
10.4.3 取消队列中的设备I/O请求
10.5 接收I/O请求完成通知
10.5.1 触发设备内核对象
10.5.2 触发事件内核对象
10.5.3 可提醒I/O
10.5.4 I/O完成端口
10.5.5 模拟已完成的I/O请求
第11章 Windows线程池
11.1 情形1:以异步方式调用函数
11.1.1 显式地控制工作项
11.1.2 Batch示例程序
11.2 情形2:每隔一段时间调用一个函数
11.3 情形3:在内核对象触发时调用一个函数
11.4 情形4:在异步I/O请求完成时调用一个函数
11.5 回调函数的终止操作
11.5.1 对线程池进行定制
11.5.2 得体地销毁线程池:清理组
第12章 纤程
第Ⅲ部分 内存管理
第13章 Windows内存体系结构
13.1 进程的虚拟地址空间
13.2 虚拟地址空间的分区
13.2.1 空指针赋值分区
13.2.2 用户模式分区
13.3 地址空间中的区域
13.4 给区域调拨物理存储器
13.5 物理存储器和页交换文件
13.6 页面保护属性
13.6.1 写时复制
13.6.2 一些特殊的访问保护属性标志
13.7 实例分析
13.8 数据对齐的重要性
第14章 探索虚拟内存
14.1 系统信息
14.2 虚拟内存状态
14.3 NUMA机器中的内存管理
14.4 确定地址空间的状态
14.4.1 VM Query函数
14.4.2 示例程序:虚拟内存映射
第15章 在应用程序中使用虚拟内存
15.1 预订地址空间区域
15.2 给区域调拨物理存储器
15.3 同时预订和调拨物理存储器
15.4 何时调拨物理存储器
15.5 撤销调拨物理存储器及释放区
15.5.1 何时撤销调拨物理存储器
15.5.2 虚拟内存分配示例程序
15.6 改变保护属性
15.7 重置物理存储器的内容
15.8 地址窗口扩展
第16章 线程栈
16.1 C/C++运行库的栈检查函数
16.2 Summation示例程序
第17章 内存映射文件
17.1 映射到内存的可执行文件和DLL
17.1.1 同一个可执行文件或DLL的多个实例不会共享静态数据
17.1.2 在同一个可执行文件或DLL的多个实例间共享静态数据
17.1.3 Application Instances示例程序
17.2 映射到内存的数据文件
17.2.1 方法1:一个文件,一块缓存
17.2.2 方法2:两个文件,一块缓存
17.2.3 方法3:一个文件,两块缓存
17.2.4 方法4:一个文件,零个缓存
17.3 使用内存映射文件
17.3.1 第1步:创建或打开文件内核对象
17.3.2 第2步:创建文件映射内核对象
17.3.3 第3步:将文件的数据映射到进程的地址空间
17.3.4 第4步:从进程的地址空间撤销对文件数据的映射
17.3.5 第5步和第6步:关闭文件映射对象和文件对象
17.6 File Reverse示例程序
17.7 用内存映射文件来处理大文件
17.8 内存映射文件和一致性
17.9 给内存映射文件指定基地址
17.10 内存映射文件的实现细节
第18章 堆
18.1 进程的默认堆
18.2 为什么要创建额外的堆
18.2.1 对组件进行保护
18.2.2 更有效的内存管理
18.2.3 使内存访问局部化
18.2.4 避免线程同步的开销
18.2.5 快速释放
18.3 如何创建额外的堆
18.3.1 从堆中分配内存块
18.3.2 调整内存块的大小
18.3.3 获得内存块的大小
18.3.4 释放内存块
18.3.5 销毁堆
18.3.6 在C++中使用堆
18.4 其他堆函数
第Ⅳ部分 动态链接库
第19章 DLL基础
19.1 DLL和进程的地址空间
19.2 纵观全局
19.2.1 构建DLL模块
19.2.2 构建可执行模块
19.2.3 运行可执行模块
第20章 DLL高级技术
20.1 DLL模块的显式载入和符号链接
20.1.1 显式地载入DLL模块
20.1.2 显式地卸载DLL模块
20.1.3 显式地链接到导出符号
20.2 DLL的入口点函数
20.2.1 DLL_PROCESS_ATTACH通知
20.2.2 DLL_PROCESS_DETACH通知
20.2.3 DLL_THREAD_ATTACH通知
20.2.4 DLL_THREAD_DETACH通知
20.2.5 Dll Main的序列化调用
20.2.6 Dll Main和C/C++运行库
20.3 延迟载入DLL
20.4 函数转发器
20.5 已知的DLL
20.6 DLL重定向
20.7 模块的基地址重定位
20.8 模块的绑定
第21章 线程局部存储区
21.1 动态TLS
21.2 静态TLS0
第22章 DLL注入和API拦截
22.1 DLL注入的一个例子
22.2 使用注册表来注入DLL
22.3 使用Windows挂钩来注入DLL
22.4 使用远程线程来注入DLL
22.4.1 Inject Library示例程序
22.4.2 Image Walk DLL
22.5 使用木马DLL来注入DLL
22.6 把DLL作为调试器来注入
22.7 使用Create Process来注入代码
22.8 API拦截的一个例子9
22.8.1 通过覆盖代码来拦截API0
22.8.2 通过修改模块的导入段来拦截API
22.8.3 Last Message Box Info示例程序
第Ⅴ部分 结构化异常处理
第23章 终止处理程序
第24章 异常处理程序与软件异常
24.1 通过实例理解异常过滤程序和异常处理程序
24.1.1 Funcmeister1函数
24.1.2 Funcmeister2函数
24.2 EXCEPTION_EXECUTE_HANDLER1
24.2.1 一些有用的例子
24.2.2 全局展开
24.2.3 停止全局展开
24.3 EXCEPTION_CONTINUE_EXECUTION
24.4 EXCEPTION_CONTINUE_SEARCH0
24.5 GetExceptionCode2
24.6 GetExceptionInformation6
24.7 软件异常
第25章 未处理异常、向量化异常处理与C++异常
25.1 Unhandled Exception Filter函数详解
25.2 即时调试
25.3 电子表格示例程序
25.4 向量化异常和继续处理程序
25.5 C++异常与结构化异常的比较
25.6 异常与调试器
第26章 错误报告与应用程序恢复
26.1 Windows错误报告控制台
26.2 可编程的Windows错误报告
26.3 对进程中所有的问题报告进行定制
26.4 问题报告的创建与定制
26.4.1 创建一个自定义的问题报告
26.4.2 设置报告参数:Wer Report Set Parameter
26.4.3 将小型转储文件放入报告:Wer Report Add Dump 8
26.4.4 将任意文件放入报告:Wer Report AddFile 9
26.4.5 修改对话框文本:Wer Report Set UI Option
26.4.6 提交错误报告:Wer Report Submit
26.4.7 关闭问题报告:Wer Report Close Handle
26.4.8 Customized WER示例程序
26.5 应用程序的自动重启与恢复
26.5.1 应用程序的自动重启
26.5.2 对应用程序恢复的支持
第Ⅵ部分
附录A 构建环境
附录B 消息处理宏、子控件宏和API宏
索引

亚马逊链接

基本信息

名称: 写给大家看的设计书(第3版)
作者信息: 作者: 威廉姆斯 (Robin Williams) [ 中文 pdf ]

简单介绍

《写给大家看的设计书(第3版)》编辑推荐:通过《写给大家看的设计书(第3版)》,普通读者很快就能够自信地设计出专业级别的作品,而专业设计师也将从中获得灵感和解决问题的途径。有大师指导,人人都能成为设计师!优秀设计就这么简单:C.R.A.P四条基本原则,生动幽默,图文并茂,让你手不释卷、欲罢不能。在《写给大家看的设计书(第3版)》这部畅销全球多年、影响了一代设计师的经典著作中,Robjn Williams将优秀设计的秘诀归纳为对比、重复、对齐和亲密性四条基本原则,并用简洁通俗、幽默生动的文笔,同时配以大量经过修改进行前后对比的实例图解和设计练习(并提供解答),直观而清晰地传授给读者。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
第一部分 设计原则
1 约书亚树
4 大基本原则

2 亲密性 亲密性小结 根本目的 如何实现 要避免的问题

3 对齐 对齐小结 根本目的 如何实现 要避免的问题

4 重复 重复小结 根本目的 如何实现 要避免的问题

5 对比 对比小结 根本目的 如何实现 要避免的问题

6 复习 亲密性 对齐 重复 对比 小测验#1:设计原则 小测验#2:重新设计广告 小结

7 颜色运用 不同凡响的色轮 颜色关系 互补 三色组 分裂互补三色组 类似色 暗色和亮色 建立你自己的暗色和亮色 单色 暗色和亮色的组合 注意色质 暖色与冷色 如何取舍 CMYK与RGB,印刷与Web

8 更多提示与技巧 创建包装 企业名片 关于设计企业名片的提示 格式 字体大小 创建名片、信笺和信封共有的一致图像 信笺和信封 关于设计信笺和信封的提示 信封规格 创建中心点 对齐 第二页 传真和复印 传单 关于设计传单的提示 创建一个中心点 使用有对比的子标题 重复 对齐 新闻简报 关于设计新闻简报的提示 对齐 段落缩进 不要使用Helvetica 正文应当可读 宣传册 关于设计宣传册的提示 对比 重复 对齐 亲密性 明信片 关于设计明信片的提示 关键是什么 吸引人注意 对比 报纸广告 关于设计报纸广告的提示 对比 字体选择 反色文字 网站 关于设计网页的提示 重复 可读性

第二部分 字体设计 9 字体(与人生) 协调 冲突 对比 小结

10 字体类别 Oldstyle Modern Slabserif Sansserif Script 有意识地去做 小测验#3:字体类别 小测验#4:粗/细过渡 小测验#5:截线 小结

11 字体对比 大小 粗细 结构 形状 方向 颜色 结合多种对比 小结 小测验#6:对比还是冲突 小测验#7:可做与不可做 结合多种对比的练习

第三部分 其他 12 你掌握了吗 过程 练习 好的——重新设计!

13 测验答案 14 本书所用字体 附录 OpenType 迷你术语表 资源 索引

亚马逊链接

基本信息

名称: Ruby on Rails Web开发之旅
作者信息: 作者: Patrick Lenz [ 中文 pdf ]

简单介绍

阅读《Ruby on Rails Web开发之旅》可获得以下知识和技能:·Ruby的基本概念:·Rails1.2的新特性:·最实用的MVC结构体系:·建立并布署完整的Rails Web应用:·使用Rails的AJAX特性创建灵活的界面;·使用ActiveRecord操作数据库;·自动测试代码:·使用插件增强应用程序的功能。Patrick Lenz从事web应用开发已经10年了,他是freshmeat.net软件门户网站的创始人和首席开发者。他的Ralls咨询机构和应用开发公司limitedoverload主要负责eins.de公司的重新开张,eins.de是目前欧洲最流行Ruby on Rails网站。Sitepoint-SitePoint是全球著名的web开发与设计类图书出版商。出版高品质专业畅销书。通过互动、开源、全方位的网站配套服务,SitePoinl让每本畅销书都成为一个互动的阅读和代码交流的虚拟社区。2007年,SitePoint网站被美国sBizMBA评为全球“最受欢迎的电子商务网站”第3名;2008年,SitePoint荣登hitwise com澳大利亚计算机与Internet类网站排行榜榜首。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
第1章 Ruby on Rails简介 1
1.1 历史 3
1.2 开发原则 4
1.2.1 惯例优先 4
1.2.2 不重复自我 5
1.2.3 灵活的开发 6
1.3 构建Web应用程序示例 7
1.3.1 digg简介 7
1.3.2 应用程序示例的特性 8
1.4 小结 9

第2章 技术准备 11 2.1 所需软件的成本 12 2.2 在Windows系统上安装Ruby on Rails 12 2.3 在Mac OS X系统上安装Ruby on Rails 14 2.3.1 Mac OS X 10.5(Leopard) 14 2.3.2 Mac OS X 10.4(Tiger)和更早的版本 15 2.4 在Linux系统上安装Ruby on Rails 22 2.4.1 使用包管理器 22 2.4.2 先决条件 22 2.4.3 在Linux上安装Ruby 23 2.4.4 在Linux上安装RubyGems 24 2.4.5 在Linux上安装Rails 25 2.4.6 在Linux上安装MySQL 26 2.5 建立基础 28 2.5.1 管理所有内容的单目录结构 28 2.5.2 创建标准目录结构 29 2.6 开始编写应用程序 30 2.7 选择文本编辑器 32 2.7.1 Windows文本编辑器 32 2.7.2 Mac OS X文本编辑器 33 2.7.3 Linux和交叉平台编辑器 35 2.8 小结 35

第3章 Ruby简介 36 3.1 Ruby是脚本语言 36 3.1.1 编译语言 36 3.1.2 脚本语言 37 3.1.3 较大的性能争议 37 3.2 Ruby是面向对象的语言 37 3.3 读写Ruby代码 40 3.3.1 交互式的Ruby界面(irb) 40 3.3.2 与Ruby对象交互 41 3.3.3 Ruby中的标点 42 3.4 在Ruby中使用面向对象编程 44 3.4.1 类和对象 45 3.4.2 对象层功能 45 3.4.3 类层功能 48 3.4.4 继承 50 3.4.5 返回值 50 3.5 标准输出 51 3.6 Ruby核心类 52 3.6.1 数组 52 3.6.2 散列表 53 3.6.3 字符串 54 3.6.4 数字 55 3.6.5 符号 56 3.6.6 空值 57 3.7 运行Ruby文件 57 3.8 控制结构 58 3.8.1 条件 59 3.8.2 循环 61 3.8.3 块 62 3.9 小结 64

第4章 Rails揭秘 65 4.1 3种环境 65 4.2 数据库配置 66 4.2.1 数据库配置文件 66 4.2.2 创建数据库 67 4.3 MVC体系结构 69 4.3.1 MVC理论 69 4.3.2 MVC的Rails方式 70 4.3.3 ActiveRecord(模型) 71 4.3.4 ActionPack模块 74 4.4 代码生成 77 4.5 ActionMailer 78 4.6 测试和调试 79 4.6.1 测试 79 4.6.2 调试 80 4.7 MySQL的图形用户接口工具 80 4.8 小结 82

第5章 模型、视图和控制器 84 5.1 创建模型 84 5.1.1 模型生成器 84 5.1.2 使用移植修改模式 87 5.1.3 使用Rails控制台管理数据 91 5.1.4 隐藏的SQL语句 94 5.2 生成控制器 95 5.2.1 运行generate脚本 95 5.2.2 输出结果分析 96 5.2.3 返回应用程序 97 5.3 创建视图 98 5.3.1 用支架生成视图 99 5.3.2 创建静态页面 100 5.3.3 创建动态页面 100 5.3.4 反复传递数据 101 5.3.5 引入模型 102 5.4 小结 103

第6章 助手、窗体和布局 104 6.1 可信任助手 104 6.2 故事提交 105 6.2.1 创建窗体 105 6.2.2 保存数据到数据库中 109 6.2.3 创建布局 110 6.2.4 用户反馈和闪存 112 6.3 测试窗体 117 6.3.1 测试模型 117 6.3.2 测试控制器 121 6.3.3 再次访问日志 126 6.4 小结 127

第7章 AJAX与Web 2.0 128 7.1 生成投票模型 128 7.1.1 创建模型 128 7.1.2 创建移植 129 7.1.3 执行移植 130 7.2 关系 130 7.2.1 has_many子句 130 7.2.2 belongs_to子句 132 7.2.3 关系框架 133 7.3 简洁URL与Permalink 133 7.3.1 实现简洁URL 134 7.3.2 为故事增加Permalink 135 7.3.3 故事显示 137 7.4 AJAX与Rails 139 7.4.1 AJAX简介 139 7.4.2 使用Prototype调用远程脚本 140 7.4.3 使用script.aculo.us完成视觉效果 140 7.4.4 “推选”故事 142 7.5 Partial简介 149 7.5.1 添加投票历史记录 150 7.5.2 创建partial 151 7.5.3 投票历史记录样式 151 7.5.4 处理投票历史记录 153 7.6 测试投票功能 154 7.6.1 测试模型 154 7.6.2 测试控制器 158 7.6.3 运行完整测试体系 161 7.7 小结 162

第8章 安全措施 163 8.1 session和cookie 163 8.1.1 单一用户认证 163 8.1.2 cookie 164 8.1.3 session 165 8.1.4 Rails中的session 165 8.2 User模型 167 8.2.1 生成User模型 167 8.2.2 为User类添加关系 168 8.2.3 创建User 169 8.3 登录功能 170 8.3.1 创建控制器 170 8.3.2 创建视图 170 8.3.3 增加控制器功能 172 8.4 过滤器 174 8.4.1 before过滤器 174 8.4.2 after过滤器 174 8.4.3 around过滤器 175 8.4.4 关于过滤方法 175 8.5 用户登录管理 176 8.5.1 检索当前用户 176 8.5.2 显示当前用户姓名 177 8.5.3 允许用户退出 179 8.6 添加导航菜单 180 8.7 限制应用 182 8.7.1 保护表单 182 8.7.2 限制访问故事提交 184 8.7.3 建立故事和用户的关联 185 8.8 测试用户验证 186 8.8.1 测试模型 187 8.8.2 测试控制器 190 8.9 小结 198

第9章 高级话题 199 9.1 受欢迎故事晋级 199 9.1.1 使用计数器缓存 199 9.1.2 完成首页 202 9.1.3 实现投票箱 205 9.1.4 抽象表示逻辑 206 9.1.5 请求用户登录来投票 209 9.1.6 添加故事属性 211 9.2 自动生成Permalinks 212 9.2.1 模型回调 213 9.2.2 添加回调 214 9.3 扩展提交窗体 215 9.4 添加用户页面 217 9.4.1 join模型关系 217 9.4.2 has_many:through关联 217 9.4.3 修改控制器 218 9.4.4 建立视图 219 9.5 测试新功能 220 9.5.1 测试模型 221 9.5.2 测试StoryController 224 9.5.3 测试AccountController 228 9.5.4 运行完整的测试包 228 9.6 小结 229

第10章 Rails插件 231 10.1 插件简介 231 10.2 为Shovell添加标签 232 10.2.1 acts_as_taggable插件 233 10.2.2 实现标签提交 238 10.2.3 标签显示 239 10.2.4 创建标签 241 10.2.5 根据标签显示故事 242 10.3 测试标签功能 243 10.3.1 测试模型 243 10.3.2 测试控制器 245 10.3.3 运行测试体系 247 10.4 小结 248

第11章 调试、测试和基准测试 249 11.1 调试应用程序 249 11.1.1 模板内调试 250 11.1.2 使用断点进行测试 254 11.1.3 使用Rails日志工具 258 11.1.4 克服调试中的问题 260 11.2 测试应用程序 260 11.2.1 集成测试 260 11.2.2 使用断点 262 11.2.3 Rails控制台 264 11.3 应用程序基准测试 266 11.3.1 从日志文件中取出基准 266 11.3.2 手动基准测试 268 11.4 小结 270

第12章 部署和产品使用 271 12.1 “产品”的含义 271 12.2 选择产品环境 272 12.2.1 Web服务器选项 273 12.2.2 后台选项 274 12.3 部署Shovell 275 12.4 session存储的选择 283 12.4.1 ActiveRecord存储会话容器 283 12.4.2 MemCached存储会话容器 284 12.5 知识拓展 284 12.5.1 缓存 284 12.5.2 版本控制与部署管理 285 12.5.3 E-mail错误通知 285 12.6 小结 286

亚马逊链接

基本信息

名称: Ruby从入门到精通
作者信息: 作者: Peter cooper [ 中文 pdf ]

简单介绍

《Ruby从入门到精通》:Ruby和Rails技术系列

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
译者序
序言
前言
致谢
第一篇 基础与脚手架
第1章 让它跑起来:安装Ruby
1.1 安装Ruby
1.1.1 Windows平台
1.1.2.AppleMacOSX平台
1.1.3 Linux平台
1.1.4 其他平台
1.2 小结

第2章 编程等于快乐:Ruby和面向对象概览 2.1 初始步骤 2.1.1 irb:交互式Ruby 2.1.2 Ruby是计算机的通用语._ 2.1.3 为什么Ruby是如此杰出的编程语言 2.1.4 心灵小径 2.2 把思路转变成Ruby代码 2.2.1 Ruby怎么理解对象和类的概念 2.2.2 造人过程 2.2.3 基础变量 2.2.4 从人到宠物 2.3 一切都是对象 2.3.1 Kernel模块的方法 2.3.2 向方法传递数据 2.3.3 使用String类的方法 2.4 以非面向对象方式使用Ruby 2.5 小结

第3章 Ruby的构造元素:数据、表达式和流程控制 3.1 数字与表达式 3.1.1 表达式基础知识 3.1.2 变量 3.1.3 比较运算符与表达式 3.1.4 用块和迭代子在数字中循环 3.1.5 浮点数 3.1.6 常量 3.2 文本与字符串 3.2.1 字面字符串 3.2.2 字符串表达式 3.2.3 插写 3.2.4 字符串方法 3.2.5 正则表达式与字符串操作 3.3 数组与列表 3.3.1 基本数组 3.3.2 字符串切分成数组 3.3.3 数组迭代 3.3.4 数组的其他方法 3.4 散列表 3.4.1 散列表的基础方法 3.4.2 散列表中的散列表 3.5 流程控制 3.5.1 if与unless 3.5.2 三元运算符 3.5.3 elsif与case 3.5.4 while与until 3.5.5 代码块 3.6 其他有用的构造元素 3.6.1 日期与时间 3.6.2 大数字 3.6.3 范围 3.6.4 符号 3.6.5 类间转换 3.7 小结

第4章 开发基础的Ruby应用程序 4.1 处理源代码文件 4.1.1 创建测试文件 4.1.2 测试用源代码文件 4.1 _3运行源代码 4.2 我们的目标程序:文本分析器 4.2.1 基本功能需求 4.2.2 构建程序基本框架 4.2.3 获取哑文本 4.2.4 载入文本文件并统计行数 4.2.5 统计字符数 4.2.6 统计字数 4.2.7 统计句子和段落数 4.2.8 计算平均值 4.2.9 到目前为止的源代码 4.3 增加额外功能 4.3.1 “有用”字词的百分比 4.3.2 找出“有趣的”句子进行汇总 4.3.3 分析text.txt之外的其他文件 4.4 完整的程序 4.5 小结

第5章 Ruby生态系统 5.1 Ruby的历史 5.1.1 Ruby的起源 5.1.2 Ruby的影响 5.1.3 向西方流传 5.2 RubyOnRails 5.2.1 Rails面世的由来 5.2.2 Web(2.0)是怎样赢的 5.3 开源文化 5.4 如何获得帮助 5.4.1 邮件列表 5.4.2 Usenet新闻组 5.4.3 因特网中继聊天工具 5.4.4 文档 5.4.5 论坛 5.5 加入社区 5.5.1 向别人提供帮助 5.5.2 贡献代码 5.5.3 网络博客 5.6 小结

第二篇 Ruby的核心 第6章 类、对象和模块 6.1 为什么要用面向对象 6.2 面向对象基础知识 6.2.1 局部变量、全局变量、对象变量和类变量 6.2.2 类方法和对象方法 6.2.3 继承 6.2.4 覆写现有方法 6.2.5 对象方法的反射与发现 6.2.6 封装 6.2.7 多态 6.2.8 嵌套类 6.2.9 常量的作用域 6.3 模块、命名空间和掺入 6.3.1 命名空间 6.3.2 掺入 6.4 用对象构建“地下城”文本冒险游戏 6.4.1 地下城的概念 6.4.2 创建初始类 6.4.3 Structs:快捷简单的数据类 6.4.4 创建房间 6.4.5 让地下城运转起来 6.5 小结

第7章 项目与程序库 7.1 项目和使用其他文件的代码 7.1.1 基本的文件包含 7.1.2 从其他目录包含 7.1.3 有条件地包含代码 7.1.4 嵌套包含 7.2 程序库 7.2.1 标准程序库 7.2.2 RubyGems包 7.3 小结

第8章 文档编写、错误处理、调试和测试 8.1 文档编写 8.1.1 用RDoe生成文档 8.1.2 RDoc技术 8.2 调试与出错 8.2.1 异常和出错处理 8.2.2 Catch与Throw方法 8.2.3 Ruby调试器 8.3 测试 8.3.1 测试驱动开发的哲学 8.3.2 单元测试 8.3.3 更多的Test:Unit断言 8.4 性能基准度量和优化分析 8.4.1 性能基准简单度量 8.4.2 性能优化分析 8.5 小结

第9章 文件和数据库 9.1 输入与输出 9.1.1 键盘输入 9.1.2 文件输入输出 9.2 数据库基础 9.2.1 文本文件数据库 9.2.2 对象和数据结构的存储 9.3 关系型数据库与SQL 9.3.1 关系型数据库概念 9.3.2 四大数据库:MySQL、PostgreSQL、Oracle和SQLite 9.3.3 安装SQLite 9.3.4 关于数据库基本操作和SQL的紧急教程 9.3.5 在Ruby中使用SQt。ite 9.3.6 连接其他数据库系统 9.3.7 ActiveRecord简介 9.4 小结

第10章 部署Ruby应用和程序库 10.1 简单Ruby程序发布 10.1.1 shebang行 10.1.2 关联Windows的文件类型 10.1.3 “编译”Ruby程序 10.2 检测Ruby运行环境 10.2.1 用RUBY-PLATFORM作简单的操作系统检测 10.2.2 环境变量 10.2.3 读取命令行参数 10.3 以gem包形式发布Ruby程序库 10.3.1 创建gem包 10.3.2 发布gem包 10.3.3 RubyForge网站 10.4 以远程服务形式部署Ruby应用 10.4.1 CGI脚本 10.4.2 常见HTTP服务器 10.4.3 远程方法调用 10.5 小结

第11章 Ruby高级功能 11.1 动态代码执行 11.1.1 绑定 11.1.2 eval的其他形式 11.1.3 创建attr-accessor 11.2 从Ruby中运行其他程序 11.2.1 获得其他程序的运行结果 11.2.2 向其他程序移交执行权 11.2.3 同时运行两个程序 11.2.4 与另一程序交互 11.3 安全地掌控数据和危险方法 11.3.1 被感染的数据和对象 ll.3.2 安全级别 11.4 使用微软Windows 11.4.1 使用Windows.API 11.4.2 控制Windows程序 11.5 线程 11.5.1 基础Ruby线程实战 11.5.2 高级线程操作 11.6 其他语言嵌入Ruby 11.6.1 为什么用c作为嵌入语言 11.6.2 创建基础方法或函数 11.6.3 性能基准度量:C和Ruby 11.7 对Unicodc和UTF-8的支持 11.8 小结

第12章 综合演练:开发更大型的Ruby应用 12.1 构建机器人小程序 12.1.1 什么是机器人小程序 12.1.2 为什么要构建机器人小程序 12.1.3 怎样构建 12.2 创建文本处理工具程序库 12.2.1 构建WordPlay程序库 12.2.2 测试该程序库 12.2.3 WordPlay程序库的源代码 12.3 构建机器人小程序的核心功能 12.3.1 程序的生命周期和组成部分 12.3.2 机器人小程序的数据 12.3.3 构建Bot类和数据载入器 12.3.4 response_to方法 12.3.5 试用机器人小程序 12.4 机器人小程序主要代码清单 12.4.1 bot.rb文件 12.4.2 basic-client.rb文件 12.5 扩展机器人小程序的功能 12.5.1 用文本文件作为会话来源 12.5.2 把机器人小程序连接到万维网 12.5.3 机器人小程序之间的会话 12.6 小结

第三篇 Ruby在线 第13章 RubyonRuby:Ruby的杀手级应用 第14章 Ruby与因特网 第15章 网络连接、套接字与后台进程 第16章 有用的Ruby程序库和gem包

亚马逊链接

基本信息

名称: 计算机科学丛书 Php和Mysql Web开发(原书第4版)
作者信息: 作者: Luke Welling [ 英文 pdf ]

简单介绍

《计算机科学丛书:Php和Mysql Web开发(原书第4版)》为开发人员专业技术丛书。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
读者反馈
译者序
前言
作者简介
第一篇 使用PHP
第1章 PHP快速入门教程
1.1 开始之前:了解PHP
1.2 创建一个示例应用:Bob汽车零部件商店
1.2.1 创建订单表单
1.2.2 表单处理
1.3 在HTML中嵌入PHP
1.3.1 使用PHP标记
1.3.2 PHP语句
1.3.3 空格
1.3.4 注释
1.4 添加动态内容
1.4.1 调用函数
1.4.2 使用date()函数
1.5 访问表单变量
1.5.1 简短、中等以及长风格的表单变量
1.5.2 字符串的连接
1.5.3 变量和文本
1.6 理解标识符
1.7 检查变量类型
1.7.1 PHP的数据类型
1.7.2 类型强度
1.7.3 类型转换
1.7.4 可变变量
1.8 声明和使用常量
1.9 理解变量的作用域
1.10 使用操作符
1.10.1 算术操作符
1.10.2 字符串操作符
1.10.3 赋值操作符
1.10.4 比较操作符
1.10.5 逻辑操作符
1.10.6 位操作符
1.10.7 其他操作符
1.11 计算表单总金额
1.12 理解操作符的优先级和结合性:
1.13 使用可变函数
1.13.1 测试和设置变量类型
1.13.2 测试变量状态
1.13.3 变量的重解释
1.14 根据条件进行决策
1.14.1 if语句
1.14.2 代码块
1.14.3 else语句
1.14.4 elseif语句
1.14.5 switch语句
1.14.6 比较不同的条件
1.15 通过迭代实现重复动作
1.15.1 while循环
1.15.2 for和foreach循环
1.15.3 do…while循环
1.16 从控制结构或脚本中跳出
1.17 使用可替换的控制结构语法
1.18 使用declare
1.19 下一章

第2章 数据的存储与检索 2.1 保存数据以便后期使用 2.2 存储和检索Bob的订单 2.3 文件处理 2.4 打开文件 2.4.1 选择文件模式 2.4.2 使用fopen()打开文件 2.4.3 通过FTP或HTTP打开文件 2.4.4 解决打开文件时可能遇到的问题 2.5 写文件 2.5.1 fwrite()的参数 2.5.2 文件格式 2.6 关闭文件 2.7 读文件 2.7.1 以只读模式打开文件:fopen() 2.7.2 知道何时读完文件:feof() 2.7.3 每次读取一行数据:fgets()、fgetss()和fgetcsv() 2.7.4 读取整个文件:readfile()、fpassthru()和file() 2.7.5 读取一个字符:fgetc() 2.7.6 读取任意长度:fread() 2.8 使用其他有用的文件函数 2.8.1 查看文件是否存在:file_exists() 2.8.2 确定文件大小:filesize() 2.8.3 删除一个文件:unlink() 2.8.4 在文件中定位:rewind()、fseek()和ftell() 2.9 文件锁定 2.10 更好的方式:数据库管理系统 2.10.1 使用普通文件的几个问题 2.10.2 RDBMS是如何解决这些问题的 2.11 进一步学习 2.12 下一章

第3章 使用数组 3.1 什么是数组 3.2 数字索引数组 3.2.1 数字索引数组的初始化 3.2.2 访问数组的内容 3.2.3 使用循环访问数组 3.3 使用不同索引的数组 3.3.1 初始化相关数组 3.3.2 访问数组元素 3.3.3 使用循环语句 3.4 数组操作符 3.5 多维数组 3.6 数组排序 3.6.1 使用sort()函数 3.6.2 使用asort()函数和ksort()函数对相关数组排序 3.6.3 反向排序 3.7 多维数组的排序 3.7.1 用户定义排序 3.7.2 反向用户排序 3.8 对数组进行重新排序 3.8.1 使用shuffle()函数 3.8.2 使用array_reverse()函数 3.9 从文件载入数组 3.10 执行其他的数组操作 3.10.1 在数组中浏览:each()、current()、reset()、end()、next()、pos()和prev() 3.10.2 对数组的每一个元素应用任何函数:array_walk() 3.10.3 统计数组元素个数:count()、sizeof()和array_count_values() 3.10.4 将数组转换成标量变量:extract() 3.11 进一步学习 3.12 下一章

第4章 字符串操作与正则表达式 4.1 创建一个示例应用程序:智能表单邮件 4.2 字符串的格式化 4.2.1 字符串的整理:chop()、ltrim()和trim() 4.2.2 格式化字符串以便显示 4.2.3 格式化字符串以便存储:addslashes()和stripslashes() 4.3 用字符串函数连接和分割字符串 4.3.1 使用函数explode()、implode()和join() 4.3.2 使用strtok()函数 4.3.3 使用substr()函数 4.4 字符串的比较 4.4.1 字符串的排序:strcmp()、strcasecmp()和strnatcmp() 4.4.2 使用strlen()函数测试字符串的长度 4.5 使用字符串函数匹配和替换子字符串 4.5.1 在字符串中查找字符串:strstr()、strchr()、strrchr()和stristr() 4.5.2 查找子字符串的位置:strpos()、strrpos() 4.5.3 替换子字符串:str_replace()、substr_replace() 4.6 正则表达式的介绍 4.6.1 基础知识 4.6.2 字符集和类 4.6.3 重复 4.6.4 子表达式 4.6.5 子表达式计数 4.6.6 定位到字符串的开始或末尾 4.6.7 分支 4.6.8 匹配特殊字符 4.6.9 特殊字符一览 4.6.10 在智能表单中应用 4.7 用正则表达式查找子字符串 4.8 使用正则表达式分割字符串 4.9 比较字符串函数和正则表达式函数 4.10 进一步学习 4.11 下一章

第5章 代码重用与函数编写 5.1 代码重用的好处 5.1.1 成本 5.1.2 可靠性 5.1.3 一致性 5.2 使用require()和include()函数 5.2.1 文件扩展名和require()语句 5.2.2 使用require()制作Web站点的模版 5.2.3 使用auto_prepend_file和auto_append_file 5.3 在PHP中使用函数 5.3.1 调用函数 5.3.2 调用未定义的函数 5.3.3 理解字母大小写和函数名称 5.4 理解为什么要定义自己的函数 5.5 了解基本的函数结构 5.5.1 函数命名 5.6 使用参数 5.7 理解作用域 5.8 参数的引用传递和值传递 5.9 使用Return关键字 5.9.1 从函数返回一个值 5.10 实现递归 5.10.1 名称空间 5.11 进一步学习 5.12 下一章

第6章 面向对象的PHP 6.1 理解面向对象的概念 6.1.1 类和对象 6.1.2 多态性 6.1.3 继承 6.2 在PHP中创建类、属性和操作 6.2.1 类的结构 6.2.2 构造函数 6.2.3 析构函数 6.3 类的实例化 6.4 使用类的属性 6.5 使用private和public关键字控制访问 6.6 类操作的调用 6.7 在PHP中实现继承 6.7.1 通过继承使用private和protected访问修饰符控制可见性 6.7.2 重载 6.7.3 使用final关键字禁止继承和重载 6.7.4 理解多重继承 6.7.5 实现接口 6.8 类的设计 6.9 编写类代码 6.10 理解PHP面向对象新的高级功能 6.10.1 使用Per-Class常量 6.10.2 实现静态方法 6.10.3 检查类的类型和类型提示 6.10.4 克隆对象 6.10.5 使用抽象类 6.10.6 使用call()重载方法 6.10.7 使用autoload()方法 6.10.8 实现迭代器和迭代 6.10.9 将类转换成字符串 6.10.10 使用Reflection(反射)API 6.11 下一章

第7章 错误和 异常处理 7.1 异常处理的概念 7.2 Exception类 7.3 用户自定义异常 7.4 Bob的汽车零部件商店应用程序的异常 7.5 异常和PHP的其他错误处理机制 7.6 进一步学习 7.7 下一章

第二篇 使用MySQL 第8章 设计Web数据库 8.1 关系数据库的概念 8.1.1 表格 8.1.2 列 8.1.3 行 8.1.4 值 8.1.5 键 8.1.6 模式 8.1.7 关系 8.2 如何设计Web数据库 8.2.1 考虑要建模的实际对象 8.2.2 避免保存冗余数据 8.2.3 使用原子列值 8.2.4 选择有意义的键 8.2.5 考虑需要询问数据库的问题 8.2.6 避免多个空属性的设计 8.2.7 表格类型的总结 8.3 Web数据库架构 8.4 进一步学习 8.5 下一章

第9章 创建Web数据库 9.1 使用MySQL监视程序 9.2 登录到MySQL 9.3 创建数据库和用户 9.4 设置用户与权限 9.5 MySQL权限系统的介绍 9.5.1 最少权限原则 9.5.2 创建用户:GRANT命令 9.5.3 权限的类型和级别 9.5.4 REVOKE命令 9.5.5 使用GRANT和REVOKE的例子 9.6 创建一个Web用户 9.7 使用正确的数据库 9.8 创建数据库表 9.8.1 理解其他关键字的意思 9.8.2 理解列的类型 9.8.3 用SHOW和DESCRIBE来查看数据库 9.8.4 创建索引 9.9 理解MySQL的标识符 9.10 选择列数据类型 9.10.1 数字类型 9.10.2 日期和时间类型 9.10.3 字符串类型 9.11 进一步学习 9.12 下一章

第10章 使用MySQL数据库 10.1 SQL是什么 10.2 在数据库中插入数据 10.3 从数据库中获取数据 10.3.1 获取满足特定条件的数据 10.3.2 从多个表中获取数据 10.3.3 以特定的顺序获取数据 10.3.4 分组与合计数据 10.3.5 选择要返回的行 10.3.6 使用子查询 10.4 更新数据库记录 10.5 创建后修改表 10.6 删除数据库中的记录 10.7 表的删除 10.8 删除整个数据库 10.9 进一步学习 10.10 下一章

第11章 使用PHP从Web访问MySQL数据库 11.1 Web数据库架构的工作原理 11.2 从Web查询数据库的基本步骤 11.2.1 检查与过滤用户输入数据 11.2.2 建立一个连接 11.2.3 选择使用的数据库 11.2.4 查询数据库 11.2.5 检索查询结果 11.2.6 从数据库断开连接 11.3 将新信息放入数据库 11.4 使用Prepared语句 11.5 使用PHP与数据库交互的其他接口 11.5.1 使用常规的数据库接口:PEAR MDB2 11.6 进一步学习 11.7 下一章

第12章 MySQL高级管理 12.1 深入理解权限系统 12.1.1 user表 12.1.2 db表和host表 12.1.3 tables_priv表,columns_priv表和procs_priv表 12.1.4 访问控制:MySQL如何使用Grant表 12.1.5 更新权限:修改什么时候生效 12.2 提高MySQL数据库的安全性 12.2.1 从操作系统角度来保护MySQL 12.2.2 密码 12.2.3 用户权限 12.2.4 Web问题 12.3 获取更多关于数据库的信息 12.3.1 使用SHOW获取信息 12.3.2 使用DESCRIBE获取关于列的信息 12.3.3 用EXPLAIN理解查询操作的工作过程 12.4 数据库的优化 12.4.1 设计优化 12.4.2 权限 12.4.3 表的优化 12.4.4 使用索引 12.4.5 使用默认值 12.4.6 其他技巧 12.5 备份MySQL数据库 12.6 恢复MySQL数据库 12.7 实现复制 12.7.1 设置主服务器 12.7.2 执行初始的数据传输 12.7.3 设置一个/多个从服务器 12.8 进一步学习 12.9 下一章

第13章 MySQL高级编程 13.1 LOAD DATA INFILE语句 13.2 存储引擎 13.3 事务 13.3.1 理解事务的定义 13.3.2 通过InnoDB使用事务 13.4 外键 13.5 存储过程 13.5.1 基本示例 13.5.2 局部变量 13.5.3 游标和控制结构 13.6 进一步学习 13.7 下一章

第三篇 电子商务与安全性 第14章 运营一个电子商务网站 14.1 我们要实现什么目标 14.2 考虑电子商务网站的类型 14.2.1 使用在线说明书公布信息 14.2.2 接收产品或服务的订单 14.2.3 提供服务和数字产品 14.2.4 为产品或服务增值 14.2.5 减少成本 14.3 理解风险和威胁 14.3.1 网络黑客 14.3.2 不能招揽足够的生意 14.3.3 计算机硬件故障 14.3.4 电力、通信、网络或运输故障 14.3.5 广泛的竞争 14.3.6 软件错误 14.3.7 不断变化的政府政策和税收 14.3.8 系统容量限制 14.4 选择一个策略 14.5 下一章

第15章 电子商务的安全问题 15.1 信息的重要程度 15.2 安全威胁 15.2.1 机密数据的泄露 15.2.2 数据丢失和数据破坏 15.2.3 数据修改 15.2.4 拒绝服务 15.2.5 软件错误 15.2.6 否认 15.3 易用性,性能、成本和安全性 15.4 建立一个安全政策 15.5 身份验证原则 15.6 加密技术基础 15.6.1 私有密钥加密 15.6.2 公有密钥加密 15.6.3 数字签名 15.7 数字证书 15.8 安全的Web服务器 15.9 审计与日志记录 15.10 防火墙 15.11 备份数据 15.11.1 备份常规文件 15.11.2 备份与恢复MySQL数据库 15.12 自然环境安全 15.13 下一章

第16章 Web应用的安全 16.1处理安全性问题的策略 16.1.1 以正确心态为开始 16.1.2 安全性和可用性之间的平衡 16.1.3 安全监视 16.1.4 基本方法 16.2 识别所面临的威胁 16.2.1 访问或修改敏感数据 16.2.2 数据丢失或破坏 16.2.3 拒绝服务 16.2.4 恶意代码注入 16.2.5 服务器被攻破 16.3了解与我们“打交道”的用户 16.3.1 破解人员 16.3.2 受影响机器的未知情用户 16.3.3 对公司不满的员工 16.3.4 硬件被盗 16.3.5 我们自身 16.4 代码的安全性 16.4.1 过滤用户输入 16.4.2 转义输出 16.4.3 代码组织 16.4.4 代码自身的问题 16.4.5 文件系统因素 16.4.6 代码稳定性和缺陷 16.4.7 执行引号和exec 16.5 Web服务器和PHP的安全性 16.5.1 保持软件的更新 16.5.2 查看php.ini文件 16.5.3 Web服务器配置 16.5.4 Web应用的商业主机服务 16.6 数据库服务器的安全性 16.6.1 用户和权限系统 16.6.2发送数据至服务器 16.6.3 连接服务器 16.6.4 运行服务器 16.7 保护网络 16.7.1 安装防火墙 16.7.2使用隔离区域(DMZ) 16.7.3应对DoS和DDoS攻击 16.8 计算机和操作系统的安全性 16.8.1 保持操作系统的更新 16.8.2只运行必须的软件 16.8.3 服务器的物理安全性 16.9 灾难计划 16.10 下一章

第17章 使用PHP和MySQL实现身份验证 17.1 识别访问者 17.2 实现访问控制 17.2.1 保存密码 17.2.2 密码的加密 17.2.3 保护多个网页 17.3 使用基本身份验证 17.4 在PHP中使用基本身份验证 17.5 在Apache的.htaccess文件中使用基本身份验证 17.6 使用mod_auth_mysql身份验证 17.6.1 安装mod_auth_mysql 17.6.2 使用mod_auth_mysql 17.7 创建自定义身份验证 17.8 进一步学习 17.9 下一章

第18章 使用PHP和MySQL实现安全事务 18.1 提供安全的事务处理 18.1.1 用户机器 18.1.2 Internet 18.1.3 我们的系统 18.2 使用加密套接字层(SSL) 18.3 屏蔽用户的输入 18.4 提供安全存储 18.5 存储信用卡号码 18.6 在PHP中使用加密技术 18.6.1 安装GPG 18.6.2 测试GPG 18.7 进一步学习 18.8 下一章

第四篇 PHP的高级技术 第19章 与文件系统和服务器的交互 19.1 文件上载 19.1.1 文件上载的HTML代码 19.1.2 编写处理文件的PHP 19.1.3 避免常见上载问题 19.2 使用目录函数 19.2.1 从目录读取 19.2.2 获得当前目录的信息 19.2.3 创建和删除目录 19.3 与文件系统的交互 19.3.1 获取文件信息 19.3.2 更改文件属性 19.3.3 创建、删除和移动文件 19.4 使用程序执行函数 19.5 与环境变量交互:getenv()和putenv() 19.6 进一步学习 19.7 下一章

第20章 使用网络函数和协议函数 20.1 了解可供使用的协议 20.2 发送和读取电子邮件 20.3 使用其他Web站点的数据 20.4 使用网络查找函数 20.5 备份或镜像一个文件 20.5.1 使用FTP备份或镜像一个文件 20.5.2 上传文件 20.5.3 避免超时 20.5.4 使用其他的FTP函数 20.6 进一步学习 20.7 下一章

第21章 日期和时间的管理 21.1 在PHP中获取日期和时间 21.1.1 使用date()函数 21.1.2 使用UNIX时间戳 21.1.3 使用getdate()函数 21.1.4 使用checkdate()函数检验日期有效性 21.1.5 格式化时间戳 21.2 在PHP日期格式和MySQL日期格式之间进行转换 21.3 在PHP中计算日期 21.4 在MySQL中计算日期 21.5 使用微秒 21.6 使用日历函数 21.7 进一步学习 21.8 下一章

第22章 创建图像 22.1 在PHP中设置图像支持 22.2 理解图像格式 22.2.1 JPEG 22.2.2 PNG 22.2.3 WBMP 22.2.4 GIF 22.3 创建图像 22.3.1 创建一个背景图像 22.3.2 在图像上绘图或打印文本 22.3.3 输出最终图形 22.3.4 清理 22.4 在其他页面中使用自动生成的图像 22.5 使用文本和字体创建图像 22.5.1 创建基本画布 22.5.2 将文本调整到适合按钮 22.5.3 放置文本 22.5.4 将文本写到按钮上 22.5.5 完成 22.6 绘制图像与用图表描绘数据 22.7 使用其他的图像函数 22.8 进一步学习 22.9 下一章

第23章 在PHP中使用会话控制 23.1 什么是会话控制 23.2 理解基本的会话功能 23.2.1 什么是cookie 23.2.2 通过PHP设置cookie 23.2.3 在会话中使用cookie 23.2.4 存储会话 ID 23.3 实现简单的会话 23.3.1 开始一个会话 23.3.2 注册一个会话变量 23.3.3 使用会话变量 23.3.4 注销变量与销毁会话 23.4 创建一个简单的会话例子 23.5 配置会话控制 23.6 通过会话控制实现身份验证 23.7 进一步学习 23.8 下一章

第24章 其他有用的特性 24.1 使用eval()函数对字符串求值 24.2 终止执行:die和exit 24.3 序列化变量和对象 24.4 获取PHP环境信息 24.4.1 找到所加载的PHP扩展部件 24.4.2 识别脚本所有者 24.4.3 确定脚本最近修改时间 24.5 暂时改变运行时环境 24.6 源代码加亮 24.7 在命令行中使用PHP 24.8 下一章

第五篇 创建实用的PHP和MySQL项目 第25章 在大型项目中使用PHP和MySQL 25.1 在Web开发中应用软件工程 25.2 规划和运行Web应用程序项目 25.3 重用代码 25.4 编写可维护代码 25.4.1 编码标准 25.4.2 分解代码 25.4.3 使用标准的目录结构 25.4.4 文档化和共享内部函数 25.5 实现版本控制 25.6 选择一个开发环境 25.7 项目的文档化 25.8 建立原型 25.9 将逻辑和内容分离 25.10 优化代码 25.10.1 使用简单优化 25.10.2 使用Zend产品 25.11 测试 25.12 进一步学习 25.13 下一章

第26章 调试 26.1 编程错误 26.1.1 语法错误 26.1.2 运行时错误 26.1.3 逻辑错误 26.2 使用变量帮助调试 26.3 错误报告级别 26.4 改变错误报告设置 26.5 触发自定义错误 26.6 巧妙地处理错误 26.7 下一章

第27章 建立用户身份验证机制和个性化设置 27.1 解决方案的组成 27.1.1 用户识别和个性化设置 27.1.2 保存书签 27.1.3 推荐书签 27.2 解决方案概述 27.3 实现数据库 27.4 实现基本的网站 27.5 实现用户身份验证 27.5.1 注册 27.5.2 登录 27.5.3 登出 27.5.4 修改密码 27.5.5 重设遗忘的密码 27.6 实现书签的存储和检索 27.6.1 添加书签 27.6.2 显示书签 27.6.3 删除书签 27.7 实现书签推荐 27.8 考虑可能的扩展 27.9 下一章

第28章 创建一个购物车 28.1 解决方案的组成 28.1.1 创建一个在线目录 28.1.2 在用户购买商品的时候记录购买行为 28.1.3 实现一个付款系统 28.1.4 创建一个管理界面 28.2 解决方案概述 28.3 实现数据库 28.4 实现在线目录 28.4.1 列出目录 28.4.2 列出一个目录中的所有图书 28.4.3 显示图书详细信息 28.5 实现购物车 28.5.1 使用show_cart.php脚本 28.5.2 浏览购物车 28.5.3 将物品添加到购物库 28.5.4 保存更新后的购物车 28.5.5 打印标题栏摘要 28.5.6 结账 28.6 实现付款 28.7 实现一个管理界面 28.8 扩展该项目 28.9 使用一个已有系统 28.10 下一章

第29章 创建一个基于Web的电子邮件服务系统 29.1 解决方案的组成 29.1.1 电子邮件协议:POP3和IMAP 29.1.2 PHP对POP3和IMAP的支持 29.2 解决方案概述 29.3 建立数据库 29.4 了解脚本架构 29.5 登录与登出 29.6 建立账户 29.6.1 创建一个新账户 29.6.2 修改已有账户 29.6.3 删除账户 29.7 阅读邮件 29.7.1 选择账户 29.7.2 查看邮箱内容 29.7.3 阅读邮件消息 29.7.4 查看消息标题 29.7.5 删除邮件 29.8 发送邮件 29.8.1 发送一则新消息 29.8.2 回复或转发邮件 29.9 扩展这个项目 29.10 下一章

第30章 创建一个邮件列表管理器 30.1 解决方案的组成 30.1.1 建立列表和订阅者数据库 30.1.2 上载新闻信件 30.1.3 发送带附件的邮件 30.2 解决方案概述 30.3 建立数据库 30.4 定义脚本架构 30.5 实现登录 30.5.1 新账户的创建 30.5.2 登录 30.6 用户函数的实现 30.6.1 查看列表 30.6.2 查看邮件列表信息 30.6.3 查看邮件列表存档 30.6.4 订阅与取消订阅 30.6.5 更改账户设置 30.6.6 更改密码 30.6.7 登出 30.7 管理功能的实现 30.7.1 创建新的邮件列表 30.7.2 上载新的新闻信件 30.7.3 多文件上载的处理 30.7.4 预览新闻信件 30.7.5 发送邮件 30.8 扩展这个项目 30.9 下一章

第31章 创建一个Web论坛 31.1 理解流程 31.2 解决方案的组成 31.3 解决方案概述 31.4 数据库的设计 31.5 查看文章的树型结构 31.5.1 展开和折叠 31.5.2 显示文章 31.5.3 使用treenode类 31.6 查看单个的文章 31.7 添加新文章 31.8 添加扩充 31.9 使用一个已有的系统 31.10 下一章

第32章 生成PDF格式的个性化文档 32.1 项目概述 32.1.1 评估文档格式 32.2 解决方案的组成 32.2.1 问题与回答系统 32.2.2 文档生成软件 32.3 解决方案概述 32.3.1 提问 32.3.2 给答题评分 32.3.3 生成RTF证书 32.3.4 从模板生成PDF证书 32.3.5 使用PDFlib生成PDF文档 32.3.6 使用PDFlib的一个“Hello World”程序 32.3.7 用PDFlib生成证书 32.4 处理标题的问题 32.5 扩展该项目 32.6 下一章

第33章 使用XML和SOAP来连接Web服务 33.1 项目概述:使用XML和Web服务 33.1.1 理解XML 33.1.2 理解Web服务 33.2 解决方案的组成 33.2.1 使用Amazon的Web服务接口 33.2.2 XML的解析:REST响应 33.2.3 在PHP中使用SOAP 33.2.4 缓存 33.3 解决方案概述 33.3.1 核心应用程序 33.3.2 显示特定种类的图书 33.3.3 获得一个AmazonResultSet类 33.3.4 使用REST发送和接收请求 33.3.5 使用SOAP发送和接收请求 33.3.6 缓存请求返回的数据 33.3.7 创建购物车 33.3.8 到Amazon付账 33.4 安装项目代码 33.5 扩展这个项目 33.6 进一步学习

第34 章使用Ajax构建Web 2.0应用 34.1 Ajax 是什么? 34.1.1 HTTP请求和响应 34.1. 2 DHTML和XHTML 34.1.3 级联样式单(CSS) 34.1.4 客户端编程 34.1.5 服务器端编程 34.1.6 XML和XSLT 34.2 Ajax基础 34.2.1 XMLHTTPRequest对象 34.2.2 与服务器通信 34.2.3 处理服务器响应 34.2.4 整合应用 34.3 在以前的项目添加Ajax元素 34.3.1在PHPBookmark应用中添加Ajax元素 34.4 进一步学习 34.4.1 进一步了解文档对象模型(DOM) 34.4.2 Ajax应用可用的JavaScript函数库 34.4.3 Ajax开发人员网站

第六篇 附录 附录A 安装PHP及MySQL 附录B Web资源 第1章 PHP快速入门教程 第2章 数据的存储与检索 第3章 使用数组 第4章 字符串操作与正则表达式 第5章 代码重用与函数编写 第6章 面向对象的PHP 第7章 错误和异常处理

亚马逊链接

基本信息

名称: Ruby Programming 向Ruby之父学程序设计(第2版)
作者信息: 作者: 博硕文化 [ 中文 pdf ]

简单介绍

《Ruby Programming:向Ruby之父学程序设计(第2版)》内容包括:第一部分 开始使用Ruby通过简单的Ruby程序来介绍程序的基本架构。第二部分 学习基础写Ruby程序时需要知道的基础语法规则,以及类、模块等面向对象程序设计的思考方法与用词。第三部分 使用类写程序时重要的不只是语法。使用Ruby之所以能够快乐地写程序,在相当程度上是因为它提供了设计精巧的标准程序库。在这里就对一些基础类逐一介绍其功能与用法。第四部分 灵活使用Ruby为了能灵活使用Ruby,这里要介绍一些比较高级的功能。比如Ruby的环境参数、环境变量、迭代器的用法与做法、Mix-in等在第二、三部分没有提到的内容。第五部分 制作应用在这里作为整《Ruby Programming:向Ruby之父学程序设计(第2版)》内容的综合,介绍比较复杂一点的程序范例。试着使用Ruby来写出比较实用的程序。附录使用Ruby时所需的知识、相关的资讯等,都整理在附录里。也介绍了Ruby的mailing-list、网络上的各种资源与其用法。安装Ruby的方法也写在这里,请在阅读《Ruby Programming:向Ruby之父学程序设计(第2版)》之前先在您的电脑上构建好可以使用Ruby的环境吧。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
第1部分 开始使用Ruby
第1章 与Ruby的第一次接触
1.1 执行Ruby
1.1.1 Windows环境
1.1.2 UNIX环境
1.1.3 MacOS X环境
1.1.4 确认执行正常
1.2 程序的说明
1.2.1 对象
1.2.2 方法
1.3 字符串
1.3.1 换行字符与“\”
1.3.2 “'”与“"“”
1.4 调用方法
1.5 puts方法
1.6 p方法
1.7 显示中文
1.8 数值的显示与计算
1.8.1 显示数值
1.8.2 四则运算
1.8.3 数学函数
1.9 变量
1.10 写注释
1.11 控制结构
1.12 条件判断:if~then~end
1.13 字符串反复执行(循环)
1.13.1 while语句
1.13.2 times方法
1.14 定义方法
1.15 读入其他文件

第2章 方便的对象 2.1 数组 2.1.1 建立数组 2.1.2 从数组中取得对象 2.1.3 将对象存进数组里 2.1.4 数组的内容 2.1.5 数组的大小 2.1.6 逐项处理数组内容 2.2 杂凑(HASH) 2.2.1 建立杂凑 2.2.2 从杂凑获取对象 2.2.3 逐项处理杂凑内容 2.3 正则表达式

第3章 指令设计 3.1 从命令行输入的数据 3.2 读取文件 3.2.1 读入文件内的文本数据并显示 3.2.2 从文件逐行读入数据并显示出来 3.2.3 只显示文件里符合特定样式的几行

第2部分 学习基础 第4章 对象与变量、常数 4.1 对象 4.2 类 4.3 变量 4.4 常数 4.5 保留字

第5章 条件判断 5.1 什么是条件判断 5.2 Ruby的条件 5.2.1 条件与真假值 5.2.2 逻辑运算符 5.3 if语句 5.4 unless语句 5.5 case语句 5.6 if修饰符与unless修饰符 5.7 总结

第6章 循环 6.1 循环的基础 6.2 写循环时要注意的事情 6.3 实现循环的方式 6.4 times方法 6.5 for语句 6.6 一般的for语句 6.7 while语句 6.8 until语句 6.9 each方法 6.10 loop方法 6.11 循环的控制 6.11.1 break 6.11.2 next 6.11.3 redo 6.12 总结

第7章 方法 7.1 调用方法 7.2 方法的分类 7.2.1 实例方法 7.2.2 类方法 7.2.3 函数性的方法 7.3 定义方法

第8章 类与模块 8.1 什么是类 8.1.1 类与实例 8.1.2 继承 8.2 自己定义类 8.2.1 class语句 8.2.2 initialize方法 8.2.3 实例变量与实例方法 8.2.4 访问方法 8.2.5 类方法 8.2.6 常数 8.2.7 类变量 8.2.8 扩充类 8.2.9 使用继承 8.2.10 限制方法的调用 8.3 什么是面向对象 8.3.1 数据与处理程序 8.3.2 “数据与处理程序”方式的问题 8.3.3 对象 8.3.4 面向对象的特征 8.3.5 Duck Typing(行为决定类型) 8.4 什么是模块 8.5 自己定义模块 8.5.1 常数 8.5.2 定义方法

第9章 错误处理与例外 9.1 关于错误处理 9.2 例外处理 9.3 例外处理的写法 9.4 善后处理 9.5 重新执行 9.6 rescue修饰符 9.7 例外处理语法的补充 9.8 指定要捕捉的例外 9.9 例外类 9.10 引发例外 9.11 catch与throw

第3部分 使用类 第10章 数值(Numeric)类 10.1 Numeric的类架构 10.2 数值常数 10.3 算术运算 10.3.1 除法 10.3.2 Math模块 10.4 数值类型的转换 10.5 位运算 10.6 数数 练习

第11章 数组(Array)类 11.1 复习数组 11.2 建立数组 11.2.1 使用Array.new 11.2.2 使用%w 11.2.3 使用to_a方法 11.2.4 使用字符串的split方法 11.3 索引的用法 11.3.1 获取元素 11.3.2 改写元素 11.3.3 插入元素 11.3.4 以多个索引建立新数组 11.4 不使用索引操作数组 11.5 作为集合的数组 11.6 作为“列表”的数组 11.7 数组的主要方法 11.7.1 将数据加入数组中 11.7.2 从数组中删除数据 11.7.3 换掉数组的元素 11.8 数组与迭代器 11.9 处理数组的每个元素 11.9.1 使用循环配合索引 11.9.2 使用each方法逐项获取元素 11.9.3 使用破坏性的方法反复操作 11.9.4 使用其他迭代器 11.9.5 自己设计迭代器 11.10 数组的元素 11.10.1 示例:使用简单的矩阵 11.10.2 小心初始化 11.11 并行处理多个数组的值 练习

第12章 字符串(String)类 12.1 建立字符串 12.1.1 使用%Q、%q 12.1.2 使用嵌入文档 12.1.3 使用sprintf方法 12.2 获取字符串长度 12.3 分割字符串 12.4 连接字符串 12.5 字符串的索引 12.6 比较字符串 12.7 处理换行字符 12.8 字符串的查找与取代 12.8.1 查找字符串 12.8.2 字符串的取代 12.9 字符串与数组共同的方法 12.9.1 与索引操作有关的方法 12.9.2 Enumerable模块相关的方法 12.9.3 连接、逆转相关的方法 12.10 其他方法 练习

第13章 杂凑(Hash)类 13.1 杂凑的复习 13.2 建立杂凑的方法 13.2.1 使用{} 13.2.2 使用Hash.new 13.3 获取、设定杂凑的值 13.3.1 直接取出所有键或值 13.3.2 杂凑的默认值 13.4 查询杂凑里是否存在某个键或值 13.5 查询杂凑的大小 13.6 删除键与值 13.7 初始化杂凑 13.8 应用示例:计算单字数量 练习

第14章 正则表达式 第14章 (Regexp)类 14.1 关于正则表达式 14.1.1 正则表达式的写法与用途 14.1.2 建立正则表达式对象 14.2 正则表达式的样式与匹配 14.2.1 以一般文字进行匹配 14.2.2 匹配行首与行尾 14.2.3 指定想要匹配成功的文字范围 14.2.4 匹配任意字符 14.2.5 使用反斜线的样式 14.2.6 反复出现 14.2.7 最短匹配 14.2.8 “()”与反复 14.2.9 多选 14.3 使用quote方法的正则表达式 14.4 正则表达式的选项 14.5 回溯参照 14.6 使用正则表达式的方法 14.6.1 sub方法与gsub方法 14.6.2 scan方法 14.7 正则表达式的示例 练习

第15章 IO类 15.1 输入/输出的种类 15.1.1 标准输入/输出 15.1.2 文件输入/输出 15.1.3 open-uri.rb 15.1.4 stringio.rb 15.2 基本的输入/输出操作 15.2.1 输入操作 15.2.2 输出操作 15.3 文件指针 15.4 二进制模式与文本模式 15.5 缓冲处理 15.6 与指令交换数据 练习

第16章 File类与Dir类 16.1 File类 16.1.1 更改文件名 16.1.2 复制文件 16.1.3 删除文件 16.2 目录的操作 16.2.1 读取目录内容 16.2.2 Dir.glob 16.2.3 建立目录与删除 16.3 文件与目录的属性 16.3.1 获取属性 16.3.2 FileTest模块 16.4 文件名的操作 16.5 与文件操作相关的程序库 16.5.1 find.rb 16.5.2 tempfile.rb 16.5.3 fileutils.rb 练习

第17章 Time类与Date类 17.1 Time类、Date类、 17.1 DateTime类 17.2 获取Time对象 17.3 计算时间 17.4 时间的格式 17.5 本地时间 17.6 解析字符串 17.7 使用DateTime类 17.8 DateTime类与Time类的差异 17.8.1 DateTime类表示一天的方式 17.8.2 时差处理的差异 17.9 使用Date类求日期 17.10 计算日期 17.11 日期格式 17.12 解析字符串 练习

第4部分 灵活使用Ruby 第18章 Ruby的其他补充知识 18.1 命令行选项 18.1.1 调试、运行确认 18.1.2 获取信息 18.1.3 单行程序(one-liner) 18.1.4 安全性检查 18.1.5 其他 18.2 环境变量 18.3 常数 18.4 内建变量 18.5 内建常数 18.6 多重赋值 18.7 BEGIN{}与END{} 18.8 alias 18.9 undef 18.10 虚拟变量

第19章 运算符 19.1 逻辑运算符的应用 19.2 条件运算符 19.3 自我赋值 19.4 范围运算符 19.5 运算符的优先次序 19.6 定义运算符 19.6.1 二元运算符 19.6.2 单项运算符 19.6.3 数组参照运算符

第20章 迭代器(iterator) 20.1 迭代器与区块调用 20.2 迭代器的基础知识 20.3 各式各样的迭代器 20.3.1 用在数组上 20.3.2 用在杂凑上 20.3.3 用在文件上 20.4 Enumerable模块 20.4.1 each方法 20.4.2 collect方法 20.4.3 sort方法 20.4.4 sort_by方法 20.5 实现迭代器

第21章 Mix-in 21.1 include方法 21.2 Comparable模块 21.3 Enumerable模块 21.4 与继承的关系 21.5 方法的查找规则

第5部分 制作应用

第22章 日志文件解析 22.1 浅谈日志文件访问 22.2 查询访问数 22.3 查询访问日期 22.4 以图表显示访问日期 22.5 只统计特定文件的访问次数

第23章 查找邮政编码 23.1 邮政编码数据库 23.2 读文件 23.3 gdbm程序库 23.4 生成数据 23.5 查找数据 23.6 jzipcode.rb 23.7 执行与使用 23.8 总结

第24章 解析HTML 24.1 关于HTML 24.1.1 元素与标签 24.1.2 注释 24.1.3 字符引用 24.2 建立程序 24.2.1 注释的解析 24.2.2 标签的解析(一) 24.2.3 文字数据的解析 24.2.4 示例 24.2.5 标签的解析(二) 24.3 超链接一览 附录A

亚马逊链接