1. ホーム
  2. architecture

[解決済み] フィーチャーフラッグとは?

2022-07-17 09:04:06

質問

高いスケーラビリティ は、ここで機能フラグに言及します。

スケーラビリティに有害な5つのこと , 5. 機能フラグの欠如"

機能フラグとは具体的にどのようなものですか?

どのように解決するのですか?

機能フラグ」(または 機能トグル ) は、アプリケーションの機能 (サブセクション) を簡単にオン/オフする機能です。

  • おそらく再デプロイによって、または
  • ページ/機能をライブで切り替えることができる内部ページがあります。

例えば、負荷が高すぎる場合に DB クエリを減らす必要がある場合、機能セットを多少減らすコントロールがあると便利だというのが、この例だと思います。

そこには 他の多くの理由 を使いたい理由は他にもありますが、主なものの1つは 継続的デリバリー を有効にすること、つまり、完成するまで機能を無効にしたりトグルしたりすることです。私たちはしばしば、未完成の機能を開発チームだけに見せるために「開発用クッキー」と呼んでいるものを使用しています。この方法では、「トグルを解除」(完了)して一般に公開する前に、複数のリリース/デプロイメントにわたって、部分的に完了した作業を本番環境でテストできます(そうそう、もっと良い統合はないでしょうか)。

ASP.NET MVC の土地でこれを行うのに役立つ簡単なパッケージがあります。 https://github.com/cottsak/DevCookie (完全な開示: 私が作者です)

また、Fowlerは よりもずっと長い記事で、より多くの詳細があります。 .

この投稿(Fowlerのサイトにもあります)は、さまざまな種類のトグル戦略について説明しています。 . デブクッキー は、メインライン/トランクベースの戦略をサポートし、" と呼ばれます。 リリース・トグル と呼ばれています。

アディルさんの回答 このようなインフラストラクチャを必要とする理由や用語はたくさんあります。これらのもののうち、必要なのは一部だけかもしれないことを心に留めておいてください。たとえば、私はシンプルでアジャイルなデプロイメント/配信ワークフローを可能にしたいだけなので、シンプルなインフラで十分でしょう。その後、完全な #leanstartup A/B、コホート テスト、および管理されたロールアウトなどの実験に移行したい場合は、分析ツール (たとえば ヒープ など)を検討する必要があります。上記のすべてを行うトグル インフラストラクチャは、肥大化と不必要な複雑化を招きます。

もしあなたがここまで来たのであれば、私のいくつかの メインライン開発、機能トグル、および TEST、QA、SIT、STAND、CROUCH のような他の愚かなアイデアに関する私の他の考えをチェックしてみてください。 .