Javascript rails后端基于主干网的web应用程序:独立项目还是在rails之上?

Javascript rails后端基于主干网的web应用程序:独立项目还是在rails之上?,javascript,ruby-on-rails-3,backbone.js,Javascript,Ruby On Rails 3,Backbone.js,我目前有一个用rails3编写的web应用程序。我想写一个基于主干网的js应用程序,它将使用rails3服务;虽然有很多使用rails的主干网的例子,但我更愿意在不同的项目中构建它。该项目将是纯html+css+js,然后它将指向其他项目的服务 这种方法的优点或障碍是什么 还有其他方法吗 我注意到github上的大多数rails3主干项目在幕后发挥了很多神奇的作用(例如:预编译handlebar资产,自动包含js文件),这使得理解所有部分如何协同工作变得更加困难。另外,如果我想使用phone

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

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

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

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

这样做有很好的理由:

  • 部署

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

  • 模块化

    能够在幕后使用一些rails魔术来帮助开发UI,这听起来可能很吸引人。但是,考虑项目的模块性。 在我看来,主干网(或任何AJAX应用程序)都很漂亮。它的美妙之处在于,UI代码与后端的实现完全无关。它可以与PHP/JAVA/RAILS/PYTHON/YOU-NAME-It服务器进行通信,但这并不重要。也就是说,如果您正在实现RESTFUL服务器。事实上,UI代码可以放在只提供静态内容的NGINX服务器上,并且它仍然可以很好地运行。这就是你想要的。您的UI代码在任何时候(在开发或生产期间)都不应该知道后端的框架或后端支持的任何工具。在主干项目中引入不必要的依赖关系是一种犯罪

    想象有一天,当您认为适合迁移到不同的体系结构(而不是Rails)时。如果存在任何依赖关系,那将是一场噩梦。更确切地说,它有一个完全独立于后端实现的UI

  • 包装

    您提到要使用PhoneGap打包应用程序。这可能是您的项目应该独立的最大原因。如果你打算这样做的话,那么当你向苹果提交你的应用程序时,你将不会有从服务器加载js的奢侈。所有脚本必须打包到应用程序中,该应用程序必须是独立的

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

    我认为这是用脊梁骨工作最棒的方式。让我们在js文件中指定依赖项,就像在编译语言中导入一样,这对于组织主干项目和将代码分解为更小的模块非常有帮助。requireJS提供的优化工具还允许您将所有javascript文件压缩到单个文件中。我相信如果你想用PhoneGap打包你的项目,这会很有用

    你提到使用车把。不过,我建议您研究一下Underline的模板引擎,它的灵感来自RoR的模板。假设您对使用Rails非常满意,那么下划线模板引擎可能正是您想要的