4

我目前有一个用rails3编写的网络应用程序。我想编写一个基于主干的 js 应用程序,它将使用rails3服务;虽然有很多带有rails的骨干示例,但我更愿意在不同的项目中构建它。该项目将是的,然后将指向其他项目的服务。 html+css+js

  • 这种方法的优点或障碍是什么?
  • 还有其他方法吗?

我注意到 github 上的大多数 rails3-backbone projs 在幕后做了很多神奇的事情(例如:预编译车把资产,自动包含 js 文件),这使得理解所有部分如何协同工作变得更加困难。另外,如果我想使用 phonegap/trigger.io/etc 打包一个应用程序,这不是更难吗?

4

1 回答 1

4

在编写 Backbone 应用程序时,单独开发它实际上很有意义。换句话说,如你所说,将其开发为html+css+js 应用程序。

这样做有很好的理由:

  1. 部署

    考虑何时部署应用程序。在某些时候,您肯定会想要部署应用程序的一些模块化组件。这可能是负责为您的客户提供 json 的后端服务,也可能是对 UI 的调整。无论是哪种情况,最好能够独立部署它们中的每一个。

  2. 模块化

    能够在幕后使用一些 Rails 魔法来帮助开发您的 UI,这听起来很有吸引力。但是,请考虑项目的模块化。

    IMO,Backbone(或任何 AJAX 应用程序)很漂亮。美妙之处在于 UI 代码实际上与后端的实现无关。它可以与 PHP/JAVA/RAILS/PYTHON/YOU-NAME-IT 服务器通信,但它仍然无关紧要。也就是说,如果您正在实现一个 RESTFUL 服务器。事实上,UI 代码可以放在只提供静态内容的 NGINX 服务器上,它仍然可以完美运行。这实际上是你想要的。您的 UI 代码在任何时候(在开发或生产期间)都不应了解后端的框架或后端支持的任何工具。在 Backbone 项目中引入不必要的依赖是犯罪行为。

    想象有一天,当您认为适合迁移到不是 Rails 的不同架构时。如果有任何依赖关系,那将是一场噩梦。而是拥有一个完全独立于后端实现的 UI。

  3. 包装

    您提到您将使用 PhoneGap 来打包您的应用程序。这可能是您的项目应该独立的最大原因。如果您打算将应用程序提交给 Apple,那么您将无法从服务器加载 js。所有脚本必须打包到必须是独立的应用程序中。

最后但并非最不重要的一点是,回答您有关“其他方法”建议的问题。这是相当模糊的,所以我不确定这个建议是否会有所帮助,但我想向您指出一些有助于组织 Backbone 项目并让您的生活更轻松的资源。

使用 RequireJS 的骨干网

我认为这是使用 Backbone 的最佳方式。RequireJS让您可以在 js 文件中指定依赖项,就像在编译语言中导入一样,这在组织 Backbone 项目并将代码分解为更小的模块时有很大帮助。requireJS 提供的优化工具还可以让您将所有 javascript 文件压缩到一个文件中。如果您想将项目打包到 PhoneGap 中,我相信这会派上用场。

下划线

您提到使用 HandleBar。但是,我建议您查看下划线的模板引擎,该引擎的灵感来自 RoR 的模板。并且假设您对使用 Rails 非常满意,那么下划线模板引擎可能正是您正在寻找的。

于 2012-05-03T19:12:14.073 回答