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.4k
Other Decks in Programming
See All in Programming
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
1.1k
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
130
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
480
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
360
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
200
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
190
その節約、円になってますか?
isamumumu
1
640
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
200
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
4
320
メールのエイリアス機能を履き違えない
isshinfunada
0
200
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.4k
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
4
1.8k
Featured
See All Featured
How GitHub (no longer) Works
holman
316
150k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Discover your Explorer Soul
emna__ayadi
2
1.2k
First, design no harm
axbom
PRO
2
1.2k
Technical Leadership for Architectural Decision Making
baasie
3
450
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
480
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.2k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.2k
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