Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Flutterアプリで可用性を向上させたFeatureFlagの運用戦略とその方法

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Kakeru Nakabachi Kakeru Nakabachi
November 21, 2024
1.4k

 Flutterアプリで可用性を向上させたFeatureFlagの運用戦略とその方法

Avatar for Kakeru Nakabachi

Kakeru Nakabachi

November 21, 2024
Tweet

Transcript

  1. Flutterリプレイス後のFeatureFlag運用
 前提知識2/2:アプリのレイヤー構成 UI Stateの参照はConnected Screenでの み行う Connected ScreenでStateを束ねる Stateless ScreenはConnected

    Screen から値を受け取り、直接Stateの参照はし ない 01 Connected Screen Stateless Screen Widget Selector State UseCase Persistence Service UI State Domain Data
  2. 従来のFeatureFlagを使用した開発 
 従来の開発フロー • 実装方針レビューを30分MTGで実施 • 記載内容 ◦ 実装概要 ◦

    具体的な実装手順 ◦ 過去起きた不具合の考慮チェック 02 設計 実装 動作確認 QC リリース flag削除
  3. 発生した不具合の分析と整理 
 実際の不具合発生ケース 発生ケースパターン 03 Domain UI 不具合発生頻度 新規追加 新規追加

    低 既存改修 新規追加 低 新規追加 既存改修 中 既存改修 既存改修 高 発生しやすいケース

  4. 発生した不具合の分析と整理 
 実際の不具合発生ケース 発生ケースパターン 03 Domain UI 不具合発生頻度 新規追加 新規追加

    低 既存改修 新規追加 低 新規追加 既存改修 中 既存改修 既存改修 高 発生しやすいケース

  5. 発生した不具合の分析と整理 
 実際の不具合発生ケース 03 Domain
 UI
 ①:イベント購読
 ④:③がきたらDomain呼び出し
 Domain
 ③:イベント購読


    ②:Domain呼び出し
 理想は既存には手を触れずに改修 どちらのデータフローも実行で きるようにフラグ分岐 🚩 UI

  6. 発生した不具合の分析と整理 
 実際の不具合発生ケース 発生ケースパターン 03 Domain UI 不具合発生頻度 新規追加 新規追加

    低 既存改修 新規追加 低 新規追加 既存改修 中 既存改修 既存改修 高 発生しやすいケース

  7. 発生した不具合の分析と整理 
 実際の不具合発生ケース まとめ • 既存改修が複数レイヤーで起こると 不具合が発生しやすい • 既存は変更をしないように改修した い

    03 Domain UI 不具合発生頻度 新規追加 新規追加 低 既存改修 新規追加 低 新規追加 既存改修 中 既存改修 既存改修 高
  8. 可用性向上のための運用戦略とその方法 
 運用戦略 - 制御レイヤーの制限 できるだけデータフローの根本のDomainだけで分岐が完結できると、UIと Domainでのデータフローでミスが起こりにくくなる 04 UI
 State


    Domain
 Data
 Source
 ON:文字列 OFF:空文字
 UIは文字列があるかど うかで表示を制御 FeatureFlagは意識しな い
 データフロー 🛠FeatureFlag分岐
  9. 可用性向上のための運用戦略とその方法 
 開発フローから見る戦略 04 設計
 実装 動作確認 QC リリース flag削除

    レビュー方法 ドキュメント作成 BEFORE 30分MTGでレビュー ドキュメント管理ツール AFTER PullRequest上でコードレビューと同 じ方法でレビュー PullRequest(MarkDown)