Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Mosh-ヘンリー合同ギベンLT-MobXの感想.pdf
Search
TASUKU
March 18, 2025
0
1.2k
Mosh-ヘンリー合同ギベンLT-MobXの感想.pdf
TASUKU
March 18, 2025
Tweet
Share
More Decks by TASUKU
See All by TASUKU
LT for making a goal
taskkawahara
1
300
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.6k
Music & Morning Musume
bryan
46
6.7k
Optimizing for Happiness
mojombo
379
70k
Balancing Empowerment & Direction
lara
2
580
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
6k
The Cult of Friendly URLs
andyhume
79
6.5k
Side Projects
sachag
455
43k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Writing Fast Ruby
sferik
628
62k
Transcript
Copyright © Henry, Inc. All rights reserved. MobXを導入されたメンバー視点 Redux, Jotaiと比較して
川原 祐 (@task-k0414) Mosh × ヘンリー合同技術勉強会
Copyright © Henry, Inc. All rights reserved. name: 川原 祐
(@task-k0414) job: Frontend Engineer team: EMR joined: 去年7月 hobby: - 娘(2歳) に遊ばれること - サ活 - 麻雀 - 社内大会でトップとりました! - キャンプ - 行けてない - ゲーム - モンハンやりたいとおもって... 自己紹介
Copyright © Henry, Inc. All rights reserved. 状態管理にMobXを 導入した話
Copyright © Henry, Inc. All rights reserved. 先日、弊社アーキテクトの @creasty がMobXを導入した話をテックブログに出
しました - https://dev.henry.jp/entry/mobx MobXを導入した話
Copyright © Henry, Inc. All rights reserved. MobXとは?
Copyright © Henry, Inc. All rights reserved. • シグナルベースの状態管理ライブラリで、関数型リアクティブプログラミン グを透過的に適用
• 「アプリケーションの状態から導出できるものは、自動的に導出されるべ き」という哲学 MobXとは?(概念)
Copyright © Henry, Inc. All rights reserved. • シンプルさ:ボイラープレートが少なく、直感的なコード記述が可能 •
最適なレンダリング:状態変更を自動的に追跡し、必要な時だけ再計算・再 レンダリング • アーキテクチャの自由度:特定のUIフレームワークに依存せず、アプリケー ション状態を管理可能 • 透過的な関数型リアクティブプログラミング(TFRP):グリッチフリー、同 期的、予測可能、効率的な実装 MobXとは?(特徴)
Copyright © Henry, Inc. All rights reserved. • シンプルさ:ボイラープレートが少なく、直感的なコード記述が可能 •
最適なレンダリング:状態変更を自動的に追跡し、必要な時だけ再計算・再 レンダリング • アーキテクチャの自由度:特定のUIフレームワークに依存せず、アプリケー ション状態を管理可能 • 透過的な関数型リアクティブプログラミング(TFRP):グリッチフリー、同 期的、予測可能、効率的な実装 MobXとは?(特徴)
Copyright © Henry, Inc. All rights reserved. • クラスベースで書けて、関数型プログラミングとオブジェクト指向のいいと こ取りできそうなライブラリ、という理解。
• 複雑なドメインをクラスベースで整理して書けそう。 MobXとは?(要するに)
Copyright © Henry, Inc. All rights reserved. 複雑なドメインを豊か に表現できる
Copyright © Henry, Inc. All rights reserved. クラスベースでドメインモデルを振る舞いまで集約して書ける カプセル化によって重要なビジネスロジックをドメインモデルに隠蔽できる 入れ子になっている複雑なドメインも直感的に実装できる
複雑なドメインを豊かに表現できる 医師の処方の指示 薬と用法などの 指示のブロック 医薬品とその成分量や 用法などの内容
Copyright © Henry, Inc. All rights reserved. 医師の処方の指示 薬と用法などの 指示のブロック
医薬品とその成分量や 用法などの内容 クラスベースでドメインモデルを振る舞いまで集約して書ける カプセル化によって重要なビジネスロジックをドメインモデルに隠蔽できる 入れ子になっている複雑なドメインも直感的に実装できる 複雑なドメインを豊かに表現できる 医師や患者の紐づ け 飲み合わせな どの禁忌 投薬日数 調剤の指示 医薬品の種類 成分量の算出
Copyright © Henry, Inc. All rights reserved. 他の状態管理ライブ ラリと比較して
Copyright © Henry, Inc. All rights reserved. 入れ子構造を持ったモデルを表現する(MobX Class)
Copyright © Henry, Inc. All rights reserved. Redux
Copyright © Henry, Inc. All rights reserved. Jotai
Copyright © Henry, Inc. All rights reserved. MobX vs Jotai
Copyright © Henry, Inc. All rights reserved. MobX vs Jotai
Copyright © Henry, Inc. All rights reserved. • オブジェクト指向の知識があれば理解しやすい •
デコレーターさえ受け入れられれば、すごく簡単にかける • リアクティブプログラミングの考え方に慣れる必要がある 比較してMobXのいいところ
Copyright © Henry, Inc. All rights reserved. • React Functional
Component は基本的にイミュータブルで単方向フローの データを要求している • MobXでは observer() を使って High-Order Component の形でリアクティ ビティを提供する • 暗黙的なところが辛くなることもありそう • Jotaiとかできっちり関数型ドメインモデリングできるとかっこいい! とはいえ,,,
Copyright © Henry, Inc. All rights reserved. • モデルに状態を持っているので、コンポーネント単位で複雑でない場合は ViewModelを噛まさずにDomain
Modelに直接書いている部分がある • ある程度整理しないと、Domain Model が境界を超えて肥大化するのでは • 暗黙的なところが辛くなる可能性はある。やめたくなったときにすんなりと いこうできるのか? • ある程度はクラスベースを維持しつつも不変性や単方向フローに寄らせるこ とはできそう 今後についての個人の感想
Copyright © Henry, Inc. All rights reserved. • 最近流行りの AI駆動開発だと、関数型、純粋関数に寄ったほうがよいので
は? • 実はコード量が少なく、文脈がある方がLLMもミスが少ない可能性 • 世の中のコードがOOPの方が多い説 おまけ
Copyright © Henry, Inc. All rights reserved. https://note.com/henry_app 会社ブログやってます We
are hiring!! https://henry.jp/ Thank you https://dev.henry.jp/ 技術ブログやってます