自定义Gems或合并到主轨项目中

时间:2012-07-10 14:25:17

标签: ruby ruby-on-rails-3

目前我正在编写一个Ruby on Rails应用程序,我正在使用Gems,但有时候我觉得Gems并不像我想要的那样灵活。使它们更灵活。我应该

将它们放在github上并进行自定义,但这仍然是管理所有内容的挑战。

剥离并将gem的代码合并到主应用程序中?这将允许进一​​步定制宝石。这适用于Gem需要另一个Gem功能的情况。

还是有更好的方法吗?

由于 乙

2 个答案:

答案 0 :(得分:2)

出于多种原因,选择A是更好的答案。

  1. 您可以轻松地合并安全更新,增强功能和错误修复。
  2. 您的更改可能会合并到核心中 - 实际上,请考虑是否可以将它们与核心功能一起作为选项实现。如果发生这种情况,你将获得最终的胜利 - 无需维护,你可以退休。
  3. 其他人可以从您的更改中受益。
  4. 通过保持宝石代码隔离,您的项目占地面积保持较小且集中。
  5. 你可以在你的Github“简历中添加一些东西。”

答案 1 :(得分:0)

如果它不是那么受欢迎的宝石或“自行车”来自一些以前的工作室或开发项目的开发人员(在我的情况下)。
我更喜欢弃用这个gem并将代码移入项目中, 例如,他们有c *** la-deploy - 它只是用自己的方法包装到Capistrano 2))) - 我只是删除它并重写最后Capistrano 3
有没有自己的“CMS”c *** la-cms,它们包装标准的form_for或simple_form,名称为“twitter_form_for”? - 我开始尝试找到使用此名称的宝石,然后在依赖宝石中查找... 它需要花费大量时间让新开发人员参与项目 - 更好地转向标准的rails方法/ heplers 但无论如何,我理解这个工作室是做什么的 - 它只是供应商锁定,而且客户更难以从他们转移到另一个开发人员。
例如,对于启动来说,使用很多依赖项是不好的,如果它只是简单的网站 - 无所谓。