精通JavaScript开发:Coding, Capabilities, and Tooling

精通JavaScript开发:Coding, Capabilities, and Tooling
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [英] (Den Odell) , ,
2015-09
版次: 1
ISBN: 9787115402554
定价: 79.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 410页
字数: 636千字
正文语种: 简体中文
原版书名: Pro JavaScript Development: Coding, Capabilities, and Tooling
24人买过
  • 本书是JavaScript实战指南,主要内容包括:JavaScript性能、可靠性、稳定性和代码管理分析,面向对象代码的使用,测试和错误处理机制的构建,用AMD和RequireJS管理代码依赖,移动端、游戏和实时通信的JavaScript开发,等等。 DenOdell前端开发工程师,具有丰富的HTML、CSS和JavaScript编程经验,Web标准和可用性的积极推动者。作为数字服务机构AKQA的Web开发主管和前端技术架构师,他曾为法拉利、耐克和诺基亚等公司开发网站和富Internet应用。 第1章 面向对象的JavaScript 1
    1.1 JavaScript中的对象 1
    1.1.1 定制对象 1
    1.1.2 类 2
    1.2 代码规范和命名 22
    1.2.1 规则1:使用描述性的名字 22
    1.2.2 规则2:以小写字母开头 23
    1.2.3 规则3:使用骆驼命名法来分割单词 23
    1.2.4 规则4:全局常量使用全大写的名字 23
    1.2.5 规则5:集中在一个语句中声明函数体的所有变量并将其置于函数体顶部 24
    1.3 ECMAScript 5 26
    1.3.1 JSON数据格式解析 27
    1.3.2 严格模式 27
    1.3.3 函数绑定 28
    1.3.4 数组方法 29
    1.3.5 对象方法 31
    1.4 小结 34
    第2章 JavaScript文档 35
    2.1 行内和块级注释 35
    2.2 结构化的JavaScript文档 36
    2.3 YUIDoc文档格式 36
    2.3.1 为“类”、构造器、属性和
    方法添加文档 37
    2.3.2 为事件添加文档 45
    2.3.3 为代码示例添加文档 45
    2.3.4 其他YUIDoc文档标签 46
    2.4 更具表达性的文档格式——
    Markdown 46
    2.4.1 用标题来组织内容 46
    2.4.2 换行以及创建段落 47
    2.4.3 创建列表 48
    2.4.4 强调文本 50
    2.4.5 显示代码 51
    2.4.6 添加引用 51
    2.4.7 添加URL链接 52
    2.4.8 插入图片 53
    2.4.9 生成水平分割线 53
    2.4.10 用反斜杠来插入保留字符 53
    2.4.11 对于其他内容,可以使用HTML 54
    2.5 使用YUIDoc创建一个文档网站 54
    2.6 小结 59
    第3章 编写高质量的JavaScript 60
    3.1 进行静态代码分析 60
    3.1.1 JSLint 60
    3.1.2 JSHint 64
    3.1.3 Google Closure Compiler和Closure Linter 65
    3.1.4 选择一个静态代码分析工具 66
    3.2 JavaScript中的单元测试 67
    3.2.1 JavaScript的单元测试框架 67
    3.2.2 使用Jasmine来进行
    JavaScript单元测试 68
    3.3 处理运行时错误 74
    3.3.1 JavaScript的原生错误类型 75
    3.3.2 将可能出错的代码放入try-catch语句中 75
    3.3.3 检测错误类型 77
    3.3.4 自定义错误类型 77
    3.4 度量代码质量 79
    3.4.1 单元测试的代码覆盖度 79
    3.4.2 度量代码复杂度 81
    3.5 小结 84
    第4章 增强JavaScript性能 85
    4.1 优化页面加载时间 85
    4.1.1 HTML标签顺序 85
    4.1.2 JavaScript 文件的GZip编码
    传输 85
    4.1.3 缩编、混淆和编译 86
    4.1.4 请求时才延迟加载JavaScript文件 90
    4.2 优化文档对象的操作 91
    4.2.1 实现对页面元素的最小化访问 92
    4.2.2 尽量利用已有元素 92
    4.2.3 离线DOM的利用 93
    4.2.4 使用CSS而非JavaScript来操控页面样式 94
    4.3 提升DOM事件性能 95
    4.3.1 委托事件至父元素 95
    4.3.2 使用框架化处理频密发出的
    事件 96
    4.4 提升函数性能 97
    4.5 使用正则表达式实现更快速的字符串
    操作 100
    4.6 更快速地使用数组 102
    4.6.1 快速创建数组 103
    4.6.2 快速进行数组循环 103
    4.7 转移密集型任务至Web Worker 106
    4.8 简单的性能测量 110
    4.9 小结 111
    第5章 设计模式:创建型 112
    5.1 什么是设计模式 112
    5.2 创建型设计模式 113
    5.2.1 工厂模式 113
    5.2.2 抽象工厂模式 116
    5.2.3 生成器模式 120
    5.2.4 原型模式 122
    5.2.5 单例模式 124
    5.3 小结 128
    第6章 设计模式:结构型 129
    6.1 适配器模式 129
    6.2 组合模式 132
    6.3 装饰模式 133
    6.4 外观模式 135
    6.5 享元模式 137
    6.6 掺合模式 143
    6.7 模块模式 147
    6.8 代理模式 150
    6.9 小结 153
    第7章 设计模式:行为型 154
    7.1 职责链模式 154
    7.2 命令模式 157
    7.3 迭代器模式 160
    7.4 观察者模式 163
    7.5 中介者模式 167
    7.6 备忘录模式 171
    7.7 承诺模式 173
    7.8 策略模式 184
    7.9 小结 188
    第8章 设计模式:架构型 189
    8.1 MVC模式 189
    8.2 MVP模式 197
    8.3 MVVM模式 203
    8.4 架构型模式框架 208
    8.5 小结 209
    第9章 代码文件依赖管理 210
    9.1 使用RequireJS进行代码文件依赖
    管理 210
    9.2 加载、初始化RequireJS 215
    9.3 模块名称的别名 217
    9.4 内容分发网络和后备 217
    9.5 建立模块 218
    9.6 于请求时才加载额外的脚本 220
    9.7 RequireJS代码优化工具 221
    9.8 RequireJS的附加插件 221
    9.9 RequireJS的代替品 222
    9.10 小结 223
    第10章 移动设备JavaScript开发 224
    10.1 移动Web开发的局限性 224
    10.1.1 电池续航能力 224
    10.1.2 网络带宽速度与延时 225
    10.1.3 板载内存容量 225
    10.1.4 操作系统响应能力 226
    10.2 通过JavaScript访问移动设备上的
    传感器 227
    10.2.1 访问地理位置定位传感器 228
    10.2.2 访问触摸传感器 230
    10.2.3 访问姿态传感器和方向传感
    器 232
    10.2.4 访问运动传感器 235
    10.2.5 未能访问的传感器 237
    10.2.6 事件框架化与传感器数据 237
    10.2.7 利用传感器数据进一步发
    挥 238
    10.3 网络连接故障与离线状态 238
    10.3.1 在线与离线状态的检测 239
    10.3.2 利用Web Storage API长期
    保存数据 241
    10.3.3 HTML5 Application Cache 244
    10.4 响应式(自适应)网页设计的
    JavaScript 246
    10.5 小结 247
    第11章 使用CanvasAPI创建游戏 248
    11.1 在Canvas中的基本绘图操作 248
    11.2 高清Canvas元素 251
    11.3 使用Canvas 制作游戏 251
    11.3.1 在Canvas 上绘制图像 252
    11.3.2 Canvas 中的动画 253
    11.3.3 游戏的控制 254
    11.3.4 碰撞检测 256
    11.3.5 游戏主循环 257
    11.3.6 分层Canvas以提高性能 258
    11.4 在Canvas 中制作Frogger游戏 258
    11.5 小结 299
    第12章 使用WebRTC实现视频聊天 300
    12.1 WebRTC规范 300
    12.2 访问网络摄像头和麦克风 300
    12.3 建立一个简单的视频聊天网页应用
    程序 303
    12.4 创建视频聊天客户端 307
    12.5 小结 317
    第13章 客户端模板引擎的使用 318
    13.1 动态更新页面内容 318
    13.2 通过Ajax动态加载HTML 319
    13.3 在客户端应用模板 320
    13.3.1 不依赖库实现客户端模板 321
    13.3.2 使用Mustache.js模板引擎
    实现客户端模板 323
    13.3.3 使用Handlebars.js引擎实
    现客户端模板 330
    13.3.4 作为替换的其他客户端模
    板引擎库 341
    13.4 考虑渐进增强 344
    13.5 小结 345
    第14章 Node.js应用平台 346
    14.1 Node.js安装 346
    14.2 编写Node.js应用程序 347
    14.2.1 console对象 348
    14.2.2 加载模块 349
    14.3 Node.js软件包 351
    14.4 划分Node.js应用程序分布至多个
    文件 356
    14.5 用于网页应用程序的Node.js框架 357
    14.5.1 Express框架 357
    14.5.2 Socket.IO 360
    14.6 Node.js应用程序的托管 365
    14.7 小结 365
    第15章 构建工具及自动化 366
    15.1 构建工具 366
    15.1.1 Grunt——JavaScript任务
    运行器 367
    15.1.2 Gulp.js——“流式”构建
    系统 374
    15.1.3 使用构建工具来使常规任
    务实现自动化 377
    15.2 第三方库和框
  • 内容简介:
    本书是JavaScript实战指南,主要内容包括:JavaScript性能、可靠性、稳定性和代码管理分析,面向对象代码的使用,测试和错误处理机制的构建,用AMD和RequireJS管理代码依赖,移动端、游戏和实时通信的JavaScript开发,等等。
  • 作者简介:
    DenOdell前端开发工程师,具有丰富的HTML、CSS和JavaScript编程经验,Web标准和可用性的积极推动者。作为数字服务机构AKQA的Web开发主管和前端技术架构师,他曾为法拉利、耐克和诺基亚等公司开发网站和富Internet应用。
  • 目录:
    第1章 面向对象的JavaScript 1
    1.1 JavaScript中的对象 1
    1.1.1 定制对象 1
    1.1.2 类 2
    1.2 代码规范和命名 22
    1.2.1 规则1:使用描述性的名字 22
    1.2.2 规则2:以小写字母开头 23
    1.2.3 规则3:使用骆驼命名法来分割单词 23
    1.2.4 规则4:全局常量使用全大写的名字 23
    1.2.5 规则5:集中在一个语句中声明函数体的所有变量并将其置于函数体顶部 24
    1.3 ECMAScript 5 26
    1.3.1 JSON数据格式解析 27
    1.3.2 严格模式 27
    1.3.3 函数绑定 28
    1.3.4 数组方法 29
    1.3.5 对象方法 31
    1.4 小结 34
    第2章 JavaScript文档 35
    2.1 行内和块级注释 35
    2.2 结构化的JavaScript文档 36
    2.3 YUIDoc文档格式 36
    2.3.1 为“类”、构造器、属性和
    方法添加文档 37
    2.3.2 为事件添加文档 45
    2.3.3 为代码示例添加文档 45
    2.3.4 其他YUIDoc文档标签 46
    2.4 更具表达性的文档格式——
    Markdown 46
    2.4.1 用标题来组织内容 46
    2.4.2 换行以及创建段落 47
    2.4.3 创建列表 48
    2.4.4 强调文本 50
    2.4.5 显示代码 51
    2.4.6 添加引用 51
    2.4.7 添加URL链接 52
    2.4.8 插入图片 53
    2.4.9 生成水平分割线 53
    2.4.10 用反斜杠来插入保留字符 53
    2.4.11 对于其他内容,可以使用HTML 54
    2.5 使用YUIDoc创建一个文档网站 54
    2.6 小结 59
    第3章 编写高质量的JavaScript 60
    3.1 进行静态代码分析 60
    3.1.1 JSLint 60
    3.1.2 JSHint 64
    3.1.3 Google Closure Compiler和Closure Linter 65
    3.1.4 选择一个静态代码分析工具 66
    3.2 JavaScript中的单元测试 67
    3.2.1 JavaScript的单元测试框架 67
    3.2.2 使用Jasmine来进行
    JavaScript单元测试 68
    3.3 处理运行时错误 74
    3.3.1 JavaScript的原生错误类型 75
    3.3.2 将可能出错的代码放入try-catch语句中 75
    3.3.3 检测错误类型 77
    3.3.4 自定义错误类型 77
    3.4 度量代码质量 79
    3.4.1 单元测试的代码覆盖度 79
    3.4.2 度量代码复杂度 81
    3.5 小结 84
    第4章 增强JavaScript性能 85
    4.1 优化页面加载时间 85
    4.1.1 HTML标签顺序 85
    4.1.2 JavaScript 文件的GZip编码
    传输 85
    4.1.3 缩编、混淆和编译 86
    4.1.4 请求时才延迟加载JavaScript文件 90
    4.2 优化文档对象的操作 91
    4.2.1 实现对页面元素的最小化访问 92
    4.2.2 尽量利用已有元素 92
    4.2.3 离线DOM的利用 93
    4.2.4 使用CSS而非JavaScript来操控页面样式 94
    4.3 提升DOM事件性能 95
    4.3.1 委托事件至父元素 95
    4.3.2 使用框架化处理频密发出的
    事件 96
    4.4 提升函数性能 97
    4.5 使用正则表达式实现更快速的字符串
    操作 100
    4.6 更快速地使用数组 102
    4.6.1 快速创建数组 103
    4.6.2 快速进行数组循环 103
    4.7 转移密集型任务至Web Worker 106
    4.8 简单的性能测量 110
    4.9 小结 111
    第5章 设计模式:创建型 112
    5.1 什么是设计模式 112
    5.2 创建型设计模式 113
    5.2.1 工厂模式 113
    5.2.2 抽象工厂模式 116
    5.2.3 生成器模式 120
    5.2.4 原型模式 122
    5.2.5 单例模式 124
    5.3 小结 128
    第6章 设计模式:结构型 129
    6.1 适配器模式 129
    6.2 组合模式 132
    6.3 装饰模式 133
    6.4 外观模式 135
    6.5 享元模式 137
    6.6 掺合模式 143
    6.7 模块模式 147
    6.8 代理模式 150
    6.9 小结 153
    第7章 设计模式:行为型 154
    7.1 职责链模式 154
    7.2 命令模式 157
    7.3 迭代器模式 160
    7.4 观察者模式 163
    7.5 中介者模式 167
    7.6 备忘录模式 171
    7.7 承诺模式 173
    7.8 策略模式 184
    7.9 小结 188
    第8章 设计模式:架构型 189
    8.1 MVC模式 189
    8.2 MVP模式 197
    8.3 MVVM模式 203
    8.4 架构型模式框架 208
    8.5 小结 209
    第9章 代码文件依赖管理 210
    9.1 使用RequireJS进行代码文件依赖
    管理 210
    9.2 加载、初始化RequireJS 215
    9.3 模块名称的别名 217
    9.4 内容分发网络和后备 217
    9.5 建立模块 218
    9.6 于请求时才加载额外的脚本 220
    9.7 RequireJS代码优化工具 221
    9.8 RequireJS的附加插件 221
    9.9 RequireJS的代替品 222
    9.10 小结 223
    第10章 移动设备JavaScript开发 224
    10.1 移动Web开发的局限性 224
    10.1.1 电池续航能力 224
    10.1.2 网络带宽速度与延时 225
    10.1.3 板载内存容量 225
    10.1.4 操作系统响应能力 226
    10.2 通过JavaScript访问移动设备上的
    传感器 227
    10.2.1 访问地理位置定位传感器 228
    10.2.2 访问触摸传感器 230
    10.2.3 访问姿态传感器和方向传感
    器 232
    10.2.4 访问运动传感器 235
    10.2.5 未能访问的传感器 237
    10.2.6 事件框架化与传感器数据 237
    10.2.7 利用传感器数据进一步发
    挥 238
    10.3 网络连接故障与离线状态 238
    10.3.1 在线与离线状态的检测 239
    10.3.2 利用Web Storage API长期
    保存数据 241
    10.3.3 HTML5 Application Cache 244
    10.4 响应式(自适应)网页设计的
    JavaScript 246
    10.5 小结 247
    第11章 使用CanvasAPI创建游戏 248
    11.1 在Canvas中的基本绘图操作 248
    11.2 高清Canvas元素 251
    11.3 使用Canvas 制作游戏 251
    11.3.1 在Canvas 上绘制图像 252
    11.3.2 Canvas 中的动画 253
    11.3.3 游戏的控制 254
    11.3.4 碰撞检测 256
    11.3.5 游戏主循环 257
    11.3.6 分层Canvas以提高性能 258
    11.4 在Canvas 中制作Frogger游戏 258
    11.5 小结 299
    第12章 使用WebRTC实现视频聊天 300
    12.1 WebRTC规范 300
    12.2 访问网络摄像头和麦克风 300
    12.3 建立一个简单的视频聊天网页应用
    程序 303
    12.4 创建视频聊天客户端 307
    12.5 小结 317
    第13章 客户端模板引擎的使用 318
    13.1 动态更新页面内容 318
    13.2 通过Ajax动态加载HTML 319
    13.3 在客户端应用模板 320
    13.3.1 不依赖库实现客户端模板 321
    13.3.2 使用Mustache.js模板引擎
    实现客户端模板 323
    13.3.3 使用Handlebars.js引擎实
    现客户端模板 330
    13.3.4 作为替换的其他客户端模
    板引擎库 341
    13.4 考虑渐进增强 344
    13.5 小结 345
    第14章 Node.js应用平台 346
    14.1 Node.js安装 346
    14.2 编写Node.js应用程序 347
    14.2.1 console对象 348
    14.2.2 加载模块 349
    14.3 Node.js软件包 351
    14.4 划分Node.js应用程序分布至多个
    文件 356
    14.5 用于网页应用程序的Node.js框架 357
    14.5.1 Express框架 357
    14.5.2 Socket.IO 360
    14.6 Node.js应用程序的托管 365
    14.7 小结 365
    第15章 构建工具及自动化 366
    15.1 构建工具 366
    15.1.1 Grunt——JavaScript任务
    运行器 367
    15.1.2 Gulp.js——“流式”构建
    系统 374
    15.1.3 使用构建工具来使常规任
    务实现自动化 377
    15.2 第三方库和框
