你需要有扎实的 JavaScript 知识,并且熟悉 Backbone 、 Ruby 、 HAML、SASS 以及 CoffeeScript 才会发掘此文的真正价值。
同时,我是在 Mac 上进行开发的,并未在其它平台测试。尽管如此,我还没有发现任何导致代码无法起效的原因。
Rails的成功可以部分归结于它的公约以及预先定义的目录树。虽然对于一个新手而言使用Rails会有很大的压力并且可能有点烦恼,但是你会很快从那种感觉中解放出来。有了"一切都摆放在正确的位置"的经历,你很快就能感觉到自己喜欢上了那种每一段细小的代码都有它们特定位置的感觉。
Backbone,没有规定任何特定的代码或者目录结构的一个灵活的JS框架。直到我阅读了足够多的材料并且将其以特定的布局安放之,我感到十分困惑和迷茫。
这个骨架应用(Backbone-skeleton)是从一个成熟的应用程提取出来并拥有足够多的注释--用来帮助使用者进行特定的决定与选择。
当我一开始使用Backbone的时候,我已经深深地陷入了Ruby On Rails的世界里。所有我很自然的认为,MVC,我知道那是什么玩意儿。但是那与我想要了解的事实相差甚远。
声明:我很少开发纯客户端的软件,尽管我广泛地使用JavaScript来让应用更快、更容易响应。
事实是,服务器端的MVC和客户端的MVC差别很大。每次当你重新载入一个页面的时候,总要做些事情来保持整个状态的整洁。不论国籍。
另一方面,客户端会保留一些状态,因此,客户端会将所有你的一些糟糕的操作留在内存中直到这些操作慢慢开始变慢并最终停止工作。
我曾经做过一个很大的客户端项目,创建 Dubjoy 编辑器为在线的视频配音。
学习在客户端运用MVC和使用Backbone最大的困难是了解庞大的图示,能够明白每个小零件在哪一块,并能够理解他们是怎么在一块大张旗鼓的工作。
所以大多数情况下,我使用Backbone的经历由以下2方面构成:1.发现最好的对文件和代码组织的实践。2.安装环境或者目录结构。
将Backbone.js作为库使用是非常容易的,(不是真的,这不是这篇文章想要说的)。
我犯的最大错误之一就是在项目开始之初,都想用Backbone来架构。
Backbone本来是想保持简单,因为它的目的仅仅是作为你自己的javascript的补充,所以,大胆的创建你自己的程序类,并用你程序真的需要的东西和初始化来填充这些类。
一个优秀的工作流程需要一个优秀的工具。在这里我会描述几个在我开发Backbone时发现的不可缺少的工具。
因为我十分讨厌过度的冗余,所以我是抽象化语言的超级粉丝。
只要有机会,我会倾向于选择HAML, SASS和CoffeeScript。
对我而言,最重要的是它们带来的简洁性。
在Backbone中,你经常会需要一个模板引擎。模板提供了适用于视图的标记。事实上,有很多解决的方法,但是因为我喜欢保持与原来的习惯一致,最好的选择就是HAML。
幸运的是,有一个解决这个问题的库:haml-coffee,它可以让你交叉着使用HAML和CoffeeScript片段。
为了无缝的使用这些语言,你需要一些必要的编译器。有一个叫做Guard 的Ruby工具恰好可以做到这一点。
Guard非常的灵活。它可以注意到文件系统的变化然后对产生变化的文件进行一些操作。
Jammit 是个好的封装库. 它串联和压缩css和javascript文件,并且它非常容易使用, 但是它需要 configuration file, 配置文件决定哪个文件被安装.
Backbone 应用是静态的文件,你能脱离硬盘驱动器直接运行它们。但是如果你想要确定合适的路径甚至使用一些应用程序接口,那我们就需要一个服务器。
Sinatra, 是一个迷你Ruby web框架,并且构成了服务器的基础。它不仅能够作为服务器存在还能够作为永久的应用程序接口。
为了使这一部分尽可能的容易使用, 我使用 Isolate 封装了这个服务器, Isolatea 是一个小的作为沙箱使用的Ruby库,它看起来特别像迷你的Bundler.当第一次运行这个服务器的时候,它将会检查并自动安装它的附属文件,并开始工作。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务