JavaScript应用程序设计:使用Node、HTML5和现代JavaScript类库打造稳健的Web应用pdf下载pdf下载

JavaScript应用程序设计:使用Node、HTML5和现代JavaScript类库打造稳健的Web应用百度网盘pdf下载

作者:
简介:本篇主要提供JavaScript应用程序设计:使用Node、HTML5和现代JavaScript类库打造稳健的Web应用pdf下载
出版社:机械工业出版社自营官方旗舰店
出版时间:2015-09
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

内容简介

  《JavaScript应用程序设计:使用Node、HTML5和现代JavaScript类库打造稳健的Web应用》带领专业JavaScript开发人员领略创最新应用程序的所有必要步骤,包括:结构、模板、架构,与服务器通信,许多其他问题等。在本书中,你将使用现实示例应用程序帮助你掌握相关的概念。学习如何创建JavaScript应用程序,进而同提供更好的用户体验。本书主要内容包括:使用MVC模式,学习如何在应用程序中管理依赖关系;介绍模板和数据绑定;学习加载远程数据、Ajax和跨越请求;使用WebSocketandNode.js创建实用应用程序;通过进度指示器接受删除的文件和上传数据;使用主要的架构和库,包括jQuery、Spine和Backbone;编写测试和使用控制台调试应用程序;获得部署最佳实践,例如缓存和缩小尺寸。

作者简介

  Eric Elliott,是一名经验丰富的JavaScript应用程序开发者,他曾在Adobe Creative Cloud团队中担任科学家,在Tout公司(一家视频分享网站)担任首席JavaScript工程师,在Zumba Fitness公司(全球领先的健身品牌)担任首席客户端应用架构师,同时他还是一名作家、演讲者、用户体验与营销领域的顾问,他与他的妻子居住在旧金山湾区。

目录

前言 1
第1章 JavaScript的革命时代 7
JavaScript的特性 8
性能 8
对象 8
语法 9
函数是一等公民 9
事件 9
复用性 10
结论 10
解构现代JavaScript应用 10
基础架构 10
JSON ——数据存储与通信 11
NoSQL数据库 12
RESTful JSON Web Services 12
第2章 函数 15
减少隐式副作用 16
函数声明 18
lambdas 22
立即执行函数表达式 23
方法上下文 25
函数作用域 27
变量提升 28
闭包 30
方法API的设计 33
参数命名 33
多态函数 34
范型编程与集合多态 37
链式调用与流式API 40
函数式编程 41
无状态函数(纯函数) 43
偏函数应用与函数加里化 44
异步操作 45
回调函数 46
Promises与Deferreds 46
小结 49
第3章 对象 50
过时的类继承 51
流式JavaScript 53
原型 56
原型代理 56
原型克隆 58
享元模式 60
创建对象 61
工厂函数 63
使用Stamps进行原型继承 66
小结 71
第4章 模块 73
模块化编程原则 74
接口 75
模块模式 79
AMD规范 81
加载器插件 82
CommonJS模块规范 84
npm包管理器 85
ES6模块规范 87
基于CommonJS、npm、Grunt与Browserify构建客户端应用 89
定义应用 89
特性实现 91
构建与部署 94
小结 98
第5章 关注点分离 99
客户端的关注点 100
模块管理 101
模型-视图-控制器 113
表现层与Dom操作 116
服务端关注点 123
Node与Express入门 124
在Node中组织代码 125
小结 132
第6章 访问控制 134
身份验证 134
密码认证 134
Credential类库 138
多因素身份验证 140
联合认证与授权认证 142
应用功能授权 144
应用授权 144
OAuth 2.0协议 145
小结 146
第7章 日志 147
调试 147
服务端数据监控 149
安全/入侵检测 149
审计 150
业务指标分析 150
传播力度 151
日志清单 151
应用请求日志 152
异常日志 156
日志输出示例 158
日志预警 161
跟踪业务指标(效果跟踪) 162
性能分析与优化 162
客户端事件记录 163
日志数据挖掘 164
小结 165
第8章 构建RESTful API 166
可用性 167
专一性 167
一致性 169
自描述的超媒体 177
功能可见性 177
超媒体即应用状态引擎 178
HTML:一种特别的API媒介类型 180
Jade 180
Jiron 182
响应式API 184
性能优化 186
小结 187
第9章 特性开关 188
组织特性 188
特性的规模 188
特性编组 189
特性的生命周期 189
开发阶段 190
预发布阶段 190
灰度测试 190
正式发布 190
默认激活 191
完整集成 191
客户端实现 191
小结 195
第10章 应用工程国际化 196
小结 198
附录A JavaScript编码风格指南 199

