フィーチャートグル(featureToggle)
https://ja.wikipedia.org/wiki/フィーチャートグル
記事
https://www.infoq.com/jp/news/2021/06/github-feature-flags/
GitHubでの使い方
フィーチャーフラグにはタイプ(リリース・実験・運用・許可)がある!
rails
Rails.configurationでやる
application.rb
configuration.x.hoge_feature_enabled = true
production.rb
configuration.x.hoge_feature_enabled = ENV['HOGE_FEATURE_ENABLED'].present?
prod環境だけデフォでは無効化する。 テストや開発環境ではデフォルトで有効になっている
たとえばsandbox環境(Rails.env == production)などに配布したいときは環境変数を入れておくと新機能テストできる
使うとき
if Rails.configuration.x.hoge_feature_enabled ...
リリースし終わったら全部grepして消す
他
やっぱ管理者画面からサーバの変更や再起動なしに切り替えたいとかそういうのになると仕組みを考える必要がある
http://aligach.net/diary/20190427.html
ruby gem
https://github.com/mgsnova/feature
https://github.com/cookpad/chanko
https://github.com/FetLife/rollout
それはそれでなかなか大変なので素朴にやるなら環境変数で切り替え/Rails.configuration使う くらいがちょうどいいんじゃないかと思う
DSL覚えたりインフラ用意したりも面倒だし
個人的に自前実装でラッパー作るのはオススメしない
素朴に誰でも消しやすくするをモットーに