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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ryohysk
August 24, 2019
Programming
7.6k
20
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GraphQLサーバーを作って味わった天国と地獄
ryohysk
August 24, 2019
More Decks by ryohysk
See All by ryohysk
AI駆動時代の新規事業の作り方
ryohysk
3
1.3k
Other Decks in Programming
See All in Programming
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
120
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
220
AI時代のUIはどこへ行く?その2!
yusukebe
21
7.1k
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
230
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
400
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
2k
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.2k
3Dシーンの圧縮
fadis
1
770
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
2.1k
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.6k
A2UI という光を覗いてみる
satohjohn
1
130
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
130
Featured
See All Featured
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
280
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
200
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
560
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
130
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
420
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
590
Transcript
www.companyname.com © 2016 Jetfabrik Multipurpose Theme. All Rights Reserved. 1
GraphQLαʔόʔ Λ࡞ͬͯຯΘͬͨ ఱࠃͱࠈ גࣜձࣾϏσΦϚʔέοτ ૣࡔ ྋ Kotlin Fest 2019 2019/08/24
2 ϓϩϑΟʔϧ ɾגࣜձࣾϏσΦϚʔέοτͷαʔόʔαΠυΤϯδχΞ ɾKotlinͱGraphQLΛͬͨAPIΛઈࢍ։ൃதʢ9্݄०ʹ ฐࣾVODαʔϏεͷiOSΞϓϦΛϦχϡʔΞϧ༧ఆʣ ɾϚονϯάΞϓϦͰΓ߹ͬͨ൴ঁͱ࠷ۙผΕͯই৺த Kotlin Java Go PHP
Ryo Hayasaka @hayaboytech
www.companyname.com © 2016 Jetfabrik Multipurpose Theme. All Rights Reserved. 3
GraphQLͱKotlinΛϓϩμΫτʹ࠾༻ͨ͠ཧ༝ ͳ͢͜ͱ ఱࠃΈʢ3ͭʣ ࠈΈʢ2ͭʣ
4 GraphQLͱKotlinΛϓϩμΫτʹ࠾༻ͨ͠ཧ༝ APIʹਫ਼௨͍ͯ͠ͳ͍ਓͰ؆୯ʹૢ࡞Մೳ ΫϥΠΞϯτπʔϧ͔Βײతʹૢ࡞ GraphQLΫϥΠΞϯτͰӾཡͰ͖Δ = ༷ ༷ͱ࣮͕ζϨͳ͘ͳΔ Spring Boot༻ͷ͋Γ·͢
ϥΠϒϥϦΛͬͯߴʹ։ൃ αʔόʔαΠυKotlinΛ͏͜ͱͰ ΞϓϦΤϯδχΞͱྑ͠ʹ 02 03 04 01 ୭Ͱ͍͍͢ ։ൃ͍͢͠
www.companyname.com © 2016 Jetfabrik Multipurpose Theme. All Rights Reserved. 5
ࢼ͠ʹΫΤϦΛ͛ͯΈ͍ͨ ߹ʹ͍͍ͪͪॻ͘ͷ໘ɻ ADD QUERYADD FRAGMENT ͰߴʹΫΤϦΛ࡞Ͱ͖Δɻ ⅰ) ΫΤϦͷࣗಈੜ͕Ͱ͖Δ LightɺDarkɺDraculaͷࡾͭͷ ςʔϚ͔Β͖ͳςʔϚΛઃఆ ͯ͠͏͜ͱ͕Ͱ͖Δɻ ⅱ) ΧελϜςʔϚ͕ઃఆͰ͖Δ MacWindowsΞϓϦɺChromeFirefoxͷ֦ுػೳఏڙ͍ͯ͠ΔAltair(ΞϧλΠϧ)ɻ https:/ /altair.sirmuel.design/ Altair(GraphQL ΫϥΠΞϯτ)͕༏ल ఱࠃΈ①
6 See You Next Time The Break! ͜͜Λԡ͚ͩ͢Ͱ ϦΫΤετ෦ʹ Ճ͞ΕΔ
ϦΫΤετ෦ Ϩεϙϯε෦ υΩϡϝϯτ෦
www.companyname.com © 2016 Jetfabrik Multipurpose Theme. All Rights Reserved. 7
ϑΟʔϧυʹΞΫηε͚ͨ࣌ͩ͠औಘ ॲཧ͕ΔΑ͏ʹͰ͖Δɻ ϚΠΫϩαʔϏεͱ૬ੑ͕͍͍ɻ graphql-spring-bootͷϥΠϒϥϦΛ ͏ͱɺGraphQLResolverΛ͏͚ͩͰ ؆୯ʹ࣮Ͱ͖Δɻ ແବͳ௨৴ΛΒͤͳ͍ ఱࠃΈ② ྫ ϙΠϯτऔಘॲཧ͕ Δ ϙΠϯτऔಘॲཧ͕ Βͳ͍
www.companyname.com © 2016 Jetfabrik Multipurpose Theme. All Rights Reserved. 8
GraphQLΛͬͯΈ͍ͨਓ͕݁ߏ͍ͨɻ ΫΤϦͷֶशίετ͘ɺAltairͷ༻ײධɻ ΞϓϦΤϯδχΞσβΠφʔ͔ΒϞςΔ ఱࠃΈ③
www.companyname.com © 2016 Jetfabrik Multipurpose Theme. All Rights Reserved. 9
εΩʔϚϑΝΠϧҎ֎ͰAPIͷఆٛΛͯ͠͠·͏ͱɺυΩϡϝϯτͷೋॏཧʹͳͬͯ ͠·͏ɻ GraphQLͰଞͷυΩϡϝϯτπʔϧͰཧ͠Α͏ͱ͠ͳ͍͜ͱɻ ΞϓϦΤϯδχΞ͕͑ΔMockαʔόʔૣΊʹ༻ҙ͠Α͏ɻ ༷ͱ࣮͕ζϨͨʂʁʢΞϯνύλʔϯʣ ࠈΈ①
www.companyname.com © 2016 Jetfabrik Multipurpose Theme. All Rights Reserved. 10
ఱ ࠃ Έ ② Ͱ औ Γ ্ ͛ ͨ Α ͏ ͳ GraphQLResolverΛ࣮ͬͨΛ҆қ ʹͯ͠͠·͏ͱɺϨεϙϯεʹͦͷϑ Οʔϧυ͕ෳग़ݱ͢Δ͚ͩͰN+1ͷ ௨৴͕ൃੜͯ͠͠·͏ɻ σʔλϩʔμʔΛ͓͏ɻ N+1ͷରॲ ࠈΈ② ྫ ϦΫΤετ ෳͷϢʔβʔΛऔಘ Ϩεϙϯε ϙΠϯτͷ͚ͩ௨৴ ௨৴ ௨৴ ௨৴ ௨৴
www.companyname.com © 2016 Jetfabrik Multipurpose Theme. All Rights Reserved. 11
ⅰ) ·ͱΊͯऔಘͰ͖ΔϏδωεϩδοΫΛ࡞͢Δ(όϧΫϑΣον) ࠈΈ② - σʔλϩʔμʔ࣮खॱᾜ ʲࢀߟʳ
www.companyname.com © 2016 Jetfabrik Multipurpose Theme. All Rights Reserved. 12
ⅱ) σʔλϩʔμʔʹϏδωεϩδοΫΛొ͢Δ ࠈΈ② - σʔλϩʔμʔ࣮खॱᾝ ʲࢀߟʳ
www.companyname.com © 2016 Jetfabrik Multipurpose Theme. All Rights Reserved. 13
ⅲ) ొͨ͠σʔλϩʔμʔΛݺͼग़͢ ࠈΈ② - σʔλϩʔμʔ࣮खॱᾞ ʲࢀߟʳ
www.companyname.com © 2016 Jetfabrik Multipurpose Theme. All Rights Reserved. 14
·ͱΊ 9݄ʹiOSΞϓϦϦχϡʔΞϧ༧ఆ https:/ /creators.videomarket.co.jp/ ΫϦΤΠλʔζϒϩά ɾϥΠϒϥϦΛ͙͑͢ʹ։ൃ͕Ͱ͖Δ ɾGraphQLαʔόʔΛ࡞ΔͱتΕΔ ɾN+1ཁҙ
www.companyname.com © 2016 Jetfabrik Multipurpose Theme. All Rights Reserved. 15
Thank You Ryo Hayasaka tw:@hayaboytech