複雑なState管理からの脱却
by
SansanTech
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
Sansan株式会社 部署 名前 複雑な状態管理からの脱却 Sansan技術本部 食べログ x Sansan モバイル勉強会 Sansan株式会社 技術本部 Sansan Engineering Unit Mobile Applicationグループ 桑原 宏和
Slide 2
Slide 2 text
写真が入ります 桑原 宏和 Sansan株式会社 技術本部 Sansan Engineering Unit Mobile Applicationグループ - Android Engineer - 2022年5月 Sansan株式会社に中途入社 - X: @kilalabu
Slide 3
Slide 3 text
- 導入 - Sansan Fluxアーキテクチャの概要 - 改修内容と要件 - 対象画面での課題 - リファクタリングのアプローチ - 成果と学び 目次
Slide 4
Slide 4 text
Sansan Fluxアーキテクチャ
Slide 5
Slide 5 text
- 主な要件 - コメント長押しで編集開始できるようにする - 編集中は該当コメントにハイライトをつける - 編集成功後、該当のコメントを更新する 改修内容:送信済コメントを編集できるようにする
Slide 6
Slide 6 text
対象画面での課題
Slide 7
Slide 7 text
課題:状態管理の複雑化によるリスク - 1画面に複数のStore(State)が共存 - => 仕様把握の難易度や改修時の不整合リスク大
Slide 8
Slide 8 text
リファクタリングのアプローチ
Slide 9
Slide 9 text
- Goal - 状態管理の複雑化 を解消する - => 1つのStateに状態を集約する - スコープ外 - 改修に関連しない他のStore(State)との統合(工数が膨大になるため) リファクタリングの方針
Slide 10
Slide 10 text
リファクタリング: 1つのStateに状態を集約する
Slide 11
Slide 11 text
最終的なクラス構成 before after
Slide 12
Slide 12 text
成果と学び
Slide 13
Slide 13 text
- 情報源の一元化 - 単一のStoreにStateを集約し、情報の一貫性を担保 => 変更必要箇所が特定しやすくなり、不整合リスクが軽減 - 追加改修の容易化 - 機能改修が容易になり、実装者・レビュワー双方の負担が軽減 リファクタリングの成果
Slide 14
Slide 14 text
- SSOT(Single Source of Truth)の重要性 - 分散した状態コードの読解に苦労した経験から、情報を一箇所に集約する ことでコードの管理と変更が容易になる重要性を改めて実感。 - リファクタ判断の重要性 - 「回り道」に見えても、リファクタで結果的に効率が向上することもある - 開発効率を阻害する負債があるなら、負の連鎖を断ち切る判断と提案する 勇気が重要 学び
Slide 15
Slide 15 text
Sansanの最新アーキテクチャにご興味がある方へ https://buildersbox.corp-sansan.com/entry/2024/08/21/110000 Sansanアプリにおける Kotlin Multiplatform導入の効果とアーキテクチャ紹介
Slide 16
Slide 16 text
No content