我目前正在构建一个内部 gem,它将抽象一些有关后台处理库的功能。这个 gem 的目的是删除一些重复的代码,跨越几个 Rails 项目,并让更改库变得微不足道。
我想让用户可以在初始化程序中配置要使用的库(resque、sidekiq、延迟作业......)。问题是适配器 gem 应该处理所有依赖项。
我的问题是,这里的最佳做法是什么?我只看到两个选项:
包括所有受支持的库作为对适配器 gem 的依赖项。(将在服务器上安装不必要的软件。)
不要包含任何依赖项,并指示用户根据活动配置在其 gemfile 中包含某些依赖项。(重复代码并可能导致人为错误。)
您认为哪个选项是最佳实践?我还有其他选择吗?