是否可以/建议编写可重用的Ruby-on-Rails应用程序?

时间:2009-12-18 23:41:47

标签: ruby-on-rails

我有一个大型Web应用程序的想法,在我看来,它实际上是一些相当独立的应用程序“组件”(?),例如,论坛,博客等。

在我看来,为其他人开放一些单独的组件,或者将来我自己使用这些组件会很好。

现在很明显,我可以编写一个基本论坛,使代码可用,然后将其复制到我的大型应用程序中并扩展/集成它。但是,这并不觉得很干。在理想的世界中,我可以将代码保存在一个地方,然后将其放入我的大型应用程序中。

Rails似乎包含engines,这听起来像解决了我的问题,但看起来我想做的是bad idea

我应该......

a)只需构建一个大型耦合应用程序。
b)创建一个rails论坛应用程序(例如),将其释放,然后将其合并/复制到我的主应用程序中
c)使用引擎
d)其他......

干杯,

亚当

2 个答案:

答案 0 :(得分:1)

这个警告只是标准的Uncle Ben Corollary。从“以强大的力量,也承担了巨大的责任”的意思转移。 “只是因为你可以,并不意味着你应该。”

然而,仅仅因为引擎的使用有很多不好的想法,这并不意味着它就在你的情况下。博客和论坛是两个相当独立的组件,已经使用Engines作为插件生成。你可能甚至不需要制作它们。

我看到它的方式,如果你计划重用一个功能组件,你可以切实地与应用程序的其余部分隔离,那么这是一个足够的理由使它成为一个插件,无论它是否依赖于引擎。

我的经验是这些插件来自我编写的现有应用程序代码。作为应用程序的一部分构思,编写和测试它们比单独构建要容易得多。发动机是微型应用程序,并不是那么难以构建和测试。

简而言之。只有您可以决定哪条路径最好,因为您最熟悉应用的目标。在开始之前,先看看其他人对引擎和插件的处理方式。您要构建的组件可能已存在。

要回答这个问题,我可能会首先构建一个应用程序,并提取出在其他应用程序中有用的位,并在它们成熟时将它们抽象为[引擎]插件。

答案 1 :(得分:0)

您可能正在寻找Git子模块。我对它们一无所知,但你可以在git repo中简单地使用git repo。并且您可以非常轻松地更新所有内部git repos。 Here's an article谈论它。