Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
͍͔ʹͯ͠ GraphQL Λ ৫ʹಋೖ͢Δ͔ (৽ن։ൃฤ) @qsona 2022-08-31 GraphQL Tokyo #18 Lightning Talks
Slide 2
Slide 2 text
whoami • @qsona • Web Engineer at ελσΟαϓϦ (ϦΫϧʔτ) • Node.js / Rails / GraphQL / Microservices • Engineering Manager ͡Ί·ͨ͠
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
https://studysapuri.jp/course/junior/release-2022-spring/
Slide 5
Slide 5 text
৽ن։ൃϓϩδΣΫτͷհ • ελσΟαϓϦͷ͏ͪɺதֶੜͷϢʔβʔΛରʹ αʔϏεΛϦχϡʔΞϧ͢ΔϓϩδΣΫτ • ։ൃ͢Δͷ • iOS / Android / PC Web Apps • Backend APIs • ίϯςϯπΛཧ͢ΔγεςϜ • ։ൃظؒ: 2020-04 ։࢝, 2022-02 ϦϦʔε (ͦͷޙܧଓͯ͠։ൃӡ༻த) ֶशαʔϏεΛϑϧεΫϥονͰ ࡞ΔΠϝʔδ
Slide 6
Slide 6 text
ΞʔΩςΫνϟਤ (Ұ෦ൈਮ)
Slide 7
Slide 7 text
͍͔ʹͯ͠ GraphQL Λಋೖ͔ͨ͠ • ৽͍ٕ͠ज़Λ৫ʹಋೖ͢Δʹɺϋʔυϧ͕͋Δ • ಛʹɺ։ൃϝϯόʔͷೲಘײ͕ॏཁ • ΈΜͳ͕ʮ͍͍ͨʯͱࢥ͑ɺଞͷ͍Ζ͍Ζͳ՝ νʔϜͰڠྗͯ͠ղܾͰ͖Δ • νʔϜʹ GraphQL Λಋೖ͢ΔաఔͰɺ͍͔ʹͯ͠ ʮνʔϜΈΜͳͷٕज़ʯʹͳ͍ͬͯͨͷ͔
Slide 8
Slide 8 text
͓͠ͳ͕͖ • ͳͥಋೖ͍ͨ͠ͷ͔ΛޠΔ • ։ൃମݧʹϑΥʔΧε͢Δ • ৫Ұॹʹઃܭ͢Δ • εΩʔϚۦಈ։ൃͷจԽΛ࡞Δ • ؒΛ૿͢
Slide 9
Slide 9 text
1) ͳͥಋೖ͍ͨ͠ͷ͔ΛޠΔ • ·ͣతʹɺϝϯόʔΈΜͳͷೲಘײΛಘ͍ͨ • ͜Ε͕͋ΕɺʮҰ୴ࢼͯ͠ΈΔʯͱ͜Ζ·ͰਐΊΔ
Slide 10
Slide 10 text
ͳͥ GraphQL Λಋೖ͔ͨͬͨ͠ͷ͔ (1) • εΩʔϚۦಈ։ൃʹΑΓɺطଘͷ৫త ՝ΛղܾͰ͖Δ • Client ͔Β Backend ·Ͱશͯ GraphQL ʹ͢Δ͜ͱͰ ։ൃੜ࢈ੑΛߴΊΔ͜ͱ͕Ͱ͖Δ • ... ͳͲ͕Ұൠతͳɺࠓճ͋·ΓਂງΓ ͠ͳ͍ (ଞࢿྉͷϦϯΫష͓͖ͬͯ·͢)
Slide 11
Slide 11 text
ͳͥ GraphQL Λಋೖ͔ͨͬͨ͠ͷ͔ (2) • ৫ಛ༗ͷ: ʮωΠςΟϒΞϓϦޙ͍։ൃʯ • Backend + Web Frontend Λ͔ͶΔ։ൃऀ͕ଟ͍ • Web ΞϓϦઌߦɺωΠςΟϒΞϓϦʹޙ͔Β࣮͞ΕΔػೳ͕ଟ͔ͬͨ • API υΩϡϝϯτ͕ͳ͔ͬͨΓɺWeb ͷը໘ʹدͬͨ API ༷ʹͳ͍ͬͯͯɺ ޙ͔ΒωΠςΟϒΞϓϦͷ࣮࣌ʹࠔΔ͜ͱ͕ଟ͔ͬͨ • GraphQL ͜ΕΒΛղܾ͢Δ
Slide 12
Slide 12 text
݁Ռ • ͡Ί͔Β͜ͷతҙࣝΛڞ༗͍͕ͯͨ͠ɺυΩϡϝϯτΛల։͢Δ ͚ͩͰɺਁಁ͍ͯͨ͠Θ͚Ͱͳ͔ͬͨ • ͦΕʹΑͬͯɺҰ෦ͷϝϯόʔ͔Βಋೖʹٙͷ • ࣄ͋Δ͝ͱʹࣗͷݴ༿ͰޠΔΑ͏ʹͨ݁͠Ռɺ ಋೖʹલ͖ͳϝϯόʔ͕૿͑ͨ (ͱࢥ͏) • ͱΓ͋͑ͣࢼͯ͠ΈΔϑΣʔζΛ1,2ϲ݄ઃ͚Δ͜ͱ͕Ͱ͖ͨ
Slide 13
Slide 13 text
2) ։ൃମݧʹϑΥʔΧε͢Δ • GraphQL ಋೖͷओͳత։ൃମݧͷ্Ͱ͋Δ͕ɺ ͦΕ͕ͳ͍ͱಋೖ͢Δཧ༝͕ͳ͘ͳΔ • ։ൃऀͷମݧ͕ѱ͍ͱɺಋೖͷϞνϕʔγϣϯ͕͘ͳΔ
Slide 14
Slide 14 text
ྑ͍ϓϥΫςΟεΛద༻͢Δ • ...͋Δ͍ɺϔΠτ͕ͨ·ΔઃܭΛճආ͢Δ • ආ͚ͨઃܭͷྫ • Client ʹ Repository Λஔ͘ • GraphQL Gateway + Backend REST/gRPC ύλʔϯ • ։ൃऀ͕ "ͳΜ͔໘ͩͳ" ͱࢥ͏͜ͱ͕ଟ͔ͬͨΒෛ͚
Slide 15
Slide 15 text
ςΟʔνϯάɾίʔνϯά • ৽͍֓͠೦ͳͷͰɺͦΕΛʹ͚ͭΔʹ ͕͔͔࣌ؒΔ • ಛʹϙΠϯτʹͳΔ͜ͱ • όοΫΤϯυ: ࠶ؼతͳ resolve • ϑϩϯτΤϯυ: Fragment colocation • ϫʔΫγϣοϓϞϒϓϩάϥϛϯάͳͲΛ௨ͯ͠ɺ ঃʑʹ৫ͷࣝͱͯ֫͠ಘ͍ͯ͘͠
Slide 16
Slide 16 text
݁Ռ • ͦͦνʔϜϝϯόʔʹܙ·Ε͍ͯͨͷલఏͱͯ͠... • ͍ΘΏΔ GraphQL ΞϨϧΪʔͷΑ͏ͳঢ়ଶى͜Βͳ͔ͬͨ • શମతʹ GraphQL ͷཧղ͕ߴ͘ɺ͍͜ͳ͍ͯ͠Δঢ়ଶ Ͱɺຊ֨తͳ։ൃΛ։࢝Ͱ͖ͨ
Slide 17
Slide 17 text
3) ৫Ұॹʹઃܭ͢Δ • ٕज़ͱ৫දཪҰମͱͳΓɺϓϩμΫτͷՁΛੜΈग़͢ɻ ࢦ͢৫ͷߏͱٕज़͕Ұக͍ͯ͠ͳ͍ͱɺ ։ൃੜ࢈ੑߴ·Βͳ͍
Slide 18
Slide 18 text
BFF vs GraphQL • BFF (Backend for Frontend) ͷಋೖΛٻΊΔ͕ ωΠςΟϒΤϯδχΞΛத৺ʹ͋ͬͨ (͕ɺରͨ͠) • BFF Backend - Frontend ͷ৫Λૄʹ͍ͨ͠ͱ͖༗ޮ • ʮωΠςΟϒޙ͍։ൃʯͷͭΒΈΛܦݧ͍ͯ͠ΔͷͰɺ ωΠςΟϒΤϯδχΞ͔Β BFF ͷఏҊ͕ग़ͯ͘ΔͷेཧղͰ͖Δ • ͔͠͠ɺࠓճ৽ن։ൃͰ1ͭͷϓϩμΫτΛ࡞্͍ͬͯ͘Ͱɺ Ή͠ΖີͰ͋Γ͍ͨͱߟ͑ͨ
Slide 19
Slide 19 text
GraphQL & One Team • ͜Ε·ͰͷʮωΠςΟϒޙ͍։ൃʯͷΞϯνςʔθͱͯ͠ ʮOne Teamʯ͕ඪޠʹ • ࢦ͍ͨ͠৫૾ʹ͔ͬͯਐΜͰ͍͖ɺ ٕज़ͱ৫͕Ϛον͢Δঢ়ଶʹͳͬͨ
Slide 20
Slide 20 text
݁Ռ • ϦϦʔεલͷऴ൫Ͱٕज़࣠ͰͷνʔϜ͚ʹͳ͕ͬͨɺ One Team తͳจԽ຺ʑͱड͚ܧ͕ΕͨΑ͏ʹࢥ͏ • ຊϦϦʔεޙɺBackend / Web Frontend / Native ͷΤϯδχΞ ͕ࠞͱͳΔεΫϥϜνʔϜΛ3ͭ݁
Slide 21
Slide 21 text
ͦͷଞ (࣌ؒΓͳ͍ͷͰྲྀ͢) • εΩʔϚۦಈ։ൃͷจԽΛ࡞Δ • ӈهࣄͥͻݟͯΈ͍ͯͩ͘͞ • ؒΛ૿͢ • νʔϜͰ GraphQL ΛֶͿձΛͬͯΈͨΓ • GraphQL ͕͖ͳΤϯδχΞΛνʔϜʹ༠ͬͨΓ
Slide 22
Slide 22 text
·ͱΊ? • ͳʹ͔৽͍͠ͷΛಋೖ͢Δͱ͖ɺ ͦΕʹΑͬͯʮશһ͕ಘΛ͢ΔʯΑ͏ʹઃܭ͢Δͷ͕ίπ • ࣗಘ͢Δͷ͔ͩΒɺଞͷΈΜͳಘͰ͖ΔΑ͏ʹઃܭ͢Δ
Slide 23
Slide 23 text
We are hiring! • GraphQL ΊͬͪΌͬͯ·͢ • GraphQL ͖ͳํͱ͔ɺֶशαʔϏεʹڵຯ͋Δํͥͻ • ελσΟαϓϦͱͯ͠࠾༻ͬͯ·͢ • Twitter @qsona ʹ DM ͍ͩ͘͞! ΧδϡΞϧ໘ஊ͠·͠ΐ͏ʙ