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
GraphQLでの型渡しとデータフェッチの最適化
Search
林憲吾
September 19, 2024
Technology
1
470
GraphQLでの型渡しとデータフェッチの最適化
「テックリードの悩みを解決するGraphQLの話」にて登壇した資料です。
https://estie.connpass.com/event/328999/
林憲吾
September 19, 2024
Tweet
Share
More Decks by 林憲吾
See All by 林憲吾
GraphQLを安全に使うためにやっていること
hayashikengo
2
720
電子署名サービスの品質戦略
hayashikengo
1
870
CTOの役割と、カルチャーの醸成
hayashikengo
1
83
Other Decks in Technology
See All in Technology
AIエージェント最前線! Amazon Bedrock、Amazon Q、そしてMCPを使いこなそう
minorun365
PRO
14
5.1k
250627 関西Ruby会議08 前夜祭 RejectKaigi「DJ on Ruby Ver.0.1」
msykd
PRO
2
270
Tech-Verse 2025 Keynote
lycorptech_jp
PRO
0
100
Prox Industries株式会社 会社紹介資料
proxindustries
0
290
Navigation3でViewModelにデータを渡す方法
mikanichinose
0
220
Абьюзим random_bytes(). Фёдор Кулаков, разработчик Lamoda Tech
lamodatech
0
340
標準技術と独自システムで作る「つらくない」SaaS アカウント管理 / Effortless SaaS Account Management with Standard Technologies & Custom Systems
yuyatakeyama
3
1.2k
Clineを含めたAIエージェントを 大規模組織に導入し、投資対効果を考える / Introducing AI agents into your organization
i35_267
4
1.6k
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
26k
生成AI時代の開発組織・技術・プロセス 〜 ログラスの挑戦と考察 〜
itohiro73
0
150
20250625 Snowflake Summit 2025活用事例 レポート / Nowcast Snowflake Summit 2025 Case Study Report
kkuv
1
310
あなたの声を届けよう! 女性エンジニア登壇の意義とアウトプット実践ガイド #wttjp / Call for Your Voice
kondoyuko
4
440
Featured
See All Featured
A better future with KSS
kneath
239
17k
What's in a price? How to price your products and services
michaelherold
246
12k
Visualization
eitanlees
146
16k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
We Have a Design System, Now What?
morganepeng
53
7.7k
Facilitating Awesome Meetings
lara
54
6.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.3k
Scaling GitHub
holman
459
140k
Building Adaptive Systems
keathley
43
2.6k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
KATA
mclloyd
29
14k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.3k
Transcript
GraphQLでの型渡しとデータフェッチの最適化 株式会社PICK 林憲吾 Hayashi Kengo
https://twitter.com/kenbu05 株式会社PICK CTO 林憲吾 Hayashi Kengo 自己紹介 ①経歴 ②趣味 学生時代
スペースマーケット (インターン ) 2018-2019 ヤフー 2019-2022 スリーシェイク 2022-現在 PICK CTO 筋トレ・バイク・釣り
はじめに GraphQLでの型渡しとデータフェッチの最適化 01. AtomicDesign と colocationの相性 02. 03. 目次 まとめ
04.
01. はじめに
PICKはどんなプロダクトを作っているのか? 01. はじめに 電子契約 案件管理 顧客管理 and more…
PICKの技術スタック 01. はじめに
GraphQLを効率的に扱う為にしたこと 01. はじめに データフェッチ最適化 → colocationの概念取り入れた コンポーネントでの Propsの扱いを楽に → fragmentとgraphql-codegenを取り入れた
02. GraphQLでの型渡しとデータフェッチの最適化
colocationとは? 02. GraphQLでの型渡しとデータフェッチの最適化 データの取得ロジックと、そのデータを使う UIコンポーネントを 同じ場所にまとめて管理するという考え方。
なぜ取り入れたか? 02. GraphQLでの型渡しとデータフェッチの最適化 - コンポーネント内にデータ取得ロジックが集約 → 開発効率とメンテナンス性の向上 → データフェッチの最適化
colocation具体例(ヘッダーの場合) 02. GraphQLでの型渡しとデータフェッチの最適化
コンポーネントのデータ定義が共通化できる 02. GraphQLでの型渡しとデータフェッチの最適化
共通化される場合の GraphQLの定義 02. GraphQLでの型渡しとデータフェッチの最適化
graqhpl-codegenとは? 02. GraphQLでの型渡しとデータフェッチの最適化 GraphQLスキーマやクエリをもとに、 型安全なコードを自動生成するライブラリ
graqhpl-codegenをなぜ取り入れたか? 02. GraphQLでの型渡しとデータフェッチの最適化 - フロントエンド側で、 GraphQLを型安全に扱う為。 → GraphQLのメリットを最大限享受 → Fragmentの型生成が
colocation と相性良かった
graphql-codegen実装例①( hooks編) 02. GraphQLでの型渡しとデータフェッチの最適化
graphql-codegen実装例②( fragment編) 02. GraphQLでの型渡しとデータフェッチの最適化
まとめ 02. GraphQLでの型渡しとデータフェッチの最適化 - colocation・graphql-codegen 導入すると → データに依存した Component Propsの型生成を自動化
→ 保守性・開発効率上がる → Queryの使いまわしが減り、データフェッチの最適化
03. AtomicDesign と colocation の相性
AtomicDesignにおけるcolocation相性 03. GraphQLでのデータフェッチ最適化 - 必ずしも相性が良いとは限らない、、、 - データの再利用性 vs UIの再利用性の衝突 -
各階層にFragmentが絡むことでのデータ階層の複雑性の増加 - 依存関係の複雑化
AtomicDesignにおけるcolocationの落とし所 03. GraphQLでのデータフェッチ最適化 - Fragmentルール化 - 上位コンポーネントに集約 - 必要な場合にのみ Colocationを使う
- Prop Drillingを活用する
04. まとめ
まとめ 04. - colocation と graphql-codegen を導入すると、 GraphQLの メリットを享受できる -
AtomicDesign と colocation は必ずしも相性が良い訳ではなく、 導入時には要検討
最後に 04. - Twitter/Zennやってます!ご興味あれば見てみてください! - https://x.com/kenbu05 - https://zenn.dev/kenghaya -
ご清聴ありがとうございました
None