簡単なFeature FlagをJavaで導入してみた

2023/08/14に公開

アジャイルでプロダクトを進めるにあたって、新機能を段階的に追加していく場面で、
「ユニットテストは通るけど、結合テストが通らない、、」といった状況に陥りました。
そこで、フィーチャーフラグの存在を知ったため、簡単にまとめました。

Feature Flagとは

Feature Flagはソフトウェア開発手法で、アプリケーションの特定の機能を一時的に有効・無効にすることができる仕組みです。Feature toggleや、機能フラグとも呼ばれます。

実際に使ってみる

以下は、フィーチャーフラグを利用する簡単なサンプルコードです。
newFeatureEnabledの状態によって、実行されるメソッドを変えることが出来ます。

public class Example {
    private static boolean newFeatureEnabled = true;

    public static void main(String[] args) {
        // フィーチャーフラグが有効な場合の処理
        if (newFeatureEnabled) {
            newFeatureLogic();
        } else {
            oldFeatureLogic();
        }
    }

    public static void newFeatureLogic() {
        System.out.println("新しい機能を利用します。");
        // 新機能のロジックをここに追加
    }

    public static void oldFeatureLogic() {
        System.out.println("既存の機能を利用します。");
        // 既存機能のロジックをここに追加
    }
}

一見シンプルですが、とりあえず今書いたコードだけでもユニットテストを通したい場合や、他のクラスの実装が終わるまでは、一旦大筋の実装とは切り離しておきたい場合などに便利だと感じました。

おわりに

今回はJavaでの簡単なフィーチャーフラグの実装について書きましたが、様々なライブラリを用いた便利な方法があるため、今後勉強して共有していこうと思います。

Discussion