Подтвердить что ты не робот

Рубиновые функциональные переключатели /Feature Flippers

Я был вдохновлен как Flickr и Disqus используйте переключатели функций. Они оба писали о них в блогах и как они работают над обоими блогами разработки.

Мне просто интересно, есть ли у Ruby gem я пропал без вести или кто-нибудь знает, как это сделать в Ruby? Если ничего не случится, я надеюсь сделать свою собственную и выпустить ее в дикой природе. Но я просто хотел спросить здесь сначала, потому что я не смог найти ничего отдаленно похожего на то, что достигли как Flickr, так и Disqus.

4b9b3361

Ответ 1

Отметьте rollout, если вы уже используете Redis.

Ответ 2

Недавно (9 октября 14) взглянул на доступные драгоценные камни - 9+ в различных состояниях обслуживания - и решил пойти с Flipper. Rollout также стоит посмотреть.

Если вы хотите перевернуть свой собственный исходный код для Rollout, это всего 200 строк и хорошее место для начала. https://github.com/FetLife/rollout/blob/master/lib/rollout.rb

В этом railscast также есть пример с баребонами http://railscasts.com/episodes/315-rollout-and-degrade

Ответ 4

Также настоятельно рекомендуем шаблон. Нет драгоценных камней, о которых я знаю, но это довольно легко сделать. Один совет: включить автоматическое задание начального состояния на включение или выключение:

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

Это избавит вас от головных болей во время развертывания.

Ответ 5

Я попробовал все драгоценные камни, доступные сейчас (март 2015 г.), и выбрал ruby_flipper

Да, он старше других, но он позволяет использовать блоки и аргументы для вычисления состояния функции, и это просто прост.

Не требуется redis, любая база данных или что-то еще.

Для настройки нескольких серверов я использую переменные ENV. Фактически можно использовать что-либо, поскольку оно не ограничивает вас (как и другие варианты здесь).

Единственное, что мне не нравится, это то, что ruby_flipper загрязняет объект своими методами, но это легко решить.

Подводя итог: если вам нужно легкое, настраиваемое и не ограниченное решение, я голосую за этот простой камень.

Другие хороши в какой-то определенной области, с которой хорошо начать.

Другим хорошим кандидатом является rollout, упомянутый в принятом ответе.