【ふぃーちゃーとぐる】

フィーチャートグル とは?

💡 デプロイ済みの機能を「スイッチ」で出し入れする
📌 このページのポイント
フィーチャートグル(Feature Toggle) デプロイ済み 新機能のコード (本番環境に存在) ON 有効 機能が見える ユーザーに公開 OFF 無効 機能が隠れる ユーザーに非公開 活用シーン 段階的リリース A/Bテスト 緊急時の機能停止 コードを変更せずにフラグの切り替えだけで機能のON/OFFを制御
フィーチャートグルのイメージ
ひよこ ひよこ

ブランチで管理するのと何が違うの?

ペンギン先生 ペンギン先生

ブランチだと「機能が完成するまでマージしない」から、ブランチが長寿命になってコンフリクトが増える。フィーチャートグルなら未完成の機能もメインブランチにマージできる(フラグOFFで無効化)。トランクベース開発と組み合わせるのが現代のベストプラクティスだよ

ひよこ ひよこ

どんな場面で便利?

ペンギン先生 ペンギン先生

①新機能を社内ユーザーだけに先行公開してフィードバックを得る、②特定の顧客にだけ有料機能を開放する、③問題が発覚したらコードのデプロイなしで即座にOFFにする(キルスイッチ)、④A/Bテストでユーザーの半分にだけ新UIを表示する。用途は本当に広いよ

ひよこ ひよこ

デメリットはある?

ペンギン先生 ペンギン先生

フラグが増えすぎると「技術的負債」になるよ。全ユーザーに公開済みの機能のフラグが残ったままだと、コードの分岐が複雑になる。不要になったフラグは定期的に削除する「フラグの棚卸し」が大事。LaunchDarklyのようなツールにはフラグのライフサイクル管理機能があるんだ

ひよこ ひよこ

自前で作る?ツールを使う?

ペンギン先生 ペンギン先生

小規模なら環境変数やDBのフラグテーブルで自前実装でもOK。大規模になるとLaunchDarkly、Unleash、Flagsmith等の専用ツールが便利だよ。ユーザーセグメント別のターゲティング、段階的ロールアウト、A/Bテストの統計分析など、自前では大変な機能が揃っているんだ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「フィーチャートグル」って出てきたら「機能のON/OFFをフラグで制御する手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Feature Toggle / Feature Flag」 = 機能切り替え / 機能フラグ
💬 Toggle(切り替えスイッチ)の名前の通り、機能をスイッチのようにON/OFFできるよ
← 用語集にもどる