Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
GraphQLサーバーを作って味わった天国と地獄
ryohysk
August 24, 2019
Programming
20
6.8k
GraphQLサーバーを作って味わった天国と地獄
ryohysk
August 24, 2019
Tweet
Share
Other Decks in Programming
See All in Programming
実践エクストリームプログラミング / Extreme Programming in Practice
enk
1
340
ANR overview at Uber + Leveraging ApplicationExitInfo API
yhartanto
0
320
Reactアプリケーションのテスト戦略
0906koki
10
4.6k
1時間半で克服するJavaScriptの非同期処理/async_javascript_kokufuku
marchin1989
2
590
Node-RED 3.0 新機能紹介
utaani
0
100
IE Graduation Certificate
jxck
6
4.7k
Git・Git-Flowについて
nerusan_main
0
410
PythonユーザによるRust入門
rmizuta3
9
3k
Get Ready for Jakarta EE 10
ivargrimstad
0
1.5k
Jakarta EE 10 and Beyond
ivargrimstad
0
1.6k
trocco® の品質を守る、とても普通な取り組み
kekekenta
0
350
Java アプリとAWS の良い関係 - AWS でJava アプリを実行する一番簡単な方法教えます / AWS for Javarista
kanamasa
2
1.2k
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
225
120k
BBQ
matthewcrist
74
7.9k
The Cult of Friendly URLs
andyhume
68
4.8k
Automating Front-end Workflow
addyosmani
1351
200k
Scaling GitHub
holman
451
140k
Web development in the modern age
philhawksworth
197
9.3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
151
13k
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
172
8.4k
Three Pipe Problems
jasonvnalue
89
8.7k
From Idea to $5000 a Month in 5 Months
shpigford
373
44k
Six Lessons from altMBA
skipperchong
14
1.4k
Clear Off the Table
cherdarchuk
79
280k
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