Rails - 如何避免不同应用程序之间的重复

时间:2015-07-29 19:45:58

标签: ruby-on-rails ruby architecture code-duplication

这可能看起来是一个非常广泛的问题,但我已经四处寻找并且没有找到避免在不同应用之间重复的方法。只在应用内。

我现在正在使用三种不同的rails应用程序。我不时会发现自己重构了一些像icons_helper.rb这样的文件。当我完成的时候。它比以前更好,但与我的其他两个rails应用程序中的同一文件不同。

重复代码的其他典型示例:

  • 样式
  • 布局
  • 消息(通知,提醒,......)

我应该怎么做才能避免这种应用程序间重复?写一个包装这些文件的宝石是最好的选择吗?

2 个答案:

答案 0 :(得分:2)

这很简单,制作自己的宝石。您可以将其关闭(使用git: 'git location')或将其打开并使用rubygems。

您可以从bundle gem yourgem开始,这是关于how to build your first gem

的非常好的文章

您将此作为一个完全独立的项目进行管理。我们在公司这样做,并且工作得非常好

更新1

正如所建议的那样,您肯定希望在宝石中进行测试。它不会减慢调试速度:gem提出的错误显示为gemname/file_in_gem:line_number,因此您仍然可以轻松地检测到问题。此外,如果您遵循良好的测试实践,则不应该在其他应用程序中测试您的gem:gem已经在自己的代码库中进行了测试。

您可能希望在很多子引擎中查看有关splitting a rails application的文章。显然,这是一种极端的方法,只能在非常大的项目和更大的团队中提供良好的结果,但它向您展示了拆分Rails应用程序实际上是一个好主意。

答案 1 :(得分:1)

如果您想在多个应用程序中重用代码,那么我建议将该代码提取到Gem中,并在每个应用程序中要求Gem。