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
19
6.4k
GraphQLサーバーを作って味わった天国と地獄
ryohysk
August 24, 2019
Tweet
Share
Other Decks in Programming
See All in Programming
minodriven
37
28k
thatjeffsmith
0
1.5k
matyo91
1
150
fr0gger
2
2.8k
devinjeon
2
870
chatii
2
290
adarapata
1
470
ykpythemind
0
150
sh_akira
3
120
shiba6v
0
200
sysrich
0
250
kulkarniankita09
0
270
Featured
See All Featured
jeffersonlam
330
15k
gr2m
84
11k
shpigford
166
19k
hannesfritz
29
980
bryan
32
3.5k
mongodb
23
3.9k
sachag
267
17k
afnizarnur
176
14k
bkeepers
PRO
408
58k
carmenhchung
34
1.6k
phodgson
88
4k
trallard
15
820
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