機能フラグ/機能オン/オフスイッチ
より複雑なアプリケーションを開発する場合、より多くの機能を前もって開発し、次のバージョンで配布し、後でその機能を有効にすることができるのは、非常にありがたいことです。
そのために作られたのが「フィーチャーフラッグ」なのです。この記事では、その使い方を紹介します。
基本的な実装
機能フラグは基本的に、新しい機能が有効かどうかを決定する単一の関数/メソッドを呼び出すという非常にシンプルな概念です。
例えば、こんな感じです。
php
echo '<h1>お天気アプリ</h1';echo '今日はそうです。' . getWeather();if (feature('地図')) {echo '地図はこちら' . getMap();}
特定のニュースの可否を確認するために feature() 関数が呼び出され、呼び出し名に基づいて特定の機能を許可するか無視するかを決定します。
決定ロジックの実装
意思決定のロジックは複雑であることが多い。例えば、特定の関数を特定の日付からしか実行できないようにしたり、特定のグループに属するユーザーに対してのみ実行できるようにすることができます。例えば、新機能を導入する際、全員に一度に影響が出ないように、例えば5%のユーザーに対してこのようなテストを行うことがよくあります。
例えば、企業向けソトウェアの開発では、このように広告キャンペーンやある日から有効な割引を実施します。
特定の新機能が壊れた場合、ユーザーには機能フラグで無効にし、テストして修正を持ってくる開発者グループには有効にするなど、単純に対応することが可能です。