【问题标题】:Ruby Feature Switches / Feature FlippersRuby 功能开关/功能翻转器
【发布时间】:2011-06-27 02:29:03
【问题描述】:

FlickrDisqus 使用功能开关的方式启发了我。他们都在博客上介绍了他们以及他们在两个开发博客上的工作方式。

我只是想知道我是否缺少 Ruby gem,或者是否有人知道在 Ruby 中执行此操作的方法?如果没有任何东西,我希望自己制作并在野外释放。但我只是想先在这里问一下,因为我还没有找到任何与 Flickr 和 Disqus 所实现的远程相似的东西。

【问题讨论】:

    标签: ruby-on-rails ruby rubygems sinatra


    【解决方案1】:

    我尝试了现在(2015 年 3 月)所有可用的鳍状肢宝石并选择了 ruby_flipper

    是的,它比其他的更老,但它允许你使用块和参数来计算特征状态,而且非常简单。

    它不需要redis、任何数据库或其他任何东西。

    对于多服务器设置,我使用 ENV 变量。实际上可以使用任何东西,因为它不会限制你(就像这里的其他选项一样)。

    我唯一不喜欢的是ruby_flipper 用它的方法污染了对象,但这很容易解决。

    总结一下:如果您需要一个轻量级、可配置且不受限制的解决方案,我投票支持这个简单的 gem。

    其他的在某些特定领域都很好,这个很好。

    另一个好的候选人是在接受的答案中提到的rollout

    【讨论】:

      【解决方案2】:

      我最近(2014 年 10 月 9 日)查看了可用的 gem - 9+ 处于各种维护状态 - 并决定使用 FlipperRollout也值得一看。

      如果您希望自己推出,Rollout 的源代码只有 200 行,是一个很好的起点。 https://github.com/FetLife/rollout/blob/master/lib/rollout.rb

      这个 railscast 还有一个准系统示例http://railscasts.com/episodes/315-rollout-and-degrade

      【讨论】:

        【解决方案3】:

        【讨论】:

        • 两年内(截至 2012 年 11 月)没有触及这些存储库——它们仍然可靠吗?
        【解决方案4】:

        如果您已经在使用 Redis,请检查 rollout

        【讨论】:

        【解决方案5】:

        也强烈推荐这种模式。没有我知道的宝石,但这很容易做到。一个提示:包括将初始状态自动设置为开或关的能力:

        feature_flag('third_party_tool', :default => true) do
            ... # this is on by default
        end
        

        这将在部署时为您省去麻烦。

        【讨论】:

        • 正确管理系统配置不是更好吗:)?
        • 这是实现这一目标的一种工具。永远不要假设事情会持续下去。
        猜你喜欢
        • 1970-01-01
        • 2017-03-30
        • 1970-01-01
        • 2016-06-07
        • 2013-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多