前言/序言

  在本书中我们先后提到了不少Web开发类书籍,但对于那些想从头开始学习构建完整JavaScript应用的读者来说,市面上真正值得推荐的JavaScript教程又显得十分稀缺。与此同时,现在几乎每一个互联网创业公司的人员配备中都少不了资深JavaScript应用程序开发者的角色。本书旨在帮助人们了解如何构建易于扩展和维护的完整JavaScript应用。
  本书并不打算向读者详细讲解JavaScript语言基础,它基于你现有的JavaScript知识结构,向你展示那些会让你的编码工作长久受益的JavaScript特性与技巧。一般来说,随着应用程序的规模不断扩大,添加新功能与缺陷修复开始变得越来越难以下手,代码随之变得脆弱、臃肿,甚至一个非常小的改动都可能带来大范围的代码重构。如果你在编码过程中遵循了本书中介绍的设计模式,你会发现代码开始变得灵活而富有伸缩性,对代码的细微变更不会再对其他模块产生负面影响。
  本书的内容主要聚焦在客户端JavaScript应用设计上,同时也会穿插一些较为基础的Node、RESTfulAPI等服务端技术介绍。应用逻辑前端化已经是大势所趋,以往我们常常将模板渲染、与第三方服务通信等任务交给服务端去处理,诸如此类的工作如今通常在浏览器中完成。
  事实上,现今的JavaScript应用已经在浏览器中扮演起了传统桌面级应用的角色。当然,这一切仍然离不开服务端的技术支撑,像静态资源托管、动态模块加载、数据持久化、操作日志记录以及第三方API服务调用等,这些都属于服务端的职能范畴。
  本书内容涵盖:
  面向应用开发者的JavaScript特性与最佳实践。
  代码组织、模块化与复用。
  ·客户端关注点分离(MVC等)。
  ·服务端与API的通信机制。
  ·用Node.js设计并实现RESTfulAPI。
  ·构建、测试、团队协作、应用部署与扩展。
  ·应用工程的国际化。
  本书目标读者具备一定的JavaScript开发基础,有至少1或2年的JavaScript实践经验,并想了解如何使用JavaScript开发大规模Web或企业级应用的开发者。
  抱有强烈的学习热情,尤其是对闭包、函数式编程、原型继承这些JavaScript语言独有的强大特性想做了解与尝试的编程入门者。(即使你是第一次听到这些概念。)也许你想在下一个具有挑战性的JavaScript项目中使用TDD(测试驱动开发)技术,本书所有的代码范例中均包含测试用例。在你读完本书后,代码自测的意识与方法也会随之建立起来。
  不太适合本书的读者本书不面向JavaScript初学者,涉及JavaScript基础技术点的地方会一带而过。如果你想对这些技术点进行深入了解,可以在DouglasCrockford的《JavaScript精粹》(O扲eilly,2008)以及DavidFlannagan的《JavaScript权威指南》编注1(O扲eilly,2011)中找到相关解读。由著名的“四人帮”(ErichGamma、RichardHelm、RalphJohnson和JohnVlissides)合著的《设计模式:可复用面向对象软件的基础》编注2(http://bit.ly/1pwzcUc)(Addison-Wesley,1994)会帮助你更好地理解设计模式。
  Google与维基百科同样是信息查阅的好帮手,对软件设计模式来说,维基百科是一份非常不错的参考资料。
  如果这是你第一次接触JavaScript,我建议你在步入正篇之前先把基础功课做足。MarijnHaverbeke所著的《EloquentJavaScript》(NoStarchPress,2011)是我个人比较喜爱的一本JavaScript入门教程,还有上文中提到的《JavaScript精粹》,最好每一个章节都通读一遍。另外,特别留意下附录A,这是JavaScript开发前辈们对自己所犯的错误做的系统总结,从中你可以获得一些启发。
  单元测试很难估量单元测试在应用中的重要性,本书中几乎所有的代码样例中均附有单元测试用例。编写测试用例让你对功能实现了解得更为透彻,对方案与接口设计的把握越来越谨慎,设计测试用例的过程同样是迫使你思考将代码解耦的过程。保持编写单元测试与解耦代码的习惯会使你在今后的工作中持续受益,相信在读完本书之后你会收获这种编码习惯。
  关于单元测试与编码风格的更多内容,请参见本书附录A。
  本书的约定本书使用下列排版约定:
  斜体(italic)用于表示新术语、URL、电子邮件地址、文件名、文件扩展名。
  等宽字体(constantwidth)用来表示程序列表和代码片段,包括变量或函数名、数据库、数据类型、环境变量、语句和关键字等。
  等宽加粗字体(constantwidthbold)用来表示命令或者其他用户直接输入的文本。
  等宽斜体(constantwidthitalic)用来表示可被替换的字符或文本,这些字符在合适的场景和特定的条件下会被替换成其他的值。
  注意:表示一种提示、建议或一般的消息提醒。
  警告:表示一种警告。
  SafariBooksOnlineSafari在线图书是一个数字图书馆读者可以在这个图书馆里自选图书在这里可以搜索到超过7500本与技术和创作相关的书籍和视频,在这里可以迅速找到你想要的内容。
  订阅之后,你就可以阅读在线图书馆的任意图书的任意章节和任意视频。你还可以将图书下载到手机和移动设备里。在纸质书籍出版前就可以抢先阅读甚至可以抢先阅读作者手稿,并实时给作者反馈。同时还可以复制和粘贴实例代码、组织你的收藏内容、下载章节、将关键段落加入书签、创建笔记、打印出来你既可以节省时间,又可以提升阅读效率。
  ……