Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 大型Rails站点中的单页应用程序-一个存储库还是多个?_Ruby On Rails_Git_Angularjs_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 大型Rails站点中的单页应用程序-一个存储库还是多个?

Ruby on rails 大型Rails站点中的单页应用程序-一个存储库还是多个?,ruby-on-rails,git,angularjs,ruby-on-rails-4,Ruby On Rails,Git,Angularjs,Ruby On Rails 4,我们有一个项目,将有多个单页应用程序(如日历应用程序、预算应用程序等)内置在AngularJS中,并使用Rails作为后端。它还将有很大一部分站点作为普通Rails站点运行——即RESTful MVC(例如参考资料:用户,:事件,) 在过去,我们的SPA与后端的服务器是分开的,由第三方()提供,不受版本控制。现在我们要控制和开发SPA和RESTful Rails站点/后端,问题是这些组件应该如何连接/分离 由于SPA将依赖后端获取数据,这是否足以将它们耦合起来,使其成为同一Git回购协议的一部

我们有一个项目,将有多个单页应用程序(如日历应用程序、预算应用程序等)内置在AngularJS中,并使用Rails作为后端。它还将有很大一部分站点作为普通Rails站点运行——即RESTful MVC(例如
参考资料:用户,:事件,

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

  • 由于SPA将依赖后端获取数据,这是否足以将它们耦合起来,使其成为同一Git回购协议的一部分
  • 或者为了可维护性、易开发性、模块化等,应该将它们分开,特别是因为它们可以被视为独立的工作
  • SPA是否应该保存在Rails目录结构中,以便Rails提供服务并利用资产管道等
  • 如果SPA应该保存在Rails目录结构中,但在版本控制中也应该是独立的,那么如何让它们共享一个目录结构呢

不是rails开发人员,只是我的两分钱。我做了全栈开发MySQL->PHP(路由/RESTfusion的瘦PHP框架),AngularJS。目前,我的工作流程是将一个项目的所有PHP和AngularJS放在一个Git repo中,这实际上是由于使用Grunt而不是一个完全有意识的决定。我使用Grunt来运行live reload服务器,并在基本配置(来自yeoman)中添加了一点来处理PHP部分,这样还可以在开发过程中实现live reload

关于代码分离,为后端提供一个与前端完全解耦的RESTful接口是最好的选择,因为这样可以在不更改后端的情况下完全重新编写前端(反之亦然)。我想说,任何打破这一点的东西都不值得,如果你不能保持这种抽象,你就失去了在不重写另一部分的情况下替换一部分的能力


我想说,如果你有一段Rails后端代码,你觉得它可以真正独立存在并用于各种项目,那么也许应该将这部分代码提取到它自己的repo中。

如果想法是保持前端/后端充分解耦,以便能够完全改变其中一个而不影响另一个,把它们分开进行回购不是更有意义吗?否则,您的历史记录、更改日志等会变得混乱,因为当您更改后端时,前端的历史记录会发生更改,即使前端没有任何更改。如果您正在与团队合作,或者希望保持一个干净的历史记录,那么将它们分开可能是有意义的。唯一的问题是,如果您决定将它们分开,我想不出一种方法可以轻松地配置Gruntfile.js,这样它就可以监视任意一部分的更改以进行实时重新加载(尽管这可能不是服务器端代码的问题)。到目前为止,作为一家一人行,我并不十分关心回购协议的组织,只要回购协议存在,而且我经常承诺,我对回购协议感到满意。