具体描述
第1章 向读者介绍了MVC模式和Backbone.js框架。读者将学习如何以MVC的方式设计Backbone应用,并且能够使用模型、视图和路由器来创建第一个Backbone应用。
第2章 帮助读者了解Backbone的模型对象Backbone.Model。它是应用程序主要的构建单元,负责存储数据以及实现业务逻辑。
第3章 讲解了如何使用易于管理的集合来组织多个模型。它提供了执行诸如排序、过滤和遍历这样的集合的操作能力。
第4章 帮助读者了解如何使用Backbone的视图来渲染模型和集合,以及如何捕获DOM事件。
第5章 介绍了Backbone.js中所用到的事件系统以及事件绑定技术。
第6章 本章关注改善Backbone前端应用的方法,使之看起来更加美观,而且开发起来更加容易。
第7章 着重介绍了Backbone.js是如何将模型和集合与RESTful架构的后端系统相互同步的,以及如何把它们存储在HTML5的本地存储当中。
第8章 帮助读者学习如何解决在Backbone开发过程中最具有挑战性的那些问题,例如创建扩展插件、应用的测试、创建移动应用以及如何使我们的应用与搜索引擎兼容,等等。
作者简介
Vadim Mirgorod?资深Web技术专家、开源领域专家,现为CoderBlvd主管。他之前曾在顿涅茨克国立工业大学讲授Web开发课程,在Trellon公司担任首席开发工程师,负责使用Drupal和PHP开发各种基于CRM的系统以及Web应用程序。他对技术和创新总是充满热情,是一名活跃的社区成员,积极地组织各种IT活动,并且多次在各种国际会议上发表演讲。他为内容管理系统Drupal贡献过代码,并且还负责维护多个Backbone.js的插件。
目录信息
译者序
前 言
致 谢
第1章 理解Backbone 1
1.1 导论 1
1.2 使用MVC模式设计应用 2
1.3 使用模型与集合定义业务逻辑 5
1.4 使用视图与路由器为应用的行为建模 8
1.5 从零开始建立一套应用程序结构 12
1.6 编写第一个Backbone应用 13
1.7 在应用中实现URL路由 16
1.8 使用插件来扩展应用 19
1.9 如何参与Backbone项目 20
第2章 模型 21
2.1 导论 21
2.2 创建一个模型 21
2.3 模型属性的操作 24
2.4 模型标识符的操作 25
2.5 模型属性的验证 26
2.6 重写getters与setters方法 28
2.7 通过创建撤销点来保存或恢复模型的状态 31
2.8 模型中工作流的实现 34
2.9 在模型中使用高级的验证方式 38
2.10 验证HTML表单 42
2.11 在模型中使用嵌套属性 45
2.12 实现模型间一对一的关系 47
第3章 集合 51
3.1 导论 51
3.2 创建模型的集合 52
3.3 使用索引从集合中获取模型 53
3.4 使用ID从集合中获取模型 54
3.5 为集合添加一个模型 54
3.6 从集合中移除一个模型 56
3.7 以栈或队列的方式使用集合 56
3.8 对集合进行排序 57
3.9 对集合中的模型进行过滤 58
3.10 对集合进行遍历 59
3.11 集合的链式操作 61
3.12 在集合上执行NoSQL查询 62
3.13 在同一个集合中存储不同类型的模型 66
3.14 实现一对多的关系 68
第4章 视图 73
4.1 导论 73
4.2 渲染视图 73
4.3 使用jQuery处理视图元素 77
4.4 对视图中的模型进行渲染 78
4.5 对视图中的集合进行渲染 80
4.6 将视图拆分成子视图 81
4.7 处理视图的文档对象模型(DOM)事件 84
4.8 使用Backbone.Router在视图间进行切换 88
第5章 事件及其绑定 92
5.1 导论 92
5.2 在Backbone.js中管理事件 92
5.3 处理Backbone对象的事件 94
5.4 把模型绑定到视图 96
5.5 把集合绑定到视图 98
5.6 使用Backbone.stickit进行双向绑定 104
5.7 把模型与集合绑定到下拉列表 108
5.8 在视图中处理快捷键 111
5.9 处理路由器事件 112
第6章 模板及其他用户界面的相关技术 114
6.1 导论 114
6.2 在视图中使用模板 114
6.3 实现一个模板加载器 117
6.4 使用Mustache模板 119
6.5 定义表单 121
6.6 为表单添加验证功能 124
6.7 处理表单事件 126
6.8 使用Bootstrap框架定制一个表单 128
6.9 使用LayoutManager构建页面布局 132
6.10 创建语义化及风格化的数据表格 136
6.11 使用HTML5的画布元素进行绘图 142
第7章 REST及存储 146
7.1 导论 146
7.2 为后端应用构建REST API 147
7.3 使用MongoLab创建一个RESTful后端应用的原型 148
7.4 与RESTful服务同步模型和集合 151
7.5 使用Backbone创建一个RESTful服务的前端应用 155
7.6 使用轮询技术来获取数据 165
7.7 使用HTML5本地存储 170
第8章 其他相关技术 172
8.1 导论 172
8.2 在Backbone对象中使用mixin 173
8.3 使用Grunt创建一个Backbone.js的扩展插件 174
8.4 使用QUnit为Backbone扩展插件编写测试用例 178
8.5 使用jQuery Mockjax模拟一个RESTful服务来进行异步测试 182
8.6 使用jQuery Mobile开发移动应用 184
8.7 使用PhoneGap创建iOS/Android应用 193
8.8 使用Require.js组织项目结构 196
8.9 使应用与搜索引擎相兼容 204
8.10 避免Backbone应用中的内存泄漏 209
· · · · · · (收起)
读后感
用户评价
这本书的章节划分似乎是按照Backbone.js的模块结构来的,这一点从结构上来说倒是中规中矩,但内容的深度却让人感到遗憾。我尝试用它来理解Backbone.View的事件委托机制,结果发现作者对`events`哈希表的介绍仅停留在“将DOM事件绑定到对应的方法”这一层面。真正有价值的知识点,比如如何在View的`initialize`函数中确保正确绑定`this`上下文,或者当View被销毁时如何正确地解除所有事件监听以防止内存泄漏,这些关键的生命周期管理细节,在这本书里被一带而过,仿佛是理所当然的事情。我不得不去查阅社区的其他资料才能把这些细节补全。这种对待内存管理和性能优化的轻视态度,在如今这个对性能要求越来越高的前端时代,是绝对不可取的。如果这本书的目标读者是那些希望编写高性能、可维护代码的专业人士,那么它目前的深度是远远不够的,更像是一份给初次接触MVC模式的学生的入门指南。
这本书的错误和疏漏多到令人发指的地步。我不是指小的拼写错误,而是核心概念上的误导。有一次,我在跟着书上的示例配置一个History对象时,发现它描述的API与我下载的最新版Backbone.js库中的实现完全不符,导致我的应用根本无法正确地实现URL同步。我花了足足一下午的时间去调试,最后才意识到是书本内容滞后导致的。更令人恼火的是,书中提供的解决“Bug”的方法本身也是错的,它建议了一种被社区早已弃用的Hack写法。对于依赖书籍进行学习的人来说,这种低级错误是致命的,它不仅浪费了时间,更重要的是,它可能在读者的心中种下了错误的认知种子。一本声称是“秘笈”的技术书籍,其准确性应该是其生命线,而这本书显然在这方面严重失职,它提供的知识点就像是一个布满陷阱的迷宫,需要学习者具备极高的辨别能力才能安全通过。
这本书的排版简直是一场灾难,纸张质量也粗糙得让人心疼。我拿到手的时候,那种油墨味简直要把我熏晕过去。更别提内容了,感觉像是把一堆零散的博客文章东拼西凑起来,逻辑跳跃得厉害。举个例子,讲到路由的时候,前一页还在讨论视图的生命周期,下一页突然就开始讲解如何配置RequireJS模块,完全没有过渡和铺垫,让人抓不住重点。对于一个初学者来说,这简直是噩梦,我得反复阅读好几遍才能勉强理解作者想表达的意思。而且,书里大量的代码示例似乎都是从某个老旧的项目中直接复制粘贴出来的,很多变量名和函数名都极其晦涩难懂,根本无法体现现代JavaScript的清晰编码规范。我甚至怀疑作者是不是真的在实际项目中应用过这些技术栈,因为很多最佳实践在这本书里完全找不到踪影。如果不是因为我对Backbone.js抱有极大的热情,这本书的阅读体验实在太差,我可能早就把它束之高阁了。这与其说是“秘笈”,不如说是一本充满疑点的“回忆录”。
装帧设计和印刷质量勉强能接受,但内容上的“过时感”却是无法忽视的硬伤。这本书显然是在Backbone.js生态系统还处于鼎盛时期编写的,里面大量依赖于jQuery的写法,对于已经转向更现代化的异步处理(比如Promises或Async/Await)的开发者来说,书中的很多异步流程控制显得异常笨拙和冗长。举例来说,书中用一整章的篇幅详细介绍了如何使用回调地狱(Callback Hell)的方式来处理连续的API调用,整个代码块看起来像意大利面条一样纠缠不清。而对于如何集成现代的ES6模块化语法,如何配合Webpack进行优化打包,书中几乎没有提及,仿佛这些技术在作者的认知体系里不存在一样。我购买这本书是期望学习如何用Backbone.js构建“现代”的单页应用,但读完后发现,我得到的更像是一份关于如何用Backbone.js写“历史遗留代码”的说明书。技术栈更新迭代极快,一本技术书籍如果不能紧跟时代步伐,其价值会迅速贬值。
坦白说,我是在一个技术论坛上被推荐这本书的,当时论坛里的人声称它是学习Backbone.js的“圣经”。然而,当我翻开它的时候,那种“期望越大,失望越大”的感觉油然而生。这本书的叙事风格极其枯燥,仿佛在照着官方文档逐字逐句地念,没有任何个人见解和实战的“火花”。比如,在讲解Collection的同步操作时,作者只是罗列了`fetch`、`save`、`destroy`这几个方法的API签名,然后就戛然而止了,完全没有深入探讨在复杂的业务场景中如何处理并发请求、如何优雅地捕获网络错误并给出用户友好的反馈。我真正想知道的是,当后端的API返回结构不一致时,我们该如何在Backbone层进行柔性适配?这本书对此避而不谈,或者只是用一两行代码草草带过,这种肤浅的处理方式对于想要构建健壮应用的开发者来说是完全不够的。我更希望看到的是,作者能分享一些自己踩过的“坑”以及如何用Backbone.js的高级特性来优雅地绕过它们,而不是这种教科书式的平铺直叙。
原文结构清晰,难度很适合初学者;译文流畅,并有对原文勘误的指正。
找不到全本,只看了抢先版。对于刚入门的程序员来说,还是很不错的,可以很快的了解并熟悉Backbone的API。 之后看了全英文的书,后面几张讲解的各种加强类库,还是收益颇深,建议使用Backbone都看一下。
原文结构清晰,难度很适合初学者;译文流畅,并有对原文勘误的指正。
原文结构清晰,难度很适合初学者;译文流畅,并有对原文勘误的指正。
不错,前提是跟着书上的步骤做一遍,如果是当成工具书来用,还是《backbone.js实战》好一点