查看详情
12
系列丛书 / 更多
精通JavaScript开发:Coding, Capabilities, and Tooling
机器学习实战
[美]Peter Harrington 著;李锐、李鹏、曲亚东 译
精通JavaScript开发:Coding, Capabilities, and Tooling
图灵程序设计丛书:Python基础教程
[挪威]Magnus Lie Hetland 著;司维、曾军崴、谭颖华 译
精通JavaScript开发:Coding, Capabilities, and Tooling
Python编程:从入门到实践
[美]埃里克·马瑟斯(Eric Matthes) 著;袁国忠 译
精通JavaScript开发:Coding, Capabilities, and Tooling
JavaScript高级程序设计(第3版)
[美]Nicholas C.Zakas 著;李松峰、曹力 译
精通JavaScript开发:Coding, Capabilities, and Tooling
R语言实战(第2版)
[美]卡巴科弗(Robert I. Kabacoff) 著;王小宁、刘撷芯、黄俊文 译
精通JavaScript开发:Coding, Capabilities, and Tooling
算法(第4版)
[美]Robert、[美]Kevin Wayne 著;谢路云 译
精通JavaScript开发:Coding, Capabilities, and Tooling
大数据:互联网大规模数据挖掘与分布式处理
[美]Anand、[美]Jeffrey David Ullman 著;王斌 译
精通JavaScript开发:Coding, Capabilities, and Tooling
Spark快速大数据分析
[美]卡劳(Holden Karau)、[美]肯维尼斯科(Andy Konwinski)、[美]温德尔(Patrick Wendell)、[加拿大]扎哈里亚(Matei Zaharia) 著;王道远 译
精通JavaScript开发:Coding, Capabilities, and Tooling
图解HTTP
[日]上野·宣 著;于均良 译
精通JavaScript开发:Coding, Capabilities, and Tooling
MySQL必知必会
[英]福塔(Ben Forta) 著;刘晓霞、钟鸣 译
精通JavaScript开发:Coding, Capabilities, and Tooling
算法图解
袁国忠 译
精通JavaScript开发:Coding, Capabilities, and Tooling
Spring Boot实战
[美]克雷格·沃斯(Craig Walls) 著;丁雪丰 译
相关图书 / 更多
精通JavaScript开发:Coding, Capabilities, and Tooling
精通Excel数据统计与分析
李宗璋
精通JavaScript开发:Coding, Capabilities, and Tooling
精通 Power Query
(加拿大)肯·普尔斯
精通JavaScript开发:Coding, Capabilities, and Tooling
精通推荐算法:核心模块+经典模型+代码详解
谢杨易
精通JavaScript开发:Coding, Capabilities, and Tooling
精通式学习法:基于提高学生能力的学习方法(“翻转课堂”先行者乔纳森·伯格曼最新作品,众多教育名家联袂推荐)
(美)乔纳森·伯格曼著,段文静译;中青文 出品
精通JavaScript开发:Coding, Capabilities, and Tooling
精通STM32F4(HAL库版)(下)
刘军 凌柱宁 徐伟健 江荧
精通JavaScript开发:Coding, Capabilities, and Tooling
精通STM32F4(HAL库版)(上)
刘军 凌柱宁 徐伟健 江荧
精通JavaScript开发:Coding, Capabilities, and Tooling
精通FrontPage XP(中文版)
中国IT培训工程编委会 编
精通JavaScript开发:Coding, Capabilities, and Tooling
精通AI虚拟数字人制作与应用:直播主播+视频博主+营销推广+教育培训 短视频 直播 营销 教育等领域的高效生产力 附赠超值学习资源
木白 编著
精通JavaScript开发:Coding, Capabilities, and Tooling
精通咬合重建——解读牙列不齐、牙周病、多牙缺失
吴松涛 周茂强 译;[日]上田 秀朗
精通JavaScript开发:Coding, Capabilities, and Tooling
精通Shiny(Mastering Shiny)
Hadley Wickham
精通JavaScript开发:Coding, Capabilities, and Tooling
精通Apache Pulsar:可伸缩云原生事件流实践
[美]Jowanza Joseph(乔万扎·约瑟夫
精通JavaScript开发:Coding, Capabilities, and Tooling
精通嵌入式Linux编程
[美]弗兰克·瓦斯奎兹 著;陈会翔 译
您可能感兴趣 / 更多
精通JavaScript开发:Coding, Capabilities, and Tooling
福柯最后十年 《性史》计划的产生与转变 作者 :【英】斯图尔特·埃尔登 文津出版社 ISBN: 9787805548807 鲍磊、刘北成 译
[英]斯图尔特·埃尔登
精通JavaScript开发:Coding, Capabilities, and Tooling
重启吧!我的健康人生:休息 + 饮食 + 运动 + 睡眠,风靡全球的4项健康微习惯打卡计划
[英]兰根·查特吉 博士(Dr Rangan Chatterjee) 著;王琳 译;[英]苏珊·贝尔(Susan Bell) 摄影
精通JavaScript开发:Coding, Capabilities, and Tooling
《从天而降》2024百班千人暑期书目小学生1年级名师推荐全新正版现货速发
[英]克里斯·奈勒-巴列斯特罗斯
精通JavaScript开发:Coding, Capabilities, and Tooling
心世界-天生不理性(如何识别无处不在的非理性陷阱)
[英]斯图尔特·萨瑟兰
精通JavaScript开发:Coding, Capabilities, and Tooling
第二次世界大战战史(平装)利德尔哈特 二战世界战争史 军事历史书籍
[英]利德尔·哈特 后浪
精通JavaScript开发:Coding, Capabilities, and Tooling
新民说·诗歌小史
[英]约翰·凯里,新民说出品
精通JavaScript开发:Coding, Capabilities, and Tooling
查泰莱夫人的情人(特装刷边珍藏版,原著未删节全译本。轰动世界的情爱经典,定制异形函套,附赠精美藏书票)
[英]戴维·赫伯特·劳伦斯
精通JavaScript开发:Coding, Capabilities, and Tooling
生成学习策略/新学习/新教学译丛
[英]马克·恩舍(Mark Enser) 著;[英]佐伊·恩舍(Zoe Enser)
精通JavaScript开发:Coding, Capabilities, and Tooling
如何驱动一座核反应堆
[英]科林·塔克 后浪
精通JavaScript开发:Coding, Capabilities, and Tooling
宇宙体系(精装典藏版) 世界科普名著经典译丛
[英]牛顿
精通JavaScript开发:Coding, Capabilities, and Tooling
不断晋升:识别晋升“拦路虎”,实现事业持续进阶(精装典藏版) 企鹅管理能力提升“口袋课“
[英]尼亚姆·奥基夫(Niamh O’Keeffe)
精通JavaScript开发:Coding, Capabilities, and Tooling
DK影像博物馆:摄影名作全景导读
[英]汤姆·昂