LaunchDarkly の各種言語のサンプルアプリを試してみるレポジトリです。
LaunchDarkly はフューチャーフラグを外部から制御する機能を提供する SaaS プラットフォームです。
フューチャーフラグの機能を利用することで、
- 新機能に問題が発生した場合に即時安全にロールバックする。
- 特定のセグメント(ユーザー、ロール、地域、デバイス、OS など)に対して機能を提供する。
- 任意の条件で A/B テストを実施する。
- AI への接続を切り替える。
などが簡単に実装できます。
Get started | LaunchDarkly | Documentation を参照してください。
Get started | LaunchDarkly | Documentation を参考に 14日間の評価版をご利用ください。
評価機関が過ぎた後は、自動的に Developer プランに変換されます。Developer プランでは、毎月最大 1,000人のユーザーまたはコンテキストと、10,000個の experiment キーが無料で利用できます。
Get started | LaunchDarkly | Documentation - 2. Install an SDK for your codebase を参考に、フューチャーフラグを試したいアプリケーションに SDK をインストールします。
SDK は豊富に揃っています。
- Client-side SDKs | LaunchDarkly | Documentation として JS, React, Vue, Node.js, Electron などと、モバイル用の Android, iOS, Flutter などが用意されています。
- Server-side SDKs | LaunchDarkly | Documentation として Java, Go, Node.js, Python, Ruby, PHP, .NET などが用意されています。
- AI SDKs | LaunchDarkly | Documentation はこのドキュメントではまだ触れませんが、Go, Node.js, Python, Ruby, .NET が用意されています。
- Edge SDKs | LaunchDarkly | Documentation で CDN や IaC に LaunchDarkly を利用することも可能です。
新規のプロジェクトで試したい場合は、各言語のチュートリアルやサンプルコードがありますので、後述する各言語のサンプルを参照してください。
Get started | LaunchDarkly | Documentation - 3. Create your first feature flag を参考に、最初のフラグを作成します。
上記 Get started の画像では「My first feature flag」を作成していますが、後述する各言語のチュートリアルでは「Sample feature」を利用することが多いので「Sample feature」にしておくと良いと思います。
Get started | LaunchDarkly | Documentation - https://launchdarkly.com/docs/home/getting-started#4-retrieve-the-value-of-your-first-feature-flag からのドキュメントを参考に、フラグの取得を行います。
LaunchDarkly SDK を初期化するためには各種 Key が必要です。
Get started | LaunchDarkly | Documentation - Initialize your LaunchDarkly client を参考に Key を取得します。
元ドキュメントの下の方まで読み進めてしまいますが、テスト用のコンテキストを用意し、フューチャーフラグを取得し、その結果に応じて表示するコンテンツを作成します。
Get started | LaunchDarkly | Documentation - Integrate your first feature flag を参考にしてください。
Java のコードの例では、
- 9-15行で Key を利用して
LDClientを初期化しています。 - 17-20行でテスト用のコンテキストを用意しています。
- 22行でフラグの値を取得し、26-30行でコンテンツを切り分けて作成しています。
単純なフラグのオンオフではなく、ユーザーによる条件分岐もできます。
Get started | LaunchDarkly | Documentation - 5. Targeting the audience for your first feature flag 以下のドキュメントを参考に複数のユーザーとコンテキストを用意します。
実際にはログイン後のユーザーの情報を元にコンテキストを構築する流れになります。
Java のサンプルでは 17-43行で 3名のユーザーを作成して、それぞれのフラグの結果を表示しています。
35-43行の Carlos さんの箇所で .set("kind", "beta-user") の Kind を指定していることに注目してください。
Get started | LaunchDarkly | Documentation - Add your first targeting rule を参考に、最初に作成したフラグに条件を追加します。
再度アプリケーションを実行すると、beta-user の条件に合致する Carlos さんのフラグ値が True になっているのを確認できるはずです。
Alice's flag value is: False
Bob's flag value is: False
Carlos' flag value is: Trueチュートリアルとしては以上です。
お疲れ様でした!
以下、各言語のサンプルを試してみた際のドキュメントを記載します。
- Server
- Client