Backbone Conf 2012
有幸去美国波士顿参加了2012年的 Backbone.js Conference,见到了coffeescript、underscore.js 还有 backbone.js 的作者 Jeremy Ashkenas。会议内容围绕前端MVWTF和社区进行了很多有趣的讨论,有很多有价值的观点。我希望在这里面与大家分享我从里面学到的东西。
这系列博客其实是我整理的会议笔记的汇总,是我对每个话题中比较有印象或者比较重要的内容的摘抄,这些观点几乎都不是我的,我仅作为一个传声者。我是希望把所有的Credit交给演讲者自己,我最多只是一个翻译者,碰巧幸运的在现场。Backbone.js Conference和O’Reilly的Fluent Conference 碰巧同时进行,#BackboneConf 更加草根,但是也更有观点。
New Dog, Old Tricks (Or: Dojo Already Did That) ( Or: Integrating Dojo concepts into Backbone.js ) by Rebecca Murphey
Links
Notes
演讲者是一位女性,我记得是那两天唯一的一位,非常值得尊敬。她是bocoup的JS dev,之前做过咨询工作。
作者是Dojo的一位资深用户(2年),使用Backbone.js几个月。
由于Dojo的沉重的口碑,所以看出大家都不怎么感兴趣。不过说实话这个Talk还是不错的。
作者举了Dojo的基于Widget的例子,可以看到模板和View的绑定还是比较厉害(虽然模板引擎比较容易替换)。但是Backbone.js讨好的地方就在于它强调了Model的核心作用(Single truth,Domain Driven Design),但是Backbone.js的模板是空的,这点让作者很怀念Dojo方便的widget。
主旨就是很多人都发现Backbone.js里面View没有生命周期管理,所以很多人都觉得View的依赖清理(unbind)工作非常头大。不过这些东西在dojo里面都很好的解决了,而且dojo还有widget框架dijit,解决了布局、View依赖、View声明周期等众多问题。
Rebecca讲了它觉得Dojo有,但是Backbone没有的东西,她的SuperView帮助解决了这几个问题(提供一些rails)
- rendering: serializing, template, placing
- binding: memory-safe setup & teardown
- lifecycle: react when things happen
Dojo在很久以前就有Module机制,这个是很超前的。
这个话题本身当然是Backbone.js相关的,基于Rebecca写的一个Demo项目:https://github.com/rmurphey/srchr-demo
这个小项目写的很好,展示了如何写一个Backbone.js应用,并且借鉴Dojo的一些已有的模式。其中她主要战士的是SuperView这部分,定义了一些声明周期,使用它来解决View的依赖关系。