较大的Rails站点中的单页应用程序 - 一个存储库或多个存储库?

时间:2014-03-15 17:48:11

标签: ruby-on-rails git angularjs ruby-on-rails-4

我们有一个项目将在AngularJS中构建多个单页应用程序(例如,日历应用程序,预算应用程序等),并使用Rails作为后端。它还有很大一部分网站作为普通的Rails站点运行 - 即。 RESTful MVC(例如resources :users, :events, ...)。

过去,我们的SPA与后端的服务器位于不同的服务器上,后端由第三方(Quickbase)提供,并且不受版本控制。既然我们要控制和开发SPA RESTful Rails站点/后端,问题是这些组件应该如何连接/分离?

  • 由于SPA将依赖数据的后端,它是否足以将它们作为同一个Git仓库的一部分包含在内?
  • 或者为了可维护性,易于开发,模块化等原因,它们应该分开,特别是因为它们可以被视为独立的工作吗?
  • 是否应将SPA保留在Rails目录结构中,以便Rails可以为它们提供服务并利用资产管道等?
  • 如果SPA应保留在Rails目录结构中,但在版本控制中也应该是单独的,那么如何使用它们共享目录结构呢?

1 个答案:

答案 0 :(得分:0)

不是铁杆开发商,而只是折腾我的两分钱。我做完全堆栈开发MySQL - > PHP(用于路由/ RESTfulness的Slim PHP框架),AngularJS。目前我的工作流程是将一个项目的所有PHP和AngularJS都放在一个Git仓库中,实际上这是使用Grunt而不是完全有意识的决定。我使用Grunt来运行实时重装服务器,并在基本配置中添加了一些内容(来自yeoman)来处理PHP部分,这样也会导致在开发过程中实时重新加载。

关于代码分离,让后端的RESTful接口与前端完全分离是最好的路径,因为这样你就可以完全重写前端而不需要改变后端(或者副本)反之亦然)。我说任何破坏这一点的东西都不值得,如果你不能保持这种抽象,就会失去替换一部分而不重写另一部分的能力。

我想说如果你有一块Rails后端代码,你觉得它可以真正站在它自己的上面并用于各种项目,那么也许那部分应该被提取到它自己的回购中。