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

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

Kakeru Nakabachi
November 21, 2024
140

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

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)