JavaScript Web 应用开发 PDF 文档
本书是面向一线开发人员的一本实用教程,对最新的 Web 开发技术与程序进行了全面的梳理和总结,为 JavaScript 开发人员提供了改进 Web 开发质量和开发流程的最新技术。本书主要分两大块,首先是以构建为目标实现 JavaScript 驱动开发,其次介绍如何管理应用设计过程中的复杂度,包括模块化、MVC、异步代码流、测试以及 API 设计原则。
本书适合各层次 Web 开发人员阅读。
近几年,开发强大的 JavaScript Web 应用经历了一场轰轰烈烈的复兴。人们对 JavaScript 寄予厚望,越来越多的人使用这门语言开发应用和接口,这本书的出版恰逢其时。在这本书中,Nico Bevacqua 通过简洁的示例、这个领域沉淀下来的经验教训,以及可伸缩性开发的关键概念,向我们展示了如何改进应用的设计和流程。
这本书还能帮助你打造一个能节省时间的构建过程。时间是保持效率的关键因素,而作为Web 应用开发者,我们希望能充分利用我们的时间。“构建优先”原则能帮助我们从开发伊始就注重应用的结构,以便开发出简洁、可测试的应用。学会操作流程,以及如何管理复杂性,是现代化 JavaScript 应用开发的基石。从长远来看,如果能处理好这两方面,结果就会很不一样。
JavaScript Web 应用开发 这本书会告诉你如何在前端开发中使用自动化技术,涵盖你所需要知道的一切,比如说如何避免重复的任务,如何使用简洁的工具监控生产版本,减少人为错误造成的损失。在这个过程中,自动化是关键。如果时至今日你还没有在工作流程中使用自动化技术,你活得就太辛苦了。如果一系列日常任务能使用一个命令完成的话,请听从 Nico 的建议,使用自动化技术,把节省下来的时间用在提升应用的代码质量上。
模块化至关重要,能协助我们构建可伸缩且可维护的应用。模块化不仅能确保应用的各个部分都能轻易地加以测试,容易编写文档,而且还能鼓励我们重用代码,并把精力集中在提高代码质量上。在这本书中,Nico 熟练地示范了如何编写模块化的 JavaScript 组件,如何正确处理异步流,还介绍了足够你用来构建应用的客户端 MVC 知识。
目录
第一部分 构建过程
第 1 章 构建优先
1.1 问题出现了
1.1.1 45 分钟内每秒损失 17 万美元
1.1.2 构建优先
1.1.3 繁琐的前戏
1.2 遵守构建优先原则,提前计划
1.3 构建过程
1.4 处理应用的复杂度和设计理念
1.5 钻研构建优先原则
1.5.1 检查代码质量
1.5.2 在命令行中使用 lint 工具
1.6 总结
第 2 章 编写构建任务,制定流程
2.1 介绍 Grunt
2.1.1 安装 Grunt
2.1.2 设置第一个 Grunt 任务
2.1.3 使用 Grunt 管理构建过程
2.2 预处理和静态资源优化
2.2.1 详述预处理
2.2.2 处理 LESS
2.2.3 打包静态资源
2.2.4 简化静态资源
2.2.5 创建子图集
2.3 检查代码完整性
2.3.1 清理工作目录
2.3.2 使用 lint 程序检查代码
2.3.3 自动运行单元测试
2.4 首次自己编写构建任务
2.5 案例分析:数据库任务
2.6 总结
第 3 章 精通环境配置和开发流程
3.1 应用的环境
3.1.1 配置构建模式
3.1.2 环境层面的配置
3.1.3 开发环境有什么特别之处
3.2 配置环境
3.2.1 瀑布式存储配置的方法
3.2.2 通过加密增强环境配置的安全性
3.2.3 使用系统级方式设置环境层面的配置
3.2.4 在代码中使用瀑布式方法合并配置
3.3 自动执行繁琐的首次设置任务
3.4 在持续开发环境中工作
3.4.1 监视变动,争分夺秒
3.4.2 监视 Node 应用的变动
3.4.3 选择一款合适的文本编辑器
3.4.4 手动刷新浏览器已经过时了
3.5 总结
第 4 章 发布、部署和监控
4.1 发布应用
4.1.1 优化图像
4.1.2 缓存静态资源
4.1.3 内嵌对首屏至关重要的 CSS
4.1.4 部署前要测试
4.2 预部署操作
4.2.1 语义化版本
4.2.2 使用更改日志
4.2.3 提升版本号时提交更改日志
4.3 部署到 Heroku
4.3.1 在 Heroku 的服务器中构建
4.3.2 管理多个环境
4.4 持续集成
4.4.1 使用 Travis 托管的 CI
4.4.2 持续部署
4.5 监控和诊断
4.5.1 日志和通知
4.5.2 调试 Node 应用
4.5.3 分析性能
4.5.4 运行时间和进程管理
4.6 总结
第二部分 管理复杂度
第 5 章 理解模块化和依赖管理
5.1 封装代码
5.1.1 理解单一职责原则
5.1.2 信息隐藏和接口
5.1.3 作用域和 this 关键字
5.1.4 严格模式
5.1.5 提升变量的作用域
5.2 JavaScript 模块
5.2.1 闭包和模块模式
5.2.2 原型的模块化
5.2.3 CommonJS 模块
5.3 管理依赖
5.3.1 依赖图
5.3.2 介绍 RequireJS
5.3.3 Browserify:在浏览器中使用 CJS 模块
5.3.4 Angular 管理依赖的方式
5.4 理解包管理
5.4.1 Bower 简介
5.4.2 大型库,小组件
5.4.3 选择合适的模块系统
5.4.4 学习循环依赖
5.5 ECMAScript 6 新功能简介
5.5.1 在 Grunt 任务中使用 Traceur
5.5.2 Harmony 中的模块
5.5.3 创建块级作用域的 let 关键字
5.6 总结
第 6 章 理解 JavaScript 中的异步流程控制方法
6.1 使用回调
6.1.1 跳出回调之坑
6.1.2 解开混乱的回调
6.1.3 嵌套请求
6.1.4 处理异步流程中的错误
6.2 使用 async 库
6.2.1 使用瀑布式、串行还是并行
6.2.2 异步函数式任务
6.2.3 异步任务队列
6.2.4 制定流程和动态流程
6.3 使用 Promise 对象
6.3.1 Promise 对象基础知识
6.3.2 链接 Promise 对象
6.3.3 控制流程
6.3.4 处理被拒绝的 Promise 对象
6.4 理解事件
6.4.1 事件和 DOM
6.4.2 自己实现事件发射器
6.5 展望:ES6 生成器
6.5.1 创建第一个生成器
6.5.2 生成器的异步性
6.6 总结
第 7 章 使用模型-视图-控制器模式
7.1 jQuery 力不胜任
7.2 在 JavaScript 中使用 MVC 模式
7.2.1 为什么使用 Backbone
7.2.2 安装 Backbone
7.2.3 使用 Grunt 和 Browserify 编译 Backbone 模块
7.3 介绍 Backbone
7.3.1 Backbone 视图
7.3.2 创建 Backbone 模型
7.3.3 使用 Backbone 集合组织模型
7.3.4 添加 Backbone 路由器
7.4 案例分析:购物清单
7.4.1 从静态购物清单开始
7.4.2 添加删除按钮
7.4.3 把物品添加到购物车中
7.4.4 实现行内编辑
7.4.5 服务层和视图路由
7.5 Backbone 和 Rendr:服务器和客户端共享渲染
7.5.1 Rendr 简介
7.5.2 理解 Rendr 的样板代码
7.5.3 一个简单的 Rendr 应用
7.6 总结
第 8 章 测试 JavaScript 组件
8.1 JavaScript 测试速成课
8.1.1 隔离逻辑单元
8.1.2 使用 TAP
8.1.3 编写第一个单元测试
8.1.4 在浏览器中运行使用 Tape 编写的测试
8.1.5 筹备、行动和断言
8.1.6 单元测试
8.1.7 便利性优于约定
8.1.8 案例分析:为事件发射器编写单元测试
8.1.9 测试事件发射器
8.1.10 测试.on 方法
8.1.11 驭件、侦件和代理
8.1.12 模拟
8.1.13 介绍 Sinon.js
8.1.14 监视函数的调用情况
8.1.15 代理 require 调用
8.2 在浏览器中测试
8.2.1 伪造 XHR 请求和服务器响应
8.2.2 案例分析:测试 DOM 交互
8.3 案例分析:为使用 MVC 模式开发的购物清单编写单元测试
8.3.1 测试视图路由器
8.3.2 测试视图模型的验证
8.4 自动运行 Tape 测试
8.4.1 自动运行浏览器中的 Tape 测试
8.4.2 持续测试
8.5 集成测试、外观测试和性能测试
8.5.1 集成测试
8.5.2 外观测试
8.5.3 性能测试
8.6 总结
第 9 章 REST API 设计和分层服务架构
9.1 规避 API 设计误区
9.2 学习 REST API 设计
9.2.1 端点、HTTP 方法和版本
9.2.2 请求、响应和状态码
9.2.3 分页、缓存和限流
9.2.4 为 API 编写文档
9.3 实现分层服务架构
9.3.1 路由层
9.3.2 服务层
9.3.3 数据层
9.3.4 路由层
9.3.5 服务层
9.3.6 数据层
9.4 在客户端使用 REST API
9.4.1 请求处理层
9.4.2 中止旧请求
9.4.3 使用一致的方式处理 AJAX 错误
9.5 总结
附录 A Node.js 的模块
附录 B 介绍 Grunt
附录 C 选择合适的构建工具
附录 D JavaScript 代码质量指南
下载地址:JavaScript Web 应用开发
延伸阅读:
暂无内容!
评论列表 (0条):
加载更多评论 Loading...