将 Rails 应用分成多个 gem 有什么影响?

What are the implications of dividing a Rails app into multiple gems?

我正在 Rails 的 Ruby 中编写 CMS,我想知道将应用程序划分为引擎(存储为 gems)的含义。会有什么影响?

Rails 引擎是一个不太受欢迎的 Rails 功能。 并不是说它不好,远非如此,但它只是没有那么好。使用一个有意义的案例并不多,有很多 Rails 甚至不知道引擎存在的开发人员。

Rails 引擎在您拥有一些非常标准和通用的功能以致于您想在多个 Rails 项目中使用它时最有用。

关于这件事你应该听Sean Devine's podcast episode。它非常详细地讨论了影响,以及为什么您可能想要构建一个 Rails 引擎。

如果这些组件是可重用的,或者您想开发微服务,那么您当然可以将应用程序划分为更小的引擎和 gem。