0%

基本信息

名称: Java核心技术(卷1) 基础知识(原书第9版)
作者信息: 作者: 霍斯特曼 (Cay S. Horstmann) [ 英文 pdf ]

简单介绍

Java领域最有影响力和价值的著作之一,与《Java编程思想》齐名,10余年全球畅销不衰,广受好评;2)根据Java SE 7全面更新,系统全面讲解Java语言的核心概念、语法、重要特性和开发方法,包含大量案例,实践性强

目录

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
译者序
前言
致谢
第1章 Java程序设计概述
1.1 Java程序设计平台
1.2 Java“白皮书”的关键术语
1.2.1 简单性
1.2.2 面向对象
1.2.3 网络技能
1.2.4 健壮性
1.2.5 安全性
1.2.6 体系结构中立
1.2.7 可移植性
1.2.8 解释型
1.2.9 高性能
1.2.10 多线程
1.2.11 动态性
1.3 Java applet与Internet
1.4 Java发展简史
1.5 关于Java的常见误解
第2章 Java程序设计环境
2.1 安装Java开发工具箱
2.1.1 下载JDK
2.1.2 设置执行路径
2.1.3 安装库源文件和文档
2.1.4 安装本书中的示例
2.1.5 导航Java目录
2.2 选择开发环境
2.3 使用命令行工具
2.4 使用集成开发环境
2.5 运行图形化应用程序
2.6 建立并运行applet
第3章 Java的基本程序设计结构
3.1 一个简单的Java应用程序
3.2 注释
3.3 数据类型
3.3.1 整型
3.3.2 浮点类型
3.3.3 char类型
3.3.4 boolean类型
3.4 变量
3.4.1 变量初始化
3.4.2 常量
3.5 运算符
3.5.1 自增运算符与自减运算符
3.5.2 关系运算符与boolean运算符
3.5.3 位运算符
3.5.4 数学函数与常量
3.5.5 数值类型之间的转换
3.5.6 强制类型转换
3.5.7 括号与运算符级别
3.5.8 枚举类型
3.6 字符串
3.6.1 子串
3.6.2 拼接
3.6.3 不可变字符串
3.6.4 检测字符串是否相等
3.6.5 空串与Null串
3.6.6 代码点与代码单元
3.6.7 字符串API
3.6.8 阅读联机API文档
3.6.9 构建字符串
3.7 输入输出
3.7.1 读取输入
3.7.2 格式化输出
3.7.3 文件输入与输出
3.8 控制流程
3.8.1 块作用域
3.8.2 条件语句
3.8.3 循环
3.8.4 确定循环
3.8.5 多重选择:switch语句
3.8.6 中断控制流程语句
3.9 大数值
3.10 数组
3.10.1 for each循环
3.10.2 数组初始化以及匿名数组
3.10.3 数组拷贝
3.10.4 命令行参数
3.10.5 数组排序
3.10.6 多维数组
3.10.7 不规则数组
第4章 对象与类
4.1 面向对象程序设计概述
4.1.1 类
4.1.2 对象
4.1.3 识别类
4.1.4 类之间的关系
4.2 使用预定义类
4.2.1 对象与对象变量
4.2.2 Java类库中的Gregorian—Calendar类
4.2.3 更改器方法与访问器方法
4.3 用户自定义类
4.3.1 Employee类
4.3.2 多个源文件的使用
4.3.3 剖析Employee类
4.3.4 从构造器开始
4.3.5 隐式参数与显式参数
4.3.6 封装的优点
4.3.7 基于类的访问权限
4.3.8 私有方法
4.3.9 final实例域
4.4 静态域与静态方法
4.4.1 静态域
4.4.2 静态常量
4.4.3 静态方法
4.4.4 工厂方法
4.4.5 main方法
4.5 方法参数
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 对象析构与finalize方法
4.7 包
4.7.1 类的导入
4.7.2 静态导入
4.7.3 将类放入包中
4.7.4 包作用域
4.8 类路径
4.9 文档注释
4.9.1 注释的插入
4.9.2 类注释
4.9.3 方法注释
4.9.4 域注释
4.9.5 通用注释
4.9.6 包与概述注释
4.9.7 注释的抽取
4.10 类设计技巧
第5章 继承
5.1 类、超类和子类
5.1.1 继承层次
5.1.2 多态
5.1.3 动态绑定
5.1.4 阻止继承:final类和方法
5.1.5 强制类型转换
5.1.6 抽象类
5.1.7 受保护访问
5.2 Object:所有类的超类
5.2.1 equals方法
5.2.2 相等测试与继承
5.2.3 hashCode方法
5.2.4 toString方法
5.3 泛型数组列表
5.3.1 访问数组列表元素
5.3.2 类型化与原始数组列表的兼容性
5.4 对象包装器与自动装箱
5.5 参数数量可变的方法
5.6 枚举类
5.7 反射
5.7.1 Class类
5.7.2 捕获异常
5.7.3 利用反射分析类的能力
5.7.4 在运行时使用反射分析对象
5.7.5 使用反射编写泛型数组代码
5.7.6 调用任意方法
5.8 继承设计的技巧
第6章 接口与内部类
6.1 接口
6.1.1 接口的特性
6.1.2 接口与抽象类
6.2 对象克隆
6.3 接口与回调
6.4 内部类
6.4.1 使用内部类访问对象状态
6.4.2 内部类的特殊语法规则
6.4.3 内部类是否有用、必要和安全
6.4.4 局部内部类
6.4.5 由外部方法访问final变量
6.4.6 匿名内部类
6.4.7 静态内部类
6.5 代理
第7章 图形程序设计
7.1 Swing概述
7.2 创建框架
7.3 框架定位
7.3.1 框架属性
7.3.2 确定合适的框架大小
7.4 在组件中显示信息
7.5 处理2D图形
7.6 使用颜色
7.7 文本使用特殊字体
7.8 显示图像
第8章 事件处理
8.1 事件处理基础
8.1.1 实例:处理按钮点击事件
8.1.2 建议使用内部类
8.1.3 创建包含一个方法调用的监听器
8.1.4 实例:改变观感
8.1.5 适配器类
8.2 动作
8.3 鼠标事件
8.4 AWT事件继承层次
第9章 Swing用户界面组件
9.1 Swing和模型—视图—控制器设计模式
9.1.1 设计模式
9.1.2 模型—视图—控制器模式
9.1.3 Swing按钮的模型—视图—控制器分析
9.2 布局管理概述
9.2.1 边框布局
9.2.2 网格布局
9.3 文本输入
9.3.1 文本域
9.3.2 标签和标签组件
9.3.3 密码域
9.3.4 文本区
9.3.5 滚动窗格
9.4 选择组件
9.4.1 复选框
9.4.2 单选按钮
9.4.3 边框
9.4.4 组合框
9.4.5 滑动条
9.5 菜单
9.5.1 菜单创建
9.5.2 菜单项中的图标
9.5.3 复选框和单选按钮菜单项
9.5.4 弹出菜单
9.5.5 快捷键和加速器
9.5.6 启用和禁用菜单项
9.5.7 工具栏
9.5.8 工具提示
9.6 复杂的布局管理
9.6.1 网格组布局
9.6.2 组布局
9.6.3 不使用布局管理器
9.6.4 定制布局管理器
9.6.5 遍历顺序
9.7 对话框
9.7.1 选项对话框
9.7.2 创建对话框
9.7.3 数据交换
9.7.4 文件对话框
9.7.5 颜色选择器
第10章 部署应用程序和applet
10.1 JAR文件
10.1.1 清单文件
10.1.2 可运行JAR文件
10.1.3 资源
10.1.4 密封
10.2 Java Web Start
10.2.1 沙箱
10.2.2 签名代码
10.2.3 JNLP API
10.3 applet
10.3.1 一个简单的applet
10.3.2 applet的HTML标记和属性
10.3.3 object标记
10.3.4 使用参数向applet传递信息
10.3.5 访问图像和音频文件
10.3.6 applet上下文
10.4 应用程序首选项存储
10.4.1 属性映射
10.4.2 Preferences API
第11章 异常、断言、日志和调试
11.1 处理错误
11.1.1 异常分类
11.1.2 声明已检查异常
11.1.3 如何抛出异常
11.1.4 创建异常类
11.2 捕获异常
11.2.1 捕获多个异常
11.2.2 再次抛出异常与异常链
11.2.3 finally子句
11.2.4 带资源的try语句
11.2.5 分析堆栈跟踪元素
11.3 使用异常机制的技巧
11.4 使用断言
11.4.1 启用和禁用断言
11.4.2 使用断言完成参数检查
11.4.3 为文档假设使用断言
11.5 记录日志
11.5.1 基本日志
11.5.2 高级日志
11.5.3 修改日志管理器配置
11.5.4 本地化
11.5.5 处理器
11.5.6 过滤器
11.5.7 格式化器
11.5.8 日志记录说明
11.6 调试技巧
11.7 GUI程序排错技巧
11.8 使用调试器
……
第12章 泛型程序设计
第13章 集合
第14章 多线程
附录 Java关键字

