Upgrade to Pro — share decks privately, control downloads, hide ads and more …

技術を的に当てる技術について - GraphQL を入れ直した話 / 吉祥寺.pm28

Altech
January 27, 2022
5.3k

技術を的に当てる技術について - GraphQL を入れ直した話 / 吉祥寺.pm28

吉祥寺.pm28 でお話ししました
https://kichijojipm.connpass.com/event/236031/

追記:Podcast で解説した
https://anchor.fm/wantedly-dev/episodes/--GraphQL--w-Altech-e1edkrv

Altech

January 27, 2022
Tweet

Transcript

  1. ٢঵ࣉQN4PIFJ5BLFOP
    ٕज़Λతʹ౰ͯΔٕज़ʹ͍ͭͯ
    (SBQI2-ΛೖΕ௚ͨ͠࿩

    View Slide

  2. (SBQI2-ΛೖΕ௚ͨ͠࿩

    • (SBQI2-ɿ8FC"1*ʹؔ࿈͢Δٕज़ͷҰͭ
    • ೥લ͘Β͍ʹ8BOUFEMZͷαʔϏεͷҰ෦ʹೖͬͨ
    • ͪΐͬͱҧ͏ܗͰೖͬͪΌͬͨͷͰɺ௚ۙͰೖΕ௚ͨ͠ʢٕज़ͷϦϒʔτʣ
    • ٕज़ΛԿ͔ͷ໨తʹ޲͚ͯ౤ࣹ͢Δ
    • ্ख͘తʹ౰͍ͨͬͯΔ৔߹ɿ։ൃ͕͠΍͘͢ͳΓɺαʔϏε͕ྑ͘ͳΔ
    • త͔Βେ͖͘֎Ε͍ͯΔ৔߹ɿྑ͘ͳΒͣʹٕज़͕׆͖ͯͳ͍ঢ়ଶʹͳΔ

    View Slide

  3. ٕज़Λ্ख͘తʹ౰ͯΔʹ͸

    Ͳ͏͢Ε͹Α͔ͬͨͩΖ͏͔ʁ🎯
    ʢͱ͍͏͜ͱΛߟ͑ͯΈ͍ͨʣ

    View Slide

  4. ࣗݾ঺հ

    • ໊લɿ4PIFJ5BLFOP
    • ձࣾɿ΢ΥϯςουϦʔגࣜձࣾΞʔΩςΫτ
    • ޷͖ͳݴޠɿ3VCZ
    • ࠷ۙॻ͍ͯΔݴޠɿ5ZQF4DSJQU
    • ޷͖ͳ΋ͷɿήʔϜɺ೔ຊञ
    !"MUFDI@

    View Slide

  5. (SBQI2-౤ೖɿୈҰظ

    View Slide

  6. ࠷ॳʹͲ͏΍ͬͯೖ͔ͬͨʢ̍ʣ

    • ࠷ॳͷಈػɿ8FCϑϩϯτΤϯυͷ։ൃΛ͠΍͘͢͢Δ
    • (SBQI2-"QPMMPΫϥΠΞϯτͷ8FCϑϩϯτΤϯυʹ͓͚Δ

    ։ൃମݧ͕ͦΕ·Ͱʹൺ΂ͯඇৗʹྑ͔ͬͨ
    • ͳͥ։ൃମݧ͕ྑ͔͔ͬͨʁ
    • "1*ʹεΩʔϚ͕෇͘
    • σʔλܕͷఆ͕ٛੜ੒Ͱ͖Δ
    • "1*͕ΫΤϦݴޠʹجͮ͘
    • ΫΤϦ݁ՌΛΩϟογϡͯ͘͠ΕΔ

    View Slide

  7. ࠷ॳʹͲ͏΍ͬͯೖ͔ͬͨʢ̎ʣ

    • #BDLFOEGPS'SPOUFOE #''
    ͱͯ͠OPEFͰಈ͘(SBQI2-αʔόʔΛಋೖ
    • എޙʹ͋Δ3VCZPO3BJMTͷαʔόʔʢෳ਺ʣΛୟ͘
    • ঃʑʹϚΠΫϩαʔϏεԽ͍ͯͨ͠ͷͰɺ3BJMTʹ௚઀࣮૷͢Δ͜ͱΛආ͚ͨ

    View Slide

  8. ࣮ࡍʹ։ൃΛͯ͠ΈͨৼΓฦΓ

    • ૯࿦ɿαʔϏε։ൃશମͱͯ͠͸ͦΜͳʹྑ͘ͳΒͳ͔ͬͨʼʻ
    • ݪҼ͸৭ʑ͋Δ
    • #''ͷ૚ʹҰख๊ؒ͑Δඞཁ͕͋ͬͨ
    • όοΫΤϯυͰ࢖͍ͬͯΔ1SPUPDPM#V
    ff
    FSTͷεΩʔϚͱೋॏ؅ཧʹͳͬͨ
    • ɾɾɾ

    View Slide

  9. ͱ͸͍͑ɺ

    View Slide

  10. ࠷ॳʹͲ͏΍ͬͯೖ͔ͬͨʢ̍ʣ

    • ࠷ॳͷಈػɿ8FCϑϩϯτΤϯυͷ։ൃΛ͠΍͘͢͢Δ
    • (SBQI2-"QPMMPΫϥΠΞϯτͷ8FCϑϩϯτΤϯυʹ͓͚Δ

    ։ൃମݧ͕ͦΕ·Ͱʹൺ΂ͯඇৗʹྑ͔ͬͨ
    • ͳͥ։ൃମݧ͕ྑ͔͔ͬͨʁ
    • "1*ʹεΩʔϚ͕෇͘
    • σʔλܕͷఆ͕ٛੜ੒Ͱ͖Δ
    • "1*͕ΫΤϦݴޠʹجͮ͘
    • ΫΤϦ݁ՌΛΩϟογϡͯ͘͠ΕΔ
    ͦΕͧΕ͸͢΂ͯࣄ࣮

    View Slide

  11. Ͳ͏͢Δͱྑ͔͔ͬͨʁʁ

    View Slide

  12. લఏΛ֬ೝ͢Δ

    View Slide

  13. ߟ͑ΔೖΓޱΛม͑ͯΈΔ

    • ʮ(SBQI2-"QPMMPΫϥΠΞϯτͷ։ൃମݧ͕ྑ͍ʯ
    • ։ൃମݧͱ͍͏ݴ༿Λ͍ͬͨΜࢭΊͯΈΔ
    • ͦΕͰಘΒΕΔͱࢥ͍ͬͯΔ΋ͷ͸ʁ
    • ʮΞϓϦέʔγϣϯ͕଎͘࡞ΕΔʯ
    • ˠදࣔʹߜͬͯ۩ମతʹߟ͑ͯΈΔ

    View Slide

  14. ΞϓϦέʔγϣϯͷྫ

    View Slide

  15. -
    • ʮΞόλʔը૾ʯʮΧόʔը૾ʯ
    • ʮ৬ྺʯʮֶྺʯʮ෦ॺʯʮ໾৬ʯ
    • Ұ؏ͨ͠ʮࡏ੶ظؒʯͱ͍͏ΦϒδΣΫτ
    • ϞόΠϧϏϡʔͩͱ৘ใྔΛݮΒͯ͠දࣔ͢Δ
    ΦϒδΣΫτͷྫ

    View Slide

  16. ۩ମྫ͔Β෼͔Δ͜ͱ

    • γφϦΦɿ"1*͔ΒσʔλΛऔͬͯདྷͯΞϓϦέʔγϣϯ͕දࣔ͢Δ
    • 6*্ʹදࣔ͢Δ৘ใͱ"1*ͰऔΕΔΦϒδΣΫτͷؒʹҰఆͷࣗ໌ͳؔ܎ੑ
    ͕ͳ͚Ε͹ɺʢܕ͕͍͍ͭͯͯ΋ʣ଎͘࡞Δ͜ͱ͸Ͱ͖ͳ͍
    • ӅΕ͍ͯͨલఏ
    • ΦϒδΣΫτ͕ద੾ʹϞσϦϯά͞Ε͍ͯͯɺΦϒδΣΫτؒͷؔ࿈͕ద੾
    ʹ୧ΕΔΑ͏ʹͳ͍ͬͯͯɺ͸͡ΊͯʮΞϓϦέʔγϣϯ͕଎͘࡞ΕΔʯ

    View Slide

  17. ٕज़Λཧղ͢Δ

    View Slide

  18. ಉ͡Α͏ͳ໰୊ΛղܾͰ͖Δٕज़Λൺֱ͢Δ

    • "1*ʹܕΛ͚ͭΔ͜ͱ͕Ͱ͖Δٕज़ʢ"1*εΩʔϚٕज़ʣ͸ଞʹ΋͋Δ
    • 1SPUPDPM#V
    ff
    FS 4XBHHFS +40/4DIFNBFUDʜ
    • ಉ͡໨తΛղܾ͢ΔͷͰ͋Ε͹༨෼ͳந৅ԽΛ͍ͯ͠ͳ͍ٕज़ΛબͿ΂͖
    • lXPSTFJTCFUUFSz
    • ฒ΂ͯΈͯ෼͔Δ͜ͱɿͦΕͧΕͷಛ௃ʢσβΠϯʣ
    • (SBQI2-ͷσβΠϯ
    • ΦϒδΣΫτͷάϥϑΛߏஙͰ͖Δ
    • άϥϑ্ͷΦϒδΣΫτΛબ୒తʹऔಘͰ͖Δ
    • ͜ΕΒΛ࣮ݱ͢ΔͨΊʹΫΤϦݴޠ΍εΩʔϚ͕ඞཁͱ͞Ε͍ͯΔ

    View Slide

  19. σβΠϯ͔Β໰୊ઃఆΛଊ͑Δ

    • σβΠϯʹ͸ҙਤ͕͋ΔɻσβΠϯ͔Β໰୊ઃఆΛଊ͑Δɻ
    • ؍࡯ͦͷ̍ɿΞϓϦέʔγϣϯͷৄࡉͳ࢓༷͸มΘΓ΍͍͢
    • ։ൃΛͯ͠ϑΟʔυόοΫΛड͚ΔதͰมΘΔʢ࣌ؒ࣠ʹ͓͚ΔมԽʣ
    • ը໘αΠζʹΑͬͯҟͳΔʢಉҰ࣌ؒͰόϦΤʔγϣϯ͕͋Δʣ
    • ؍࡯ͦͷ̎ɿυϝΠϯϞσϧ͸มΘΓʹ͘͘όϦΤʔγϣϯ͸ͳ͍
    • (SBQI2-ͷ໰୊ઃఆ
    • υϝΠϯϞσϧΛ͋Β͔͡Ίఏڙ͓͖ͯ͠ΞϓϦέʔγϣϯ͕ࣗ༝ʹ࢖͑ΔΑ͏ʹ͢Δ
    • ͜ͷ໨తΛ࣋ଓతʹୡ੒͢ΔͨΊʹɺʮΦϒδΣΫτάϥϑͷߏஙʯʮΞϓϦέʔγϣ
    ϯଆ͔Βͷબ୒తͳऔಘʯ͕ఏڙ͞Ε͍ͯΔ

    View Slide

  20. (SBQI2-ͱ͍͏ٕज़ͷཧղ

    ɾ"1*ʹεΩʔϚ͕෇͘
    ɾ"1*͕ΫΤϦݴޠʹجͮ͘
    ɾσʔλܕͷఆ͕ٛੜ੒Ͱ͖Δ
    ɾΫΤϦ݁ՌΛΩϟογϡͯ͘͠ΕΔ
    (SBQI2-ͷΤίγεςϜ
    (SBQI2-ͷ࢓༷

    View Slide

  21. (SBQI2-ͱ͍͏ٕज़ͷཧղ

    ɾ"1*ʹεΩʔϚ͕෇͘
    ɾ"1*͕ΫΤϦݴޠʹجͮ͘
    ɾσʔλܕͷఆ͕ٛੜ੒Ͱ͖Δ
    ɾΫΤϦ݁ՌΛΩϟογϡͯ͘͠ΕΔ
    (SBQI2-ͷΤίγεςϜ
    (SBQI2-ͷ࢓༷

    View Slide

  22. (SBQI2-ͱ͍͏ٕज़ͷཧղ

    ɾ"1*ʹεΩʔϚ͕෇͘
    ɾ"1*͕ΫΤϦݴޠʹجͮ͘
    ɾσʔλܕͷఆ͕ٛੜ੒Ͱ͖Δ
    ɾΫΤϦ݁ՌΛΩϟογϡͯ͘͠ΕΔ
    (SBQI2-ͷΤίγεςϜ
    (SBQI2-ͷ࢓༷
    ɾΦϒδΣΫτͷάϥϑΛߏஙͰ͖Δ
    ɾΦϒδΣΫτΛબ୒తʹऔಘͰ͖Δ
    (SBQI2-ͷσβΠϯ

    View Slide

  23. (SBQI2-ͱ͍͏ٕज़ͷཧղ

    ɾ"1*ʹεΩʔϚ͕෇͘
    ɾ"1*͕ΫΤϦݴޠʹجͮ͘
    ɾσʔλܕͷఆ͕ٛੜ੒Ͱ͖Δ
    ɾΫΤϦ݁ՌΛΩϟογϡͯ͘͠ΕΔ
    (SBQI2-ͷΤίγεςϜ
    (SBQI2-ͷ࢓༷
    ɾΦϒδΣΫτͷάϥϑΛߏஙͰ͖Δ
    ɾΦϒδΣΫτΛબ୒తʹऔಘͰ͖Δ
    (SBQI2-ͷσβΠϯ
    υϝΠϯΦϒδΣΫτΛ༧Ίఏڙ͓͖ͯ͠
    ΞϓϦέʔγϣϯ͕ࣗ༝ʹ࢖͑ΔΑ͏ʹ͢Δ
    (SBQI2-ͷ໰୊ઃఆ

    View Slide

  24. (SBQI2-ͱ͍͏ٕज़ͷཧղ

    ɾ"1*ʹεΩʔϚ͕෇͘
    ɾ"1*͕ΫΤϦݴޠʹجͮ͘
    ɾσʔλܕͷఆ͕ٛੜ੒Ͱ͖Δ
    ɾΫΤϦ݁ՌΛΩϟογϡͯ͘͠ΕΔ
    (SBQI2-ͷΤίγεςϜ
    (SBQI2-ͷ࢓༷
    ɾΦϒδΣΫτͷάϥϑΛߏஙͰ͖Δ
    ɾΦϒδΣΫτΛબ୒తʹऔಘͰ͖Δ
    (SBQI2-ͷσβΠϯ
    υϝΠϯΦϒδΣΫτΛ༧Ίఏڙ͓͖ͯ͠
    ΞϓϦέʔγϣϯ͕ࣗ༝ʹ࢖͑ΔΑ͏ʹ͢Δ
    (SBQI2-ͷ໰୊ઃఆ
    ࠷ॳʹݟͯͨ෦෼

    View Slide

  25. (SBQI2-ͱ͍͏ٕज़ͷཧղ

    ɾ"1*ʹεΩʔϚ͕෇͘
    ɾ"1*͕ΫΤϦݴޠʹجͮ͘
    ɾσʔλܕͷఆ͕ٛੜ੒Ͱ͖Δ
    ɾΫΤϦ݁ՌΛΩϟογϡͯ͘͠ΕΔ
    (SBQI2-ͷΤίγεςϜ
    (SBQI2-ͷ࢓༷
    ɾΦϒδΣΫτͷάϥϑΛߏஙͰ͖Δ
    ɾΦϒδΣΫτΛબ୒తʹऔಘͰ͖Δ
    (SBQI2-ͷσβΠϯ
    υϝΠϯΦϒδΣΫτΛ༧Ίఏڙ͓͖ͯ͠
    ΞϓϦέʔγϣϯ͕ࣗ༝ʹ࢖͑ΔΑ͏ʹ͢Δ
    (SBQI2-ͷ໰୊ઃఆ
    ࣮͸ॏཁͳ෦෼

    View Slide

  26. (SBQI2-౤ೖɿୈೋظ

    View Slide

  27. ͦͷٕज़͕ࣗ෼ͨͪͷ໰୊Λղܾ͢Δ͔ʁ

    • 8BOUFEMZͷΞϓϦέʔγϣϯͷಛੑɿ
    • ϚϧνϓϥοτϑΥʔϜɿJ04 "OESPJE 8FC
    • πʔαΠυϚʔέοτϓϨΠεɿݸਓϢʔβʔɺاۀϢʔβʔ
    • ˠ࠷௿Ͱ΋ͭͷΞϓϦέʔγϣϯ͕͋ΔʢಉҰ࣌ؒ࣠ͰͷόϦΤʔγϣϯʣ
    • 8BOUFEMZόοΫΤϯυͷಛੑɿ
    • ϚΠΫϩαʔϏεԽΛ͓ͯ͠ΓυϝΠϯΦϒδΣΫτ͸"1*ʹݱΕΔ
    • ໰୊ઃఆ͕߹க͍ͯ͠Δˠ:FT

    View Slide

  28. ͦͷٕज़ΛͲͷΑ͏ʹ࢖͏͔ʁʢ̍ʣ

    • ʮυϝΠϯΦϒδΣΫτΛ͋Β͔͡Ίఏڙ͓͖ͯ͠ɺΞϓϦέʔγϣϯ͕ࣗ༝ʹ
    ࢖͑ΔΑ͏ʹ͢Δʯʢ(SBQI2-ͷ໰୊ઃఆʣ
    • ˠ໌Β͔ʹྑ͍υϝΠϯϞσϧΛఏڙͰ͖Δ͔͕ݤʹͳ͍ͬͯΔ
    • #BDLFOEGPS'SPOUFOEͰ໰୊ͩͬͨ఺
    • ͜ͷϨΠϠʔ͕Ͱ͖ͨ͜ͱͰɺόοΫΤϯυͷϞσϦϯάʹ໰୊͕͋ͬͨͱ͖
    ʹɺϑϩϯτΤϯυ͔Β໰୊ΛӅณͯ͠͠·͏
    • ྫ͑͹ɿϑΟʔϧυ໊͕ద੾Ͱͳ͍ͱ͖ɺ#''ͷϨΠϠʔͰΑΓద੾ͳ໊લʹม׵͢ΔΑ͏ͳ͜ͱ͕࠷΋༰қ͘ߦ͑ͯ͠·͏
    • ྑ͍υϝΠϯϞσϦϯάΛߦ͏ํ޲ͱ͸શ͘ٯͷྗֶ͕ಇ͍ͯ͠·͍ͬͯΔ

    View Slide

  29. ͦͷٕज़ΛͲͷΑ͏ʹ࢖͏͔ʁʢ̎ʣ

    • ଧͪख̍ɿ#''Ͱ͸ͳ͘(BUFXBZʹ͢Δ
    • #BDLFOE͸"1*Λ1SPUPDPM#V
    ff
    FSTͰఆٛͯ͠ϞσϦϯάΛߦͳ͍ͬͯΔ
    • ΦϒδΣΫτఆٛࣗମ͸ͦΕΛίϝϯτ΋ؚΊͯͦͷ··࢖͑ΔΑ͏ʹ͢Δ
    • ଧͪख̎ɿ
    • 8FCϑϩϯτΤϯυ͚ͩͰ͸ͳ͘ɺϞόΠϧΞϓϦͰ΋࢖͑Δ͜ͱΛݕূͨ͠
    • ҎલͱͷมԽ
    • ྑ͍υϝΠϯϞσϦϯάͷԸܙ͕αʔϏε։ൃͷ͋ΒΏΔ෦෼ʹԸܙ͕ߦ͖౉Δ
    ঢ়گʹ͢Δʗߦ͖౉ΔͷͰྑ͍υϝΠϯϞσϦϯά͕ߦΘΕΔͱ͍͏ߏ଄Λ࡞Δ
    • ͜ΕʹΑͬͯ(SBQI2-ͱ͍͏ٕज़͕׆͖ΔΑ͏ʹͳ͖ͬͯͨ

    View Slide

  30. ·ͱΊ

    • ٕज़Λ͏·͘తʹ౰ͯΔʹ͸ʁ🎯
    • ·ͣ͸ٕज़͕ղܾ͍ͨ͠໰୊Λଊ͑Δ
    • ͜Ε͕Ͱ͖Ε͹త͸ߜΕΔ
    • ͜ͷաఔ͸ҙ֎ͱ໘ന͍ʢͱࢥ͏ʣ

    View Slide

  31. ࢀߟɿ1SPUPDPM#V
    ff
    FS͔Βੜ੒͞ΕͨΦϒδΣΫτ

    View Slide