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
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.5k
Other Decks in Programming
See All in Programming
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
180
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
Loosening the Reins: Go Generics Get More Flexible
kuro_kurorrr
0
360
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
270
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
130
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
230
Oxlintはいいぞ(続)
yug1224
1
510
コンパウンドプロダクト開発のためのローカルプロセスマネージャー再発明 #layerxgo
izumin5210
0
600
MySQLとPostgreSQLって何が違うの?
akagami
0
150
LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線
makun
0
250
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
570
How I Won Prize Money at a Hackathon Using Codex and Symphony Alpha
yasei_no_otoko
0
130
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.5k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Making the Leap to Tech Lead
cromwellryan
135
10k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Rails Girls Zürich Keynote
gr2m
96
14k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
How to make the Groovebox
asonas
2
2.4k
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