亚马逊链接

基本信息

名称: Java性能优化权威指南
作者信息: 作者: Charlie Hunt [ 英文 pdf ]

简单介绍

《Java性能优化权威指南》由曾任职于Oracle/Sun的性能优化专家编写,系统而详细地讲解了性能优化的各个方面,帮助你学习Java虚拟机的基本原理、掌握一些监控Java程序性能的工具,从而快速找到程序中的性能瓶颈,并有效改善程序的运行性能。 Java性能优化的任何问题,都可以从本书中找到答案!

目录

1
2
3
目  录 

第1章 策略、方法和方法论  1 1.1  性能问题的现状  1 1.2  性能分析的两种方法:自顶向下和自底向上  4 1.2.1  自顶向下  4 1.2.2  自底向上  5 1.3  选择正确的平台并评估系统性能  5 1.3.1  选择正确的CPU架构  6 1.3.2  评估系统性能  7 1.4  参考资料  7 第2章 操作系统性能监控  8 2.1  定义  8 2.2  CPU使用率  9 2.2.1  监控CPU使用率:Windows  9 2.2.2  监控CPU使用率:Windows typeperf  12 2.2.3  监控CPU使用率:Linux  13 2.2.4  监控CPU使用率:Solaris  14 2.2.5  命令行监控CPU使用率:Linux和Solaris  16 2.3  CPU调度程序运行队列  19 2.3.1  监控CPU调度程序运行队列:Windows  19 2.3.2  监控CPU调度程序运行队列:Solaris  21 2.3.3  监控CPU调度程序运行队列:Linux  21 2.4  内存使用率  22 2.4.1  监控内存利用率:Windows  22 2.4.2  监控内存使用率:Solaris  23 2.4.3  监控内存使用率:Linux  24 2.4.4  监控锁竞争:Solaris  25 2.4.5  监控锁竞争:Linux  26 2.4.6  监控锁竞争:Windows  27 2.4.7  隔离竞争锁  27 2.4.8  监控抢占式上下文切换  27 2.4.9  监控线程迁移  28 2.5  网络I/O使用率  28 2.5.1  监控网络I/O使用率:Solaris  29 2.5.2  监控网络I/O使用率:Linux  30 2.5.3  监控网络I/O使用率:Windows  30 2.5.4  应用性能改进的考虑  31 2.6  磁盘I/O使用率  31 2.7  其他命令行工具  34 2.8  监控CPU使用率:SPARC T系列系统  35 2.9  参考资料  36 第3章 JVM概览  38 3.1  HotSpot VM的基本架构  38 3.2  HotSpot VM运行时  40 3.2.1  命令行选项  40 3.2.2  VM生命周期  41 3.2.3  VM类加载  44 3.2.4  字节码验证  46 3.2.5  类数据共享  47 3.2.6  解释器  48 3.2.7  异常处理  49 3.2.8  同步  50 3.2.9  线程管理  51 3.2.10  C++堆管理  53 3.2.11  Java本地接口  54 3.2.12  VM致命错误处理  55 3.3  HotSpot VM垃圾收集器  56 3.3.1  分代垃圾收集  56 3.3.2  新生代  58 3.3.3  快速内存分配  60 3.3.4  垃圾收集器  60 3.3.5  Serial收集器  61 3.3.6  Parallel收集器:吞吐量为先!  62 3.3.7  Mostly-Concurrent收集器:低延迟为先!  62 3.3.8  Garbage-First收集器:CMS替代者  64 3.3.9  垃圾收集器比较  64 3.3.10  应用程序对垃圾收集器的影响  65 3.3.11  简单回顾收集器历史  65 3.4  HotSpot VM JIT编译器  65 3.4.1  类型继承关系分析  67 3.4.2  编译策略  67 3.4.3  逆优化  68 3.4.4  Client JIT编译器概览  69 3.4.5  Server JIT编译器概览  69 3.4.6  静态单赋值——程序依赖图  69 3.4.7  未来增强展望  71 3.5  HotSpot VM自适应调优  71 3.5.1  Java 1.4.2的默认值  71 3.5.2  Java 5自动优化的默认值  71 3.5.3  Java 6 Update 18更新后的默认优化值  73 3.5.4  自适应Java堆调整  74 3.5.5  超越自动优化  75 3.6  参考资料  75 第4章 JVM性能监控  77 4.1  定义  77 4.2  垃圾收集  78 4.2.1  重要的垃圾收集数据  78 4.2.2  垃圾收集报告  78 4.2.3  垃圾收集数据的离线分析  86 4.2.4  图形化工具  89 4.3  JIT编译器  103 4.4  类加载  104 4.5  Java应用监控  106 4.6  参考资料  109 第5章 Java应用性能分析  110 5.1  术语  111 5.1.1  通用性能分析术语  111 5.1.2  Oracle Solaris Studio Performance Analyzer术语  112 5.1.3  NetBeans Profiler术语  112 5.2  Oracle Solaris Studio Performance Analyzer  112 5.2.1  支持平台  113 5.2.2  下载/安装Oracle Solaris Studio Performance Analyzer  114 5.2.3  使用Oracle Solaris Studio Performance Analyzer 抓取性能数据  114 5.2.4  查看性能数据  118 5.2.5  数据表示  125 5.2.6  过滤性能数据  128 5.2.7  命令行工具er_print  129 5.3  NetBeans Profiler  135 5.3.1  支持平台  136 5.3.2  下载安装NetBeans Profiler  136 5.3.3  开始方法分析会话  137 5.3.4  Controls子面板  143 5.3.5  Status子面板  143 5.3.6  Profiling Results子面板  143 5.3.7  Saved Snapshots子面板  144 5.3.8  View子面板  144 5.3.9  Basic Telemetry子面板  144 5.3.10  查看动态结果  145 5.3.11  对结果进行快照  145 5.3.12  启动内存分析会话  146 5.3.13  查看实时结果  148 5.3.14  对结果进行快照  150 5.3.15  定位内存泄漏  150 5.3.16  分析堆转储  151 5.4  参考资料  152 第6章 Java应用性能分析技巧  153 6.1  性能优化机会  153 6.2  系统或内核态CPU使用  154 6.3  锁竞争  161 6.4  Volatile的使用  171 6.5  调整数据结构的大小  172 6.5.1  StringBuilder或StringBuffer大小的调整  172 6.5.2  Java Collection类大小调整  175 6.6  增加并行性  179 6.7  过高的CPU使用率  181 6.8  其他有用的分析提示  182 6.9  参考资料  184 第7章 JVM性能调优入门  185 7.1  方法  185 7.1.1  假设条件  187 7.1.2  测试基础设施需求  188 7.2  应用程序的系统需求  188 7.2.1  可用性  188 7.2.2  可管理性  188 7.2.3  吞吐量  189 7.2.4  延迟及响应性  189 7.2.5  内存占用  189 7.2.6  启动时间  189 7.3  对系统需求分级  190 7.4  选择JVM部署模式  190 7.4.1  单JVM部署模式  190 7.4.2  多JVM部署模式  190 7.4.3  通用建议  191 7.5  选择JVM运行模式  191 7.5.1  Client模式或Server模式  191 7.5.2  32位/64位 JVM  192 7.5.3  垃圾收集器  192 7.6  垃圾收集调优基础  193 7.6.1  性能属性  193 7.6.2  原则  193 7.6.3  命令行选项及GC日志  194 7.7  确定内存占用  197 7.7.1  约束  197 7.7.2  HotSpot VM堆的布局  197 7.7.3  堆大小调优着眼点  200 7.7.4  计算活跃数据大小  201 7.7.5  初始堆空间大小配置  202 7.7.6  其他考量因素  203 7.8  调优延迟/响应性  204 7.8.1  输入  205 7.8.2  优化新生代的大小  205 7.8.3  优化老年代的大小  207 7.8.4  为CMS调优延迟  210 7.8.5  Survivor空间介绍  212 7.8.6  解析晋升阈值  214 7.8.7  监控晋升阈值  215 7.8.8  调整Survivor空间的容量  216 7.8.9  显式的垃圾收集  222 7.8.10  并发永久代垃圾收集  223 7.8.11  调优CMS停顿时间  224 7.8.12  下一步  225 7.9  应用程序吞吐量调优  225 7.9.1  CMS吞吐量调优  225 7.9.2  Throughput收集器调优  226 7.9.3  Survivor空间调优  228 7.9.4  调优并行垃圾收集线程  231 7.9.5  在NUMA系统上部署  231 7.9.6  下一步  232 7.10  极端示例  232 7.11  其他性能命令行选项  232 7.11.1  实验性(最近最大)优化  232 7.11.2  逃逸分析  233 7.11.3  偏向锁  233 7.11.4  大页面支持  234 7.12  参考资料  236 第8章 Java应用的基准测试  237 8.1  基准测试所面临的挑战  237 8.1.1  基准测试的预热阶段  238 8.1.2  垃圾收集  240 8.1.3  使用Java Time接口  240 8.1.4  剔除无效代码  241 8.1.5  内联  247 8.1.6  逆优化  251 8.1.7  创建微基准测试的注意事项  256 8.2  实验设计  257 8.3  使用统计方法  258 8.3.1  计算均值  258 8.3.2  计算标准差  258 8.3.3  计算置信区间  259 8.3.4  使用假设测试  260 8.3.5  使用统计方法的注意事项  262 8.4  参考文献  263 8.5  参考资料  263 第9章 多层应用的基准测试  264 9.1  基准测试难题  264 9.2  企业级应用基准测试的考量  266 9.2.1  定义被测系统  266 9.2.2  制定微基准测试  266 9.2.3  定义用户交互模型  267 9.2.4  定义性能指标  270 9.2.5  扩展基准测试  273 9.2.6  用利特尔法则验证  274 9.2.7  思考时间  275 9.2.8  扩展性分析  278 9.2.9  运行基准测试  278 9.3  应用服务器监控  281 9.3.1  GlassFish监控  281 9.3.2  监控子系统  286 9.3.3  Solaris  287 9.3.4  Linux  288 9.3.5  Windows  288 9.3.6  外部系统的性能  289 9.3.7  磁盘I/O  292 9.3.8  监控和调优资源池  293 9.4  企业级应用性能分析  294 9.5  参考资料  295 第10章 Web应用的性能调优  297 10.1  Web应用的基准测试  298 10.2  Web容器的组件  298 10.2.1  HTTP连接器  299 10.2.2  Servlet引擎  300 10.3  Web容器的监控和性能调优  300 10.3.1  容器的开发和生产模式  300 10.3.2  安全管理器  301 10.3.3  JVM调优  301 10.3.4  HTTP服务和Web容器  303 10.3.5  HTTP监听器  303 10.4  最佳实践  315 10.4.1  Servlet和JSP最佳实践  315 10.4.2  内容缓存  324 10.4.3  会话持久化  328 10.4.4  HTTP服务器文件缓存  329 10.5  参考资料  333 第11章 Web Service的性能  334 11.1  XML的性能  334 11.1.1  XML处理的生命周期  335 11.1.2  解析/解编组  335 11.1.3  访问  338 11.1.4  修改  338 11.1.5  序列化/编组  339 11.2  验证  339 11.3  解析外部实体  341 11.4  XML文档的局部处理  343 11.5  选择合适的API  346 11.6  JAX-WS参考实现栈  349 11.7  Web Service基准测试  350 11.8  影响Web Service性能的因素  353 11.8.1  消息大小的影响  353 11.8.2  不同Schema类型的性能特征  355 11.8.3  终端服务器的实现  358 11.8.4  处理程序的性能  359 11.9  最佳性能实践  361 11.9.1  二进制负载的处理  361 11.9.2  处理XML文档  365 11.9.3  使用MTOM发送XML文档  365 11.9.4  使用Provider接口  368 11.9.5  快速信息集  370 11.9.6  HTTP压缩  372 11.9.7  Web Service客户端的性能  373 11.10  参考资料  374 第12章 Java持久化及Enterprise Java Bean的性能  375 12.1  EJB编程模型  376 12.2  Java持久化API及其参考实现  376 12.3  监控及调优EJB容器  379 12.3.1  线程池  380 12.3.2  Bean池和缓存  382 12.3.3  EclipseLink会话缓存  385 12.4  事务隔离级  386 12.5  Enterprise Java Bean的最佳实践  387 12.5.1  简要说明使用的EJB基准测试  387 12.5.2  EJB 2.1  388 12.5.3  EJB 3.0  400 12.6  Java持久化最佳实践  403 12.6.1  JPA查询语言中的查询  403 12.6.2  查询结果缓存  405 12.6.3  FetchType  406 12.6.4  连接池  408 12.6.5  批量更新  409 12.6.6  选择正确的数据库锁策略  411 12.6.7  不带事务的读取  411 12.6.8  继承  411 12.7  参考资料  412 附录A  重要的HotSpot VM选项  413 附录B  性能分析技巧示例源代码  429 B.1  锁竞争实现1  429 B.2  锁竞争实现2  439 B.3  锁竞争实现3  449 B.4  锁竞争实现4  459 B.5  锁竞争实现5  469 B.6  调整容量变化1  481 B.7  调整容量变化2  492 B.8  增加并发性的单线程实现  504 B.9  增加并发性的多线程实现  514

