Open1

【Flutter】feature flagsを試してみる作業場

うみうし3号うみうし3号

はじめに

Gitのブランチ戦略について考える中で、feature flagsというものが気になった。
feature flagsとは、コードを変更せずに機能動作の切り替えを行う、もの。

feature toggle

Feature Toggles,Feature Flags, Feature Bits, Feature Flippersなどと呼ばれる。

https://martinfowler.com/articles/feature-toggles.html

function reticulateSplines(){
  if( featureIsEnabled("use-new-SR-algorithm") ){
    return enhancedSplineReticulation();
  }else{
    return oldFashionedSplineReticulation();
  }
}
function createToggleRouter(featureConfig){
  return {
    setFeature(featureName,isEnabled){
      featureConfig[featureName] = isEnabled;
    },
    featureIsEnabled(featureName){
      return featureConfig[featureName];
    }
  };
}

色々なやり方があるが、単純なイメージとしては上記のようなもの。
フラグ分岐を使用することで、特定機能の有効無効を制御する。