機能フラグと機能切り替え(ある場合)の違いは何ですか?


7

私の(メタ)質問「機能フラグの名前を機能切り替えに変更しますか?」に対する回答の一部は次のようになります。

...機能のフラグ(形式、それらに関するドキュメンテーション、定義のプロセス)について有効な質問がある可能性があります。これは、機能のトグルではなく、バイナリの意味が少ない機能のランプアップに関連している場合があります。...

私の質問:DevOpsのコンテキストで、機能フラグと機能トグル(存在する場合)の違いは何ですか?

PS:https ://martinfowler.com/articles/feature-toggles.htmlを見ると、そのようなフラグとトグルの違いはわかりません。

回答:


8

客観的な観点だけで考えても違いはありません。

しかし、機能トグルは、アプリケーション全体のアイデアに対して重いバイナリ「オン/オフ」を運びますが、機能フラグは、より緩やかな用語であり、ランプアップテストをより簡単に包含することができます。

ランプアップテストを開始し、トラフィックまたはユーザーベースの10%で新機能を有効にし、翌週以降最大20%に移行すると、トグル用語は逆効果になります。一部の人々(マネージャ/コマーシャル/一部のクライアントサポート担当者)は、クライアントの一部だけが新しい機能を取得していることを本当に理解していない場合があります。

ランプアップは次のように定義できます(ソフトウェアテスト技術に関するウィキペディアからの引用):

通常のシーケンスは、負荷を増加させることです。数人の仮想ユーザーから始めて、時間をかけて数を所定の最大値まで増やします。テスト結果は、ユーザー数と応答時間の関係として、負荷に応じてパフォーマンスがどのように変化するかを示しています。

私はetsyの機能 API(維持されていなくても)を説明のソースとして気に入っています。これは、機能フラグとその使用法に関する優れたreadmeを持つフレームワークを簡単に理解できるものです。

そのため、用語の使用法に違いがあり、アプリケーションで何が発生するかについての混乱を回避するのに役立ちます。


OK、それはすでに役に立ちます。「ランプアップ」テスト(またはリンクなど)に関する説明も追加していただけませんか。毎日の質問の制限に早く達しすぎないようにするために…
Pierre.Vriens


「2日目」はすでに期限切れですが、リラックスしてください。「いつの日か」も問題ありません...可能であれば、基本的なサンプルで回答をさらに改善することもできます...
Pierre.Vriens

@ Pierre.Vriens done;)ダミーの例は実際には関係ないと思います。コードはここでは必要ありません。
Tensibai 2017年

3

トグルはオン/オフ(サイトに広告を表示し、広告を表示しない)であり、(West CoastはプロバイダーAから広告を取得し、East CoastはプロバイダーBから広告を取得する)などのフラグによって強化されることを付け加えます。トグルすると、すべての広告がオフになります。機能フラグは、プロバイダーAからプロバイダーCに切り替えることができる場合があります。

また、重要な部分は、スイッチと設定がどのように機能するかを決定することだと思います。新しいビルドをロールアウトする必要がありますか?または、管制塔が東海岸/西海岸を判別し、簡単でほぼ間違いのないインターフェイスを使用して、「そのプロバイダー」にその場で答えることができます。


概念を説明するための興味深い追加と例!「管制塔」は「遠くから」のようですね。もしそうなら、私は別のバリエーションが実行時にソフトウェアがいくつかの前提条件(たとえば、それが実行されているOSのリリース)についていくつかのチェックを行い、はい/いいえ(=トグル)が何かを起こすときだと思います。私は近いですか?もしそうなら、これをあなたの答えにも追加してください。
Pierre.Vriens

おそらくコメントする価値がありますが、おそらく独自の質問に値するでしょう。「機能設定を制御して、制御された方法で段階的に設定を展開できるようにするにはどうすればよいですか?」私の意見を述べることができます。500文字では長すぎて、とにかくここのシャッフルで迷子になるでしょう。また、私の意見とは異なる/良い意見を持つ人もいるでしょう。
払い戻しなし返品不可2017

devops.stackexchange.com/questions/162/…は、これについて議論できる問題です。
返金不可返品不可2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.