亚马逊链接

基本信息

名称: JavaScript启示录
作者信息: 作者: Cody Lindley [ 英文 pdf ]

简单介绍

《JavaScript启示录》无关于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
目 录 

第1章 JavaScript对象 1 1.1 创建对象 1 1.2 JavaScript构造函数构建并返回对象实例 6 1.3 JavaScript原生/内置对象构造函数 7 1.4 用户自定义/非原生对象构造函数 8 1.5 使用new 操作符实例化构造函数 10 1.6 从构造函数创建字面量值 11 1.7 原始值(或简单值) 13 1.8 null、undefined、“string”、10、true和false等原始值不是对象 14 1.9 如何存储和复制原始值 15 1.10 原始值比较采用值比较 16 1.11 原始值(String、Number、Boolean)在被用做对象时就像对象 17 1.12 复杂值(或组合值) 18 1.13 如何存储或复制复杂值 19 1.14 复杂对象比较采用引用比较 20 1.15 复杂对象具有动态属性 21 1.16 typeof操作符 21 1.17 动态属性支持易变对象 23 1.18 构造函数实例都拥有指向其构造函数的Constructor属性 24 1.19 验证对象是否是特定构造函数的实例 26 1.20 构造函数创建的实例可拥有自己独立的属性(实例属性) 27 1.21 JavaScript对象和Object()对象 28

