複雑なState管理からの脱却
by
SansanTech
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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