gpt4 book ai didi

ruby-on-rails - 当 Rails 应用程序变得太大时该怎么办?

转载 作者:数据小太阳 更新时间:2023-10-29 08:22:47 25 4
gpt4 key购买 nike

我正在处理一个变得太大的 Rails 应用程序。启动时间长,内存大。我们遇到了性能问题。测试非常慢。管理代码库、调试和引入新的 future 变得越来越困难。我们正在考虑将应用程序拆分为更小的组件(Rails 引擎或不同的 Rails 应用程序),其中所有组件将共享一个数据库。考虑到这种情况,我们将需要共享模型,可能是一些库、测试和一些 gem 等......这听起来不适合我!

有什么模式可以应用吗?

最佳答案

这里有一些关于拆分 Rails 代码库的很好的建议,但是我认为在您应用任何一个之前,您需要停下来并认真考虑您是如何进入这个位置的。所有这些解决方案都带来了新的复杂性和挑战。它们可能是值得权衡的,但前提是您确保它们也能解决您今天遇到的问题。

针对您列出的每个痛点(启动时间慢、内存使用率高、性能差、休息性能差、开发速度慢)并对它们进行“5 个为什么”练习。为什么会发生这些事情。为什么应用会进入这种状态。

最重要的是,在您制定任何拆分大型应用程序的计划之前,首先要考虑该应用程序是否应该大型化。如果您的应用程序比您的产品需求更复杂,那么切换到同样复杂的服务集群并不是一种改进。

更具体地说,我建议不要在应用程序/服务/任何东西之间共享数据库访问。共享数据库具有变得脆弱的共享架构。它还会导致紧密耦合的服务,这些服务缺乏关注点分离,您需要看到任何改进开发速度。正如将一个庞大的类拆分为几个紧密耦合的文件并不能改善它,将一个应用程序拆分为耦合的服务也不会。如果您必须维护大型应用程序,则需要隔离单独的关注点。为此,您需要打破它们之间的依赖关系。根据我所看到的修复 Rails 单体的努力,与将应用程序分开然后希望得到的部分可以独立改进相比,在现有应用程序中创建干净的界面然后拆分组件会取得更好的成功。

关于ruby-on-rails - 当 Rails 应用程序变得太大时该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24966508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com