首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Rails应用程序一分为二

将Rails应用程序一分为二
EN

Stack Overflow用户
提问于 2009-09-03 19:45:01
回答 3查看 604关注 0票数 0

我们有一个非常大的Rails应用程序,它有两个截然不同的部分:前端和CMS/Admin。我们想把应用程序分成两部分(为了维护,因为我们有不同的团队在前端和后端工作,他们可能有不同的发布周期)。

一种想法是启动一个新的Admin 2.0应用程序,该应用程序可以访问原始应用程序中的模型/模式,但具有自己的控制器/视图和自己的模型,这些控制器/视图和模型可以扩展原始模型,直到完全解耦安全为止。这样做可取吗?如果不是,那么从一个单一的代码库中迁移出来的合适计划是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-09-03 20:29:25

警告,这有点粗鲁,不会有任何进展。

我已经开发了一个在你描述的庄园中运行的非常大的应用程序(出于可伸缩性的原因),我仍然有不同的意见(没有确凿的答案)。

目前我们运行3个主要的应用程序(+一个或两个使用模式片段的较小的应用程序)。

RVW (我们的管理应用程序):这是唯一一个编写、运行在单个服务器上并负责维护模式的应用程序。

reevoo.com:电子商务,价格比较,诸如此类的东西。这(由于历史原因,运行在略有不同的模式上,运行在RVW的只读从属上,具有映射模式的数据库视图。所有写操作都是通过在队列上粘贴内容来完成的,RVW会拾取这些内容并对其执行操作。尽管与随机数据库相关的问题(主要与视图相关)的数量是一个问题,但这种方法工作得很好。这个应用程序的主要问题是难以共享代码(gem运行得很好,我经常梦想将模式统一起来,并在gem中共享核心模型!)。我们使用ruby gem在应用程序之间共享代码。并使用大量跨越应用程序边界的集成测试进行测试(使用drunit (presentation on this available))。

reevoomark:非常高负载的b2b应用程序。这有许多服务器,每个服务器都有一个完整的堆栈(每个节点一个数据库服务器,一个应用程序服务器)。它们的数据库中填充了db export - import批处理作业。这在短期内效果很好,它的剪切灵活性是王牌,但应用程序之间的集成测试非常困难。

我的建议是避免不惜一切代价拆分应用程序,快速保持干燥成为一个主要挑战。我的建议是坚持使用一个应用程序,两组路由(在启动时由环境变量选择)。

这为您提供了其他解决方案的所有优势,同时隐式地实现了代码共享。将您的测试包分开将使您的测试周期更短,并使两个团队更易于管理。我会避免在不同的代码库上工作,因为这样做会导致应用程序分离,并使代码共享变得棘手(如在.com中)。

如果你决定拆分,那就做一组高水平的跨应用测试。对核心模型集的自定义(每个应用程序)扩展听起来像是一个很好的计划,尽管使用不同的代码库和团队,您可能仍然会得到重复的代码。Rails引擎应该是共享模型的一种很好的方式,但要做好准备,模型重新加载会变得有点精神分裂。

祝好运!

票数 1
EN

Stack Overflow用户

发布于 2009-09-03 19:50:06

你有namespaced your admin controllers吗?这将是一个相对容易的细分点,还可以避免将代码分支到两个应用程序中的许多负面副作用。

票数 0
EN

Stack Overflow用户

发布于 2009-09-03 20:21:46

你有没有考虑过看看Rails Engines?在2.3中添加到Rails中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1375531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档