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

爆速開発のための Hasura 活用

爆速開発のための Hasura 活用

lightnet328

January 14, 2022
Tweet

More Decks by lightnet328

Other Decks in Programming

Transcript

  1.  ര଎։ൃͷͨΊͷ)BTVSB׆༻ )BTVSBษڧձBUגࣜձࣾIPLBO 
 :VUBSP,JEP!MJHIUOFU

  2. ࣗݾ঺հ w !MJHIUOFU w גࣜձࣾEJOJJιϑτ΢ΣΞΤϯδχΞ w 5ZQF4DSJQU 3FBDU (SBQI2-͕޷͖ w

    Ոఉ༻ిؾϑϥΠϠʔΛങͬͨͷͰՈͰϙςτ-Λ࡞Ε·͢
  3. ࠓ೔࿩͢͜ͱ w (SBQI2-ͱ)BTVSBʹ͍ͭͯ w )BTVSBΛ࢖ͬͨ։ൃϑϩʔ w )BTVSBͷ׆༻ w )BTVSBΛ࢖༻ͨ͠ΞϓϦέʔγϣϯͷσϞ

  4. ૝ఆ͍ͯ͠Δௌߨऀ w ϑϩϯτΤϯυͱόοΫΤϯυͷ྆ํΛॻ͘ϑϧελοΫΤϯδχΞ w (SBQI2-ɾ)BTVSB͸ฉ͍ͨ͜ͱ͕͋Δɺ·ͨ͸৮ͬͨ͜ͱ͕͋Δਓ

  5. (SBQI2-ͷಛ௃ w (SBQI2-"1*͕ఏڙͰ͖ΔσʔλͷܕΛఆٛ͢ΔεΩʔϚͱ(SBQI2-"1*͔ΒσʔλΛऔಘ͢ΔΫΤϦʹ෼͚ΒΕΔ w ϑϩϯτΤϯυΤϯδχΞ͕ཉ͍͠σʔλΛεΩʔϚΛ΋ͱʹ(SBQI2-"1*͔ΒऔಘͰ͖Δ w ΤίγεςϜ͕े෼ʹൃୡ͍ͯ͠Δ w (SBQI2-ؔ࿈ͷ༗໊ͳ044Λଟ਺։ൃ͍ͯ͠Δ044ͷ։ൃάϧʔϓ 5IF(VJME

     w (SBQI2-εΩʔϚͷՃ޻ (SBQI2-5PPMT  w εΩʔϚ΍ΫΤϦ͔Βͷίʔυੜ੒ (SBQI2-$PEF(FOFSBUPS  w ͳͲʜ w (SBQI2-Λհͨ͠σʔλϕʔε΍্ྲྀͷ"1*ͱΫϥΠΞϯτͷϛυϧ΢ΣΞ )BTVSB  w (SBQI2-Λத৺ͱͨ͠ϓϥοτϑΥʔϜ "QPMMP  w ίʔυʹΑΔ(SBQI2-εΩʔϚͷදݱ /FYVT
  6. (SBQI2-Λ࢖͏έʔε w (SBQI2-Λ࠾༻͢Δڞ௨ͷϝϦοτ͸͋Γͭͭ΋ɺέʔε͝ͱʹएׯ໨త΍։ൃମݧ͕ҟͳΔ w όοΫΤϯυͱϑϩϯτΤϯυؒͷ"1*ͱͯ͠ w ϞοΫͱ૊Έ߹ΘͤͨεΩʔϚۦಈ։ൃΛ໨తʹ͢Δࣄྫ΋͋Δ w ྫόοΫΤϯυΤϯδχΞ͕(PͱHRMHFOͰ(SBQI2-"1*Λఏڙ͢Δ w

    #'' #BDLFOEGPS'SPOUFOET ͱͯ͠ w طଘͷϨΨγʔͳ"1*Λ࢒ͭͭ͠΋ɺϑϩϯτΤϯυͷ։ൃମݧ͸Α͘อ͍ͪͨͱ͖ͳͲʹ࠾༻͞ΕΔ w ྫϑϩϯτΤϯυΤϯδχΞ͕/PEFKT "QPMMP4FSWFSͰ࣮૷͢Δ w *OTUBOU"1*ͱͯ͠ ࠓճ͸͜͜ͷ࿩Λ͠·͢ʂ  w σʔλετΞΛ༻ҙͯ͠ɺࣗ਎Λઃఆ͢Δͱ(SBQI2-"1*͕Ͱ͖͕͋Δϛυϧ΢ΣΞ )BTVSB΍"QQ4ZOD͕૬౰  w ϑϧελοΫΤϯδχΞ͕৽نαʔϏε΍طଘαʔϏεͷ؅ཧը໘Λ։ൃ͢Δͱ͖ʹ޲͍͍ͯΔ w ࢀߟ(SBQI2-Λར༻ͨ͠ΞʔΩςΫνϟͷצॴ!RTPOB
  7. )BTVSBͷಛ௃ w σʔλϕʔεͱ઀ଓͯ͠(SBQI2-"1*ΛఏڙͰ͖Δ w ಺෦తʹ(SBQI2-Λ42-ʹม׵͍ͯ͠Δ w 1PTUHSF42- .442-4FSWFS $JUVT #JH2VFSZ

    .Z42- 1SFWJFX  w ֎෦"1*Λࣗ਎ͷ(SBQI2-εΩʔϚʹ૊ΈࠐΉ࢓૊Έ "DUJPOT 3FNPUF4DIFNB  w +85·ͨ͸8FCIPPLϕʔεͷऔಘɾߋ৽Ͱ͖ΔϑΟʔϧυͷ੍ݶ ೝূɾೝՄ  w σʔλϕʔεͷεΩʔϚͱ(SBQI2-εΩʔϚͷݖݶઃఆ΍֎෦"1*ͷઃఆͳͲΛϝλσʔλͱͯ࣋ͭ͠ w 8FC6*ͷσʔλϕʔεͷεΩʔϚɾσʔλͷฤूɺ(SBQI2-εΩʔϚͷݖݶઃఆ )BTVSB$POTPMF  w %#ΫϥΠΞϯτͷ4FRVFM1SP΍5BCMF1MVTͷΑ͏ͳΠϝʔδ w $POTPMF͔ΒσʔλϕʔεΛฤू͢Δͱ42-ͷϚΠάϨʔγϣϯϑΝΠϧ͕ੜ੒͞Εɺϝλσʔλ΋ߋ৽͞ΕΔ w 🚀εΩʔϚ΋Ϧκϧόʔ΋ࣗ෼Ͱॻ͘ඞཁ͕ແ͍ɺ8FC6*Λϙνϙν͢Δ͚ͩ
  8. খωλ 
 )BTVSBͷ༝དྷ

  9. )BTVSBΛ࢖ͬͨ։ൃϑϩʔ w (SBQI2-Λ࢖͏৔߹ɺϑϩϯτΤϯυͰ͸(SBQI2-$PEF(FOFSBUPS͕΄΅ඞਢ w εΩʔϚ΍ΫΤϦ͔Βͷܕͷੜ੒΍ΫΤϦ͔Βͷ)PPLTͷࣗಈੜ੒ແ͠ͷ։ൃ͸ߟ͕͍͑ͨ w 🚀σʔλϕʔεͷεΩʔϚ͕มߋ͞ΕΔͱίʔυੜ੒͕ࣦഊ͢ΔͨΊɺσʔλͷࢀরɾߋ৽ʹରͯ͠΋ܕ҆શੑ͕ಘΒΕΔ

  10. )BTVSBͷ࢖͍෼͚ w 8FC6*͚ͩͰ(SBQI2-"1*Λ༻ҙͰ͖Δମݧ͸ඇৗʹྑ͍ w ࢀরܥͷ"1*࣮૷Λେ෯ʹݮΒͤΔ w ߋ৽ܥ΋ೖྗΛͦͷ··อଘͰ͖Δ৔߹͸"1*࣮૷ΛݮΒͤΔ w ͔͠͠ɺσʔλϕʔε͔Βੜ੒ͨ͠(SBQI2-"1*͕ৗʹ༗༻ͳΘ͚Ͱ͸ͳ͍ w

    ߋ৽࣌ͷෳࡶͳόϦσʔγϣϯ΍ݖݶઃఆͳͲ͸޲͍͍ͯͳ͍ w ෳࡶͳूܭ͸೉͍͠ w ࢀরܥͱҰ෦ͷߋ৽ܥҎ֎͸3FNPUF4DIFNB΍"DUJPOTΛ࢖͏ w 3FNPUF4DIFNB΍"DUJPOT͸ͨͩͷόοΫΤϯυ w ܕ҆શͷͨΊʹ͸ผ్1SJTNBͳͲΛ࢖͏ඞཁ͋Γ w ࢀߟʲΤϯδχΞϒϩάʳμΠχʔͷΤϯδχΞϦϯάΧ৚!LBST[BXB
  11. )BTVSBΛ࢖ͬͨ։ൃϑϩʔ w 3FNPUF4DIFNBΛ࠶ಡΈࠐΈͨ͠ޙͷϑϩʔ͸3FNPUF4DIFNBΛ࢖Θͳ͍৔߹ͱಉ͡

  12. )BTVSBͷ׆༻ w ϑϩϯτΤϯυͰಉ͡σʔλ͔Βڞ௨ͷܭࢉ ղऍ Λ͢Δ w ͜ͷྫͩͱ؆୯͗͢Δ͕ɺ͜͜Ͱ͸஫จͷՁ֨͸୯Ձº਺ྔͱ͍͏ղऍΛදݱ͍ͯ͠Δ w ܭࢉʹඞཁͳϑΟʔϧυͷΈΛ1JDLͨ͠΋ͷΛҾ਺ʹ͢Δ w

    Ҿ਺ͷܕΛ0SEFSʹ͢Δͱ͜ͷؔ਺Λ࢖͏ՕॴͰશͯͷϑΟʔϧυΛऔಘ͓͔ͯ͠ͳ͍ͱ͍͚ͳ͘ͳΔ
  13. )BTVSBͷ׆༻ w ݖݶઃఆΛ΋ͱʹ3PMF͝ͱʹҟͳΔ(SBQI2-εΩʔϚΛੜ੒͢Δ w ෳ਺ϓϩμΫτͰෳ਺ͷݖݶΛ࢖Θͳ͍৔߹͸ݖݶઃఆ͕ͭͷΈʹͳΔ͸ͣͳͷͰؔ܎ͳ͍ w 🚀ࢀর͢ΔεΩʔϚ͕ݫີʹͳΔͷͰσʔλͷࢀরɾߋ৽͕ߋʹܕ҆શʹͳΔ w ؔ࿈هࣄ)BTVSBͰ3PMF͝ͱʹҟͳΔ(SBQI2-4DIFNBఆٛϑΝΠϧΛੜ੒͢Δ!IBTTFZ@

  14. )BTVSBͷ׆༻ w )BTVSBͷϝλσʔλΛίϛοτ࣌ʹࣗಈ੔ܗ͢Δ w ϝλσʔλ͸:".-ϑΝΠϧͰอଘ͞Ε͍ͯΔ w $POTPMFͰ%#εΩʔϚΛฤू͢ΔͱϝλσʔλϑΝΠϧ͕ιʔτ͞Ε্ͨͰߋ৽͞ΕΔ w େن໛ͳεΩʔϚมߋ࣌ͳͲʹΤσΟλʔ͔Β௚઀:".-ͷϑΝΠϧΛฤू͢Δ৔߹͕͋Δ w

    ୭͔ͷมߋޙʹࣗ෼͕ϝλσʔλΛมߋͯ݁͠Ռ͕ιʔτ͞ΕΔͱEJ ff ͕͔ͳΓݟͣΒ͍ w ίϛοτ࣌ʹ:".-಺ͷ഑ྻΛࣗಈͰιʔτ͢ΔεΫϦϓτΛ༻ҙ͓ͯ͘͠ͱศར
  15. (SBQI2- )BTVSBͷޮ༻ w (SBQI2- w σʔλͷࢀরɾߋ৽͕ܕ҆શʹͳΔ w ΫϥΠΞϯτ͸ඞཁͳσʔλΛඞཁͳܗͰऔಘͰ͖Δ w )BTVSB

    w ΄ͱΜͲͷࢀরܥͱҰ෦ͷߋ৽ܥͷ"1*ͷ࣮૷͕΄΅ෆཁʹͳΔ w ࣮૷ແ͠ͰඞཁͳσʔλΛඞཁͳܗͰऔಘͰ͖ΔΑ͏ʹͳΔ w ݖݶʹΑΓߋʹσʔλͷࢀরɾߋ৽͕ܕ҆શʹͳΔ
  16. )BTVSBͷσϞ w ೥݄ʹ։࠵ͨ͠)"463"$0/`3FDBQͷ-JWF%FNPͱ΄΅ಉ͡಺༰ʹͳΓ·͢ w ϞόΠϧΦʔμʔΞϓϦΛ୊ࡐʹ)BTVSBͷ׆༻ํ๏Λઆ໌͠·͢

  17. ΞϓϦέʔγϣϯͷߏ੒ w /FYUKT 1SJTNB )BTVSB 1PTUHSF42-ͷߏ੒ w /FYUKTͷ"1*3PVUFTͰ1SJTNBΛ࢖༻͢Δ w )BTVSBͷ"DUJPOTʹ/FYUKTͷ"1*Λొ࿥͢Δ

    w ࢀরܥ͕ಘҙͳ)BTVSBͱߋ৽ܥ͕ಘҙͳ1SJTNBΛ࢖͍෼͚Δ
  18. )BTVSBͷσϞ w ಺༰ w .FUBEBUB w .JHSBUJPO w "DUJPOT w

    "VUIPSJ[BUJPO w "DDFTTDPOUSPM w )JTUPSZը໘ͷ࣮૷ͷσϞ