这可能看起来是一个非常广泛的问题,但我已经四处寻找并且没有找到避免在不同应用之间重复的方法。只在应用内。
我现在正在使用三种不同的rails应用程序。我不时会发现自己重构了一些像icons_helper.rb
这样的文件。当我完成的时候。它比以前更好,但与我的其他两个rails应用程序中的同一文件不同。
重复代码的其他典型示例:
我应该怎么做才能避免这种应用程序间重复?写一个包装这些文件的宝石是最好的选择吗?
答案 0 :(得分:2)
这很简单,制作自己的宝石。您可以将其关闭(使用git: 'git location'
)或将其打开并使用rubygems。
您可以从bundle gem yourgem
开始,这是关于how to build your first gem
您将此作为一个完全独立的项目进行管理。我们在公司这样做,并且工作得非常好
正如所建议的那样,您肯定希望在宝石中进行测试。它不会减慢调试速度:gem提出的错误显示为gemname/file_in_gem:line_number
,因此您仍然可以轻松地检测到问题。此外,如果您遵循良好的测试实践,则不应该在其他应用程序中测试您的gem:gem已经在自己的代码库中进行了测试。
您可能希望在很多子引擎中查看有关splitting a rails application的文章。显然,这是一种极端的方法,只能在非常大的项目和更大的团队中提供良好的结果,但它向您展示了拆分Rails应用程序实际上是一个好主意。
答案 1 :(得分:1)
如果您想在多个应用程序中重用代码,那么我建议将该代码提取到Gem中,并在每个应用程序中要求Gem。