第2章 对象与属性 29 2.1 复杂对象可以将大多数JavaScript值作为属性 29 2.2 封装复杂对象 30 2.3 用点表示法或中括号表示法获取/设置/更新对象属性 31 2.4 删除对象属性 34 2.5 如何解决对象属性的引用 34 2.6 使用hasOwnProperty验证对象属性不是来自原型链 37 2.7 使用in操作符检查一个对象是否包含给定属性 37 2.8 使用for in循环枚举(循环遍历)对象的属性 38 2.9 宿主对象与原生对象 39 2.10 使用Underscore.js增强及扩展对象 40

第3章 Object() 43 3.1 Object()对象概要 43 3.2 Object()参数 44 3.3 Object()属性和方法 45 3.4 Object()对象实例属性和方法 45 3.5 使用对象字面量创建Object()对象 46 3.6 所有对象都继承自Object.prototype 47

第4章 Function() 49 4.1 Function()对象概要 49 4.2 Function()参数 50 4.3 Function()属性和方法 50 4.4 Function对象实例属性和方法 51 4.5 函数总有返回值 51 4.6 函数是“一等公民”(不仅语法,还有值) 52 4.7 函数的参数传递 53 4.8 this和arguments适用于所有函数 53 4.9 arguments.callee属性 54 4.10 函数实例的length属性和arguments.length 55 4.11 重定义函数参数 55 4.12 代码执行完成前取消函数执行 56 4.13 定义函数(语句、表达式或构造函数) 57 4.14 调用函数[函数、方法、构造函数或call()和apply()] 57 4.15 匿名函数 59 4.16 自调用的函数表达式 59 4.17 自调用的匿名函数语句 59 4.18 函数可以嵌套 60 4.19 给函数传递函数,从函数返回函数 61 4.20 函数定义之前调用(函数提升) 61 4.21 函数可以调用自身(递归) 62

第5章 head/全局对象 64 5.1 head/全局对象概要 64 5.2 head对象内的全局函数 65 5.3 head对象与全局属性、全局变量 65 5.4 引用head对象 67 5.5 head对象是隐式的,通常不显式引用 67

第6章 this关键字 69 6.1 this概要及this如何引用对象 69 6.2 如何确定this值 70 6.3 在嵌套函数中用this关键字引用head对象 71 6.4 充分利用作用域链研究嵌套函数问题 73 6.5 使用call()或apply()控制this值 73 6.6 在用户自定义构造函数内部使用this关键字 75 6.7 原型方法内的this关键字引用构造函数实例 75

第7章 作用域和闭包 77 7.1 JavaScript作用域概要 77 7.2 JavaScript没有块作用域 78 7.3 在函数中用var声明变量,避免作用域陷阱 78 7.4 作用域链(词法作用域) 79 7.5 作用域链查找返回第一轮值 81 7.6 函数定义时确定作用域,而非调用时确定 81 7.7 闭包是由作用域链引起的 82

第8章 函数原型属性 84 8.1 原型链概要 84 8.2 为何要关注prototype属性 85 8.3 原型在所有function()实例上都是标准的 85 8.4 默认的prototype属性是Object()对象 86 8.5 将构造函数创建的实例链接至构造函数的prototype属性 87 8.6 原型链的最后是Object.prototype 88 8.7 原型链返回在链中找到的第一个匹配结果 88 8.8 用新对象替换prototype属性会删除默认构造函数属性 89 8.9 继承原型属性的实例总是能够获得最新值 90 8.10 用新对象替换prototype属性不会更新以前的实例 91 8.11 用户自定义构造函数像原生构造函数一样原型继承 92 8.12 创建继承链 94

第9章 Array() 95 9.1 Array()对象概要 95 9.2 Array()参数 96 9.3 Array()属性和方法 96 9.4 数组对象实例属性和方法 96 9.5 创建数组 97 9.6 数组添加及更新 98 9.7 长度与索引 99 9.8 定义预定义长度的数组 100 9.9 可以通过设置数组长度添加或删除值 100 9.10 数组包含数组(多维数组) 101 9.11 遍历数组 101

第10章 String() 103 10.1 String()对象概要 103 10.2 String()参数 104 10.3 String()属性和方法 104 10.4 字符串对象实例属性和方法 104

第11章 Number() 106 11.1 Number()对象概要 106 11.2 整数和浮点数 106 11.3 Number()参数 107 11.4 Number()属性 108 11.5 数字对象实例属性和方法 108

第12章 Boolean() 109 12.1 Boolean()对象概要 109 12.2 Boolean()参数 109 12.3 Boolean()属性和方法 110 12.4 布尔对象实例属性和方法 110 12.5 非原始false布尔对象转换为true 111 12.6 某些值是false,其他都是true 111

第13章 使用原始值:字符串、数字和布尔值 113 13.1 访问属性时原始值/字面量值被转换为对象 113 13.2 通常应使用原始字符串、数字和布尔值 115

第14章 null 116 14.1 null值概要 116 14.2 typeof(null)的返回值为“object” 116

第15章 undefined 118 15.1 undefined值概要 118 15.2 在全局作用域中定义undefined变量 119

第16章 Math函数 120 16.1 内置Math对象概要 120 16.2 Math属性和方法 120 16.3 Math不是构造函数 122 16.4 Math常数无法增大/改变 122

附录A 回顾 123 附录B 总结 126

亚马逊链接

基本信息

名称: 精通Ext JS
作者信息: 作者: Loiane Groner [ 英文 pdf ]

简单介绍

花旗银行软件开发经理、IBM系统分析师8年工作经验总结汇聚Java用户组领导者的精粹技巧每章一个任务,分模块细析应用开发

目录

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
目 录 

第1章 启程 1 1.1 安装所需软件 1 1.2 展示应用及其功能 3 1.2.1 启动界面 3 1.2.2 登录界面 4 1.2.3 主界面 4 1.2.4 用户控制管理 5 1.2.5 MySQL数据库表管理 5 1.2.6 内容管理控制 6 1.2.7 电子邮件客户端模块 7 1.3 用MVC创建应用框架 8 1.3.1 MVC简介 8 1.3.2 创建应用 9 1.4 创建加载页面 14 1.5 小结 19

第2章 登录界面 20 2.1 登录界面 20 2.2 创建登录界面 21 2.2.1 客户端验证 24 2.2.2 添加带有按钮的工具栏 26 2.2.3 运行代码 27 2.2.4 itemId还是id:Ext.Cmp的问题 28 2.3 创建登录控制器 28 2.3.1 在app.js中添加控制器 29 2.3.2 监听按钮点击事件 30 2.4 创建用户和用户组表 38 2.5 服务器端的登录界面处理 39 2.5.1 连接数据库 39 2.5.2 login.php 40 2.5.3 处理服务器端的返回结果——登录与否 42 2.6 优化登录界面 45 2.6.1 进行认证时为表单提供一个加载遮罩 45 2.6.2 回车提交表单 46 2.6.3 大写键提醒信息 46 2.7 小结 50

第3章 注销与多语言支持 51 3.1 基本应用界面 51 3.2 注销功能 54 3.2.1 重构登录和注销代码 56 3.2.2 服务器端注销功能 58 3.2.3 客户端行为监控 58 3.3 多语言支持 59 3.3.1 创建语言转换组件 60 3.3.2 创建转换文件 62 3.3.3 使用转换信息 63 3.3.4 HTML5本地存储 63 3.3.5 实时的语言切换 64 3.3.6 本地化:Ext JS语言转换 67 3.4 小结 67

第4章 动态菜单高级应用 68 4.1 创建动态菜单 68 4.1.1 数据库模型:用户组、菜单及权限 69 4.1.2 创建菜单模型:hasMany绑定 70 4.1.3 创建数据存储器:通过服务器端加载菜单 73 4.1.4 在服务器端处理动态菜单 73 4.1.5 用折叠面板和树形面板创建菜单 76 4.1.6 在视见区替换中央区域容器 76 4.1.7 创建菜单控制器 77 4.1.8 改动app.js 80 4.2 小结 81

第5章 用户鉴权与安全 82 5.1 用户管理 82 5.2 列出所有用户:简单的网格面板 83 5.2.1 用户模型 83 5.2.2 用户存储器 84 5.2.3 用户网格面板 85 5.2.4 用户控制器 88 5.3 添加和编辑用户 89 5.3.1 创建编辑视图:窗体里的表单 89 5.3.2 用户组模型 93 5.3.3 用户组集模型 93 5.3.4 控制器:监听Add按钮事件 94 5.3.5 控制器:监听Edit按钮事件 95 5.3.6 控制器:保存用户信息 96 5.3.7 控制器:监听Cancel按钮 97 5.3.8 在上传之前预览文件 98 5.4 删除用户 99 5.5 小结 101

第6章 MySQL数据库表管理 102 6.1 呈现数据库表 102 6.2 创建模型 104 6.2.1 抽象模型 104 6.2.2 特定模型 105 6.3 创建存储器 106 6.3.1 抽象存储器 107 6.3.2 抽象代理类 107 6.3.3 特定存储器 111 6.4 创建菜单项 112 6.5 创建重用的抽象网格面板 113 6.5.1 用MVC架构模式处理操作列 118 6.5.2 在操作列用iconCls属性取代icon属性 118 6.5.3 比较即席搜索插件与过滤插件 119 6.5.4 对应每张数据库表的特定网格面板 120 6.6 通用控制器 121 6.6.1 在网格渲染时加载网格面板 122 6.6.2 在网格面板上添加记录 123 6.6.3 编辑存在记录 124 6.6.4 删除:在控制器中处理操作列 125 6.6.5 保存变更 125 6.6.6 取消变更 127 6.6.7 清除过滤器 127 6.6.8 在控制器中监听存储器事件 128 6.7 小结 128

第7章 内容管理 129 7.1 管理影片、客户和租借信息 129 7.2 呈现影片数据网格 133 7.2.1 影片模型 133 7.2.2 影片存储器 133 7.2.3 带分页功能的影片数据网格 135 7.2.4 创建控制器 141 7.3 影片网格面板编辑功能 142 7.3.1 Packt.view.sakila.WindowForm 147 7.3.2 影片类别 149 7.3.3 演员信息 154 7.4 影片控制器 159 7.4.1 在编辑表单中加载已有影片信息 159 7.4.2 获取MultiSelect组件值 160 7.4.3 通过即席搜索获取所选演员 161 7.5 小结 162

第8章 添加额外功能 163 8.1 将网格面板信息导出成PDF和Excel格式 163 8.1.1 导出成PDF格式 164 8.1.2 导出成Excel格式 166 8.2 通过网格打印插件打印网格面板内容 166 8.3 创建影片类别销售图 168 8.3.1 饼图 169 8.3.2 柱状图 170 8.3.3 图表面板 172 8.3.4 更改图表类型 175 8.3.5 图表导出成图片格式(PNG和SVG) 176 8.3.6 图表导出成PDF格式 177 8.4 小结 179

第9章 电子邮件客户端模块 180 9.1 创建收件箱:邮件列表 180 9.1.1 邮件信息模型 181 9.1.2 邮件信息存储器 181 9.1.3 邮件列表视图 182 9.1.4 邮件预览面板 186 9.2 邮件菜单(树形菜单) 187 9.2.1 树形邮件菜单存储器 187 9.2.2 创建邮件菜单视图 188 9.3 邮件容器:组织电子邮件客户端 189 9.4 控制器 191 9.5 组织电子邮件:拖放 193 9.6 创建新邮件 195 9.6.1 动态呈现Cc和Bcc字段 197 9.6.2 动态添加文件上传字段 198 9.7 小结 199

第10章 产品化准备 200 10.1 开始之前 200 10.2 自定义主题 201 10.3 为产品发布打包应用 206 10.3.1 发布成产品的内容 208 10.3.2 产品化的优点 209 10.4 从Web到桌面:Sencha Desktop Packager 210 10.4.1 安装Sencha Desktop Packager 210 10.4.2 应用打包 214 10.4.3 服务器端代码调整 216 10.5 小结 219

第11章 创建WordPress主题 220 11.1 安装WordPress 220 11.2 WordPress主题简介 222 11.3 组织主题结构 223 11.4 构建头部 225 11.5 构建页脚 229 11.6 构建主页面 230 11.7 构建侧边栏 232 11.8 构建单一文章页面 237 11.9 构建单一页面 238 11.10 小结 238

第12章 调试与测试 239 12.1 调试Ext JS应用程序 239 12.2 测试Ext JS应用程序 241 12.2.1 使用Sencha command生成“测试”构造 242 12.2.2 安装Siesta并创建测试用例 243 12.3 有用的工具箱 247 12.4 从Ext JS应用到移动应用 249 12.5 第三方组件和插件 250 12.6 小结 250

亚马逊链接

基本信息

名称: Node学习指南
作者信息: 作者: Shelley Powers [ 英文 pdf ]

简单介绍

■ 探索Node独特的异步开发的实现方式;■ 使用Express架构和Connect中间件构建Node应用示例;■ 使用NoSQL解决方案,比如Redis和MongoDB,探索Node的关系数据库模块;■ 使用PDF文件,提供HTML5媒体,使用Canvas创建图形;■ 使用WebSockets创建浏览器和服务器的双向通信;■ 深入学习如何调试和测试程序;■ 在云服务器或者自己的系统上部署Node应用程序。 精彩的内容将帮助你将Web开发技能从浏览器端转向Node服务器,并且学习如何使用Node这种基于JavaScript的平台编写出快速和高可扩展性的网络应用。你可以快速掌握Node的核心技能,获得使用内建和扩展模块的经验,并了解客户端编程和服务器端编程的不同和相同之处。如果你喜欢使用JavaScript,书中提供了很多代码和开发的示例来帮助你学习Node服务器端的开发。

目录

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
目 录 

第1章 Node.js:启动与运行 1 1.1 搭建Node开发环境 2 1.1.1 Linux(Ubuntu)下安装Node 2 1.1.2 Windows 7平台下Node+WebMatrix 4 1.1.3 升级Node 8 1.2 开始Node开发 9 1.2.1 Hello, World in Node 9 1.2.2 分析“Hello,World” 11 1.3 异步函数及Node事件循环 13 1.3.1 使用异步方式读取文件 14 1.3.2 观察异步程序流程 15 1.4 Node的优势 19

第2章 Node与REPL 20 2.1 REPL:先睹为快和未定义的表达式 20 2.2 REPL的优势:更好地理解表层之下的JavaScript 22 2.3 多行以及更复杂的JavaScript 23 2.3.1 REPL命令 26 2.3.2 REPL和rlwrap 27 2.3.3 定制REPL 28 2.4 不可预计的意外——记得经常保存 32

第3章 Node核心库 33 3.1 全局对象:global、process和Buffer 34 3.1.1 global 34 3.1.2 process 36 3.1.3 Buffer 38 3.2 定时器:setTimeout、clearTimeout、setInterval 和clearInterval 39 3.3 Servers、Streams和Sockets 40 3.3.1 TCP Sockets和Servers 41 3.3.2 HTTP 43 3.3.3 UDP数据报套接字 45 3.3.4 流、管道和Readline 47 3.4 子进程 49 3.4.1 child_process.spawn 50 3.4.2 child_process.exec和child_process.execFile 52 3.4.3 child_process.fork 52 3.4.4 在Windows系统中使用子进程 53 3.5 域名解析和URL处理 54 3.6 Utilities模块和对象继承 55 3.7 Events和EventEmitter 59

第4章 Node模块系统 63 4.1 使用require和默认路径加载模块 63 4.2 外部模块和Node包管理工具 65 4.3 如何找到你需要的模块 69 4.3.1 Colors:简单至上 71 4.3.2 Optimist:另一个简单的小模块 73 4.3.3 Underscore 74 4.4 创建自定义模块 75 4.4.1 打包整个目录 76 4.4.2 为你的模块发布做准备 76 4.4.3 发布模块 80

第5章 控制流、异步模式和异常处理 82 5.1 使用Callback而不使用Promises 82 5.2 顺序调用、嵌套回调、异常捕获 85 5.3 异步模式和控制流模块 92 5.3.1 Step 93 5.3.2 Async 96 5.4 Node编码风格 101

第6章 路由寻址、服务文件和中间件 103 6.1 从头开始:创建一个简单的静态文件服务器 103 6.2 中间件 110 6.2.1 Connect基本知识 111 6.2.2 Connect中间件 113 6.2.3 定制Connect中间件 118 6.3 Routers 121 6.4 Proxies 124

第7章 Express框架 128 7.1 Express:启动和运行 129 7.2 app.js文件 130 7.3 错误处理 133 7.4 Express与Connect的关系 134 7.5 路由 135 7.5.1 路由路径 137 7.5.2 路由和HTTP动词 140 7.6 关于MVC 147 7.7 使用cURL测试Express应用程序 152

第8章 Express、模板系统和CSS 154 8.1 EJS模板系统(Embedded JavaScript Template System) 154 8.1.1 基本语法 155 8.1.2 Node与EJS 156 8.1.3 EJS与Node Filters 158 8.2 在Express中使用EJS 159 8.2.1 多对象环境的改造 161 8.2.2 静态文件路由 162 8.2.3 处理一个新对象的Post请求 164 8.2.4 Widget索引和生成picklist 166 8.2.5 显示单个对象并确认对象的删除操作 168 8.2.6 提供更新信息的表达以及处理PUT请求 170 8.3 Jade模板系统 173 8.3.1 Jade语法简介 173 8.3.2 使用block和extends模块化视图模板 176 8.3.3 Widget View转换为Jade模板 178 8.3.4 转换edit和delete表单 179 8.4 使用Stylus完成简单的CSS样式 182

第9章 结构化数据、Noe和Redis 187 9.1 Node和Redis 188 9.2 构建游戏得分排行榜 190 9.3 创建消息队列 197 9.4 为Express应用程序添加统计中间件 201

第10章 Node和MongoDB:文档中心数据 206 10.1 MongoDB Native Node.js Driver(MongoDB原生Node.js驱动) 207 10.1.1 MongoDB入门 207 10.1.2 定义、创建以及销毁MongoDB Collection 208 10.1.3 为Collection添加数据 209 10.1.4 查询数据 212 10.1.5 使用Updates、Upserts、Find和Remove 216 10.2 使用Mongoose实现Widget模块 221 10.3 重构Widget工厂 222 10.4 添加MongoDB后台 223

第11章 Node与关系型数据库 228 11.1 db-mysql入门 229 11.1.1 查询字符串和方法链 229 11.1.2 使用查询字符串更新数据库 233 11.1.3 使用方法链更新数据库 235 11.2 使用node-mysql实现本地MySQL访问 237 11.2.1 使用node-mysql做基本的CRUD操作 237 11.2.2 MySQL事务与mysql-queues 239 11.3 ORM与Sequelize 241 11.3.1 定义模型 241 11.3.2 ORM风格的CRUD实现 243 11.3.3 添加多个对象 246 11.3.4 从关系型到ORM 247

第12章 图形和HTML5 Video 248 12.1 创建和使用PDF 248 12.1.1 使用子进程访问PDF工具 249 12.1.2 使用PDFKit创建PDF 257 12.2 从子进程访问ImageMagick 258 12.3 通过HTTP提供HTML5 Video服务 263 12.4 创建和流化画布内容(Canvas Content) 267

第13章 WebSockets和Socket.IO 271 13.1 WebSockets 271 13.2 Socket.IO简介 272 13.2.1 一个简单的通信范例 273 13.2.2 异步世界里的WebSockets 276 13.2.3 关于客户端代码 277 13.3 配置Socket.IO 278 13.4 Chat:WebSockets版本的“Hello, World” 279 13.5 在Express中使用Socket.IO 282

第14章 Node应用程序的测试和调试 284 14.1 调试 284 14.1.1 Node.js Debugger 284 14.1.2 使用Node Inspector的客户端调试 287 14.2 单元测试(Unit Testing) 289 14.2.1 Assert与单元测试 289 14.2.2 Nodeunit与单元测试 293 14.2.3 其他测试框架 295 14.3 验收测试 299 14.3.1 Soda和Selenium测试 299 14.3.2 通过Tobi和Zombie模拟浏览器 303 14.4 性能测试:基准问题和负载测试 304 14.4.1 ApacheBench基准测试 305 14.4.2 Nodeload与负载测试 309 14.5 Nodemon更新代码 312

第15章 安全及防护 313 15.1 数据加密 314 15.1.1 TSL/SSL配置 314 15.1.2 使用HTTPS 315 15.1.3 如何安全的保存密码 317 15.2 认证/授权及Passport 320 15.2.1 授权/认证策略:Oauth、OpenID、用户名/密码验证 321 15.2.2 Local Passport Strategy 323 15.2.3 Twitter Passport Strategy(OAuth) 330 15.3 保护应用程序,防止攻击 336 15.3.1 不要使用eval 336 15.3.2 尽量使用复选框、单选按钮和下拉式选项 337 15.3.3 使用node-validator 337 15.4 在沙箱中执行代码 339

第16章 扩展和部署Node应用 343 16.1 把你的节点部署到服务器上 343 16.1.1 编写package.json文件 344 16.1.2 使用Forever让你的应用“永不掉线” 347 16.1.3 使用Node和Apache 350 16.1.4 改善性能 352 16.2 部署到云服务 352 16.2.1 通过Cloud9 IDE部署到Windows Azure 353 16.2.2 Joyent Development SmartMachine 355 16.2.3 Heroku 355 16.2.4 Amazon EC2 356 16.2.5 Nodejitsu 356

附录 Node、Git和GitHub 357

亚马逊链接

基本信息

名称: 程序员的职业素养
作者信息: 作者: Robert C.Martin [ 中文 pdf ]

简单介绍

《程序员的职业素养》是编程大师 Robert C. Martin40余年编程生涯的心得体会, 讲解成为真正专业的程序员需要什么样的态度、原则,需要采取什么样的行动。Robert C. Martin以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来人引路,助其职业生涯迈上更高台阶。

目录

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
第1章 专业主义
1.1 清楚你要什么
1.2 担当责任
1.3 首先,不行损害之事
1.3.1 不要破坏软件功能
1.3.2 不要破坏结构
1.4 职业道德
1.4.1 了解你的领域
1.4.2 坚持学习
1.4.3 练习
1.4.4 合作
1.4.5 辅导
1.4.6 了解业务领域
1.4.7 与雇主/客户保持一致
1.4.8 谦逊
1.5 参考文献
第2章 说“不”
2.1对抗角色
2.2高风险时刻
2.3要有团队精神
2.3.1试试看
2.3.2消极对抗
2.4说“是”的成本
2.5如何写出好代码
第3章说“是”
3.1承诺用语
3.1.1识别“缺乏承诺”的征兆
3.1.2真正的承诺听起来是怎样的
3.1.3 总结
3.2学习如何说“是”
3.2.1 “试试”的另一面
3.2.2 坚守原则
3.3结论
第4章编码
4.1做好准备
4.1.1 凌晨3点写出的代码
4.1.2焦虑时写下的代码
4.2流态区
4.2.1 音乐
4.2.2 中断
4.3 阻塞
4.4调试
4.5保持节奏
4.5.1知道何时应该离开一会
4.5.2开车回家路上
4.5.3 洗澡
4.6进度延迟
4.6.1期望
4.6.2盲目冲刺
4.6.3加班加点
4.6.4交付失误
4.6.5定义“完成”
4.7帮助
4.7.1帮助他人
4.7.2接受他人的帮助
4.7.3 辅导
4.8参考文献
第5章测试驱动开发
5.1此事已有定论
5.2 TDD的三项法则
5.3 TDD的优势
5.3.1 确定性
5.3.2缺陷注入率
5.3.3 勇气
5.3.4 文档
5.3.5设计
5.3.6、专业人士的选择
5.4 TDD的局限
5.5参考文献
第6章练习
6.1 引子
6.1.1 10的22次方
6.1.2转变
6.2编程柔道场
6.2.1 卡塔
6.2.2瓦萨
6.2.3 自由练习
6.3 自身经验的拓展
6.3.1 开源
6.3.2 关于练习的职业道德
6.4结论
6.5参考文献
第7章验收测试
7.1需求的沟通
7.1.1过早精细化
7.1.2迟来的模糊性
7.2验收测试
7.2.1 “完成”的定义
7.2.2 沟通
7.2.3 自动化
7.2.4额外工作
7.2.5验收测试什么时候写,由谁来写
7.2.6开发人员的角色
7.2.7测试的协商与被动推进
7.2.8验收测试和单元测试
7.2.9 图形界面及其他复杂因素
7.2.10持续集成
7.3结论
第8章测试策略
8.1 QA应该找不到任何错误
8.1.1 QA也是团队的一部分
8.1.2需求规约定义者
8.1.3特性描述者
8.2自动化测试金字塔
8.2.1 单元测试
8.2.2组件测试
8.2.3集成测试
8.2.4 系统溺4试
8.2.5人工探索式测试
8.3结论
8.4参考文献
第9章时间管理
9.1 会议
9.1.1拒绝
9.1.2 离席
9.1.3确定议程与目标
9.1.4立会
9.1.5迭代计划会议
9.1.6迭代回顾和DEM0展示
9.1.7争论/反对
9.2注意力点数
9.2.1 睡眠
9.2.2咖啡因
9.2.3恢复
9.2.4肌肉注意力
……
第10章 预估
第11章 压力
第12章 协作
第13章 团队与项目
第14章 辅导、学徒期与技艺
附录 工具

亚马逊链接

基本信息

名称: CSS权威指南 第3版
作者信息: 作者: 迈耶 [ 中文 pdf ]

简单介绍

《CSS权威指南(第3版)》编辑推荐:想要快速省力地做到让Web风格整齐划一吗?《CSS权威指南(第3版)》告诉你怎样将最新的CSS2以CSS2.1里面所定义的各种CSS元素应用到实际工作当中。通过书中的例子,你将学会怎样使用CSS创建或修改网站的外观,并且达到普通HTML无法实现的效果。

目录

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
前言
第1章 CS S和文档
web的衰落
CSS作救星
元素
结合CSS和xHTML
小结
第2章 选择器
基本规则
分组
类选择器和ID选择器
属性选择器
使用文档结构
伪类和伪元素
小结
第3章 结构和层叠
特殊性
继承
层叠
小结
第4章 值和单位
数字
百分数
颜色
长度单位
URL
css2单位
小结
第5章 字体
字体系列
字体加粗
字体大小
风格和变形
拉伸和调整字体
font属性
字体匹配
小结
第6章 文本属性
缩进和水平对齐
垂直对齐
字间隔和字母间隔
文本转换
文本装饰
文本阴影
小结
第7章 基本视觉格式化
第8章 内边距、边框和外边距
第9章 颜色和背景
第10章 浮动和定位
第11章 表布局
第12章 列表与生成内容
第13章 用户界面样式
第14章 非屏幕媒体
附录A 属性参考
附录B 选择器、伪类和伪元素参考
附录C 示例HTML 4样式表

亚马逊链接

基本信息

名称: 黑客与画家
作者信息: 作者: Paul Graham [ 中文 pdf ]

简单介绍

《黑客与画家:硅谷创业之父Paul Graham文集》是硅谷创业之父Paul Graham的文集,主要介绍黑客即优秀程序员的爱好和动机,讨论黑客成长、黑客对世界的贡献以及编程语言和黑客工作方法等所有对计算机时代感兴趣的人的一些话题。书中的内容不但有助于了解计算机编程的本质、互联网行业的规则,还会帮助读者了解我们这个时代,迫使读者独立思考。   
《黑客与画家:硅谷创业之父Paul Graham文集》适合所有程序员和互联网创业者,也适合一切对计算机行业感兴趣的读者。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1. 为什么书呆子不受欢迎 1
他们的心思在别的地方。
2. 黑客与画家 18
黑客也是创造者,与画家、建筑师、作家一样。
3. 不能说的话 34
如果你的想法是社会无法容忍的,你怎么办?
4. 良好的坏习惯 52
与其他美国人一样,黑客的成功秘诀就是打破常规。
5. 另一条路 59
互联网软件是微机诞生后的最大机会。
6. 如何创造财富 90
致富的最好方法就是为社会创造财富。创造财富的最好方法就是创业。
7. 关注贫富分化 111
“收入分配不平等”的危害,会不会没有我们想的那样严重?
8. 防止垃圾邮件的一种方法 124
不久前,许多专家还认为无法有效地过滤垃圾邮件。本文改变了他们的想法

。 9. 设计者的品味 133 如何做出优秀的东西? 10. 编程语言解析 148 什么是编程语言?为什么它们现在很热门? 11. 一百年后的编程语言 156 一百年后,人类怎样编程?为什么不从现在开始就这样编程呢? 12. 拒绝平庸 169 别忘了你的对手与你一样,能用任何想用的语言编写互联网软件。 13. 书呆子的复仇 180 在高科技行业,只有失败者采用“业界最佳实践”。 14. 梦寐以求的编程语言 198 一种好的编程语言,是让黑客可以随心所欲使用的语言。 15. 设计与研究 213 研究必须是“新”的,而设计必须是“好”的。 志谢 219 术语解释 221 图片授权说明 236

亚马逊链接

基本信息

名称: Head First Servlets and JSP(第2版) (英)
作者信息: 作者: 巴萨姆 [ 英文 pdf ]

简单介绍

是不是要学最新版本j2ee 1.5参加sun认证web组件开发人员(scwcd)考试?《head first servlets&jsp(第二版)》并没有给你一大堆需要死记硬背的条条框框;它能将知识直接送入你的大脑。你会通过不寻常的方式同servlet和jsp打交道,可以学得更深入、更快捷。读完全书后,你会看到一个全新的模拟测验,这是模拟实际考试而专门设计的。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
引子
1 为什么使用Servlets&JSP:前言与概述
2 Web应用体系结构:高层概述
3 MVC迷你教程:MVC实战
4 作为Servlet:请求和响应
5 作为Web应用:属性和监听者
6 会话状态:会话管理
7 作为JSP:使用JSP
8 没有脚本的页面:无脚本的JSP
9 强大的定制标记:使用JSTL
10 JSTL也有力不能及的时候:定制标记开发
11 部署Web应用:Web应用部署
12 要保密,要安全:Web应用安全
13 过滤器的威力:过滤器和包装器
14 企业设计模式:模式和struts
A 附录A:最终模拟测验
i 索引

亚马逊链接

基本信息

名称: HTML5揭秘
作者信息: 作者: 马克•皮尔格雷姆 [ 中文 pdf ]

简单介绍

本书全面而深入地对HTML5相关的技术进行详细介绍和剖析。“从开始到现在”道出HTML5的坎坷发展史;“HTML5特性检测”介绍了多种针对不同特性的检测方法;“本地存储”揭开了如何把“数据库”搬到客户端的神秘面纱;“离线应用”展示了脱机状态下依然能让Web应用完好无损的神奇技艺;“疯狂的表单”大秀了一把炫酷无比的下一代Web表单……它几乎涵盖了HTML5标准中描述的所有新特性。本书在以诙谐的文字结合生动的实例介绍HTML5特性的同时,还深入剖析其内部原理。让读者不仅知其然,而且知其所以然。无论是刚接触Web前端技术的新人,还是经验丰富的老手,只要是HTML5技术爱好者,都会从本书中受益。

目录

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
前言  I
第1章 从开始到现在 1
1.1 引言 1
1.2 MIME类型 1
1.3 很长的题外话:一份标准是如何诞生的? 2
1.4 未曾间断的路线 7
1.5 HTML发展史:从1997到2004年 9
1.6 你所知道的关于XHTML的一切都是错误的 10
1.7 一个竞争愿景 11
1.8 WHAT工作小组? 12
1.9 回到W3C 13
1.10 后记 14
1.11 扩展阅读 14
第2章 HTML5特性检测 15
2.1 引言 15
2.2 检测技术 15
2.3 Modernizr:一个HTML5特性检测库 16
2.4 画布 16
2.5 画布文本 17
2.6 视频 18
2.7 视频格式 19
2.8 本地存储 21
2.9 Web Workers 23
2.10 离线Web应用 23
2.11 地理位置 24
2.12 输入框类型 25
2.13 占位文本 27
2.14 表单自动聚焦 27
2.15 微数据 28

2.16 扩展阅读 29 第3章 从这一切的含义 31 3.1 引言 31 3.2 文档类型 31 3.3 根元素 33 3.4 head元素 34 3.4.1 字符编码 35 3.4.2 朋友和(链接)关系 36 3.5 HTML5中新增的语义元素 41 3.6 题外话:浏览器如何处理未知元素 42 3.7 页头 45 3.8 文章 47 3.9 日期和时间 49 3.10 导航 51 3.11 页脚 52 3.12 扩展阅读 55 第4章 Canvas绘图 57 4.1 引言 57 4.2 简单的图形 58 4.3 Canvas坐标系 60 4.4 路径 61 4.5 文本 63 4.6 颜色渐变 67 4.7 图片 70 4.8 IE怎么办? 73 4.9 一个完整的例子 75 4.10 扩展阅读 79 第5章 网络上的视频 81 5.1 前言 81 5.2 视频容器 81 5.3 视频编解码器 83 5.3.1 H.264 84 5.3.2 Theora 84 5.3.3 VP8 85 5.4 音频编解码器 85 5.4.1 MPEG-1 音频层 3 86 5.4.2 高级音频编码 87 5.4.3 Vorbis 87 5.5 在网页中怎么工作 88 5.6 H.264视频的授权问题 90 5.7 使用Firefogg编码Ogg视频 91 5.8 使用ffmpegtheora批量编码Ogg视频 98 5.9 使用HandBrake编码H.264视频 100 5.10 使用HandBrake批量编码H.264视频 107 5.11 使用ffmpeg编码WebM视频 108 5.12 最后,标记 110 5.12.1 MIME类型很重要 113 5.13 IE怎么办? 114 5.14 完整的例子 114 5.14 扩展阅读 115 第6章 地理位置 117 6.1 引言 117 6.2 地理位置API 117 6.3 代码展示 118 6.4 容错处理 120 6.5 方案!我要方案! 121 6.6 那IE怎么办? 123 6.7 geo.js来拯救 123 6.8 一个完整的例子 125 6.9 扩展阅读 126 第7章 Web应用本地存储的过去、现在和未来 127 7.1 引言 127 7.2 HTML5之前的伪本地存储简史 128 7.3 HTML5存储介绍 129 7.4 使用HTML5存储 130 7.4.1 跟踪HTML5存储区的改动 131 7.4.2 现有浏览器的局限性 132 7.5 HTML5存储实践 132 7.6 超越键值对的存储形式 134 7.7 扩展阅读 135 第8章 离线Web应用 137 8.1 引言 137 8.2 缓存清单 138 8.2.1 “网络”段 139 8.2.2 “默认”部分 140 8.3 事件流 141 8.4 调试的艺术——杀了我!现在就杀了我! 142 8.5 让我们来构建一个离线Web应用! 145 8.6 扩展阅读 146

第9章 疯狂的表单 147 9.1 引言 147 9.2 占位文本 147 9.3 自动聚焦 148 9.4 Email地址 150 9.5 Web地址 151 9.6 数字类型输入框:数字选择器 153 9.7 数字类型输入框:滑块 155 9.8 日期选择器 156 9.9 搜索框 158 9.10 颜色选择器 160 9.11 还有一点…… 160 9.12 扩展阅读 161 第10章 “分布式”、“可扩展性”及其他华丽词藻 163 10.1 引言 163 10.2 什么是微数据? 164 10.3 微数据的数据模型 165 10.4 标注“人” 168 10.4.1 Google Rich Snippets介绍 174 10.5 标注“组织” 176 10.6 标注“事件” 180 10.6.1 Google Rich Snippets的回归 184 10.7 标注“点评” 186 10.8 扩展阅读 190 附录A 全方位特性检测指南 191 元素列表 191 扩展阅读 199 索引 201

亚马逊链接