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

Web API × Clean Architecture / CleanArchitecture Go

nakabonne
September 23, 2018

Web API × Clean Architecture / CleanArchitecture Go

nakabonne

September 23, 2018
Tweet

More Decks by nakabonne

Other Decks in Technology

Transcript

  1. 8FC"1*
    º
    $MFBO"SDIJUFDUVSF
    ʙ(PʹΑΔ࣮૷ύλʔϯʙ

    View Slide

  2. .F
    wதඌྋ !OBLBCPOOF

    wதԝେֶ঎ֶ෦೥
    wגࣜձࣾαΠόʔΤʔδΣϯτ
    JOUFSOTIJQ

    View Slide

  3. "HFOEB
    w ࠓ೔ͷΰʔϧ
    w $MFBO"SDIJUFDUVSFͱ͸
    w ࣮૷ύλʔϯͷ঺հ

    View Slide

  4. ࠓ೔ͷΰʔϧ

    View Slide

  5. ࠓ೔ͷΰʔϧ
    8FC"1*Λθϩ͔Β࡞Δ࣌ͷ
    Ҿ͖ग़͕͠Ұͭ૿͑Δ

    View Slide

  6. $MFBO"SDIJUFDUVSFͱ͸

    View Slide

  7. ͦͷલʹ

    View Slide

  8. ͜Μͳίʔυॻ͍ͯ·ͤΜ͔ʁ

    View Slide

  9. Ϣʔβʔ৘ใΛฦ͢ॲཧ

    View Slide

  10. Ϣʔβʔ৘ใΛฦ͢ॲཧ
    ˡ6TFSߏ଄ମʹVTFSςʔϒϧͷ஋ΛϚοϐϯά
    ˡϏδωεʹ͓͚Δ6TFSͱ͍͏֓೦Λද͢σʔλߏ଄
    ˡΫϥΠΞϯτͰදࣔ͢ΔͨΊʹVTFSΛKTPOʹͯ͠ฦ͢

    View Slide

  11. Ϣʔβʔ৘ใΛฦ͢ॲཧ
    Ϗδωεʹ͓͚Δ6TFSͱ͍͏֓೦͕
    %#ʹ΋6*ʹ΋ґଘͯ͠͠·͍ͬͯΔ

    View Slide

  12. ґଘʹΑΔ໰୊
    w 6*มߋ͢ΔͱϏδωεϩδοΫ΋มߋ͕ඞཁʹͳΔ
    w ςετ࣌ʹ%#Λ༻ҙ͠ͳ͍ͱ͍͚ͳ͍
    w ϏδωεϩδοΫͰԿͯ͠Δͷ͔෼͔ΓͮΒ͍

    View Slide

  13. ϏδωεϩδοΫΛִ཭͢Ε͹Α͘Ͷʁ

    View Slide

  14. $MFBO"SDIJUFDUVSFͱ͸
    ιϑτ΢ΣΞΛϨΠϠʔʹ෼͚Δ͜ͱʹΑͬͯ
    ؔ৺ͷ෼཭Λୡ੒͢ΔͨΊͷΞʔΩςΫνϟύλʔϯͷͭ

    View Slide

  15. $MFBO"SDIJUFDUVSFͱ͸
    ιϑτ΢ΣΞΛϨΠϠʔʹ෼͚Δ͜ͱʹΑͬͯ
    ؔ৺ͷ෼཭Λୡ੒͢ΔͨΊͷΞʔΩςΫνϟύλʔϯͷͭ
    ʁ

    View Slide

  16. ͭͷ૚

    View Slide

  17. &OUJUJFT૚
    w ϏδωεϩδοΫʹඞཁͳσʔλߏ଄ͱϝιουͷηοτ

    4/4ʹ͓͚ΔϢʔβʔ΍౤ߘΛද͢Ϋϥε΍ߏ଄ମ

    View Slide

  18. 6TFDBTF૚
    w &OUJUJFTΛར༻ͯ͠ϏδωεϩδοΫΛهड़͢Δ

    ౤ߘϑΥʔϜͷೖྗΛ%#ʹૠೖ͠ɺ݁ՌΛग़ྗ͢Δ

    View Slide

  19. *OUFSGBDF"EBQUFS૚
    w ֎քͱϏδωεϞσϧͷؒͷσʔλม׵Λ͢Δ

    03.ͱϏδωεϞσϧͷ٧Ίସ͑

    View Slide

  20. 'SBNFXPSLT%SJWFST૚
    w ֎քͱͷڥքʹ͋Γɺ૬ޓʹ௨৴͢Δ

    %#ͱͷίωΫγϣϯɺϧʔςΟϯά

    View Slide

  21. ϨΠϠʔͷ෼͚ํ
    w͜ͷ૚Ͱͳ͍͍ͯ͘
    wͨͩɺด࠯ੑڞ௨ͷݪଇ $$1
    ʹଇͬͯ෼͚Δ
    ɹɹˠಉ͡ཧ༝Ͱมߋ͢Δίϯϙʔωϯτ͸·ͱΊΔ
    w ࢀߟɿ*NBO5VNPSBOHͷ
    l5SZJOH$MFBO"SDIJUFDUVSFPO(PMBOHz

    View Slide

  22. ͳͥґଘํ޲Λ಺ଆʹറΔͷʁ
    w ϏδωεϩδοΫ͕ͦΕ୯ମͰςετग़དྷΔ
    w Πϯϑϥ΍6*ͷมߋ͕༰қʹͳΔ
    ґଘํ޲͕಺ଆͷΈˠ%#΍6*͕ͳͯ͘΋ΞϓϦέʔγϣϯ͕ಈ͘

    View Slide

  23. ࣮૷ύλʔϯͷ঺հ

    View Slide

  24. ࡞Δ΋ͷ
    w VTFSʹ1045ͯ͠Ϣʔβʔొ࿥͢Δ͢Δ͚ͩͷ"1*
    w IUUQTHJUIVCDPNOBLBCPOOFDMFBOBSDIJUFDUVSFTBNQMF

    View Slide

  25. ґଘؔ܎ͷపఈ
    w ґଘؔ܎͸಺ଆ΁อͭඞཁ͕͋Δ
    w ͔͠͠ͲΜͳϓϩάϥϜʹ΋ೖྗͱग़ྗ͕͋Δ

    View Slide

  26. ґଘؔ܎ͷపఈ
    w ґଘؔ܎͸಺ଆ΁อͭඞཁ͕͋Δ
    w ͔͠͠ͲΜͳϓϩάϥϜʹ΋ೖྗͱग़ྗ͕͋Δ
    ಺ଆ͔Β֎ଆ΁ґଘ͍ͨ͠৔໘͕ඞͣ๚ΕΔ

    View Slide

  27. ґଘؔ܎ٯసͷݪଇ
    w 40-*%ݪଇͷҰͭ
    w ґଘؔ܎͕۩৅Ͱ͸ͳ͘ந৅͚ͩΛࢀরͯ͠Δ΋ͷ͕ɺ࠷
    ΋ॊೈͳγεςϜͰ͋Δ
    w ಺ଆ͸֎ଆʹґଘ͢ΔͷͰ͸ͳ͘ɺந৅ʹґଘ͢Δ΂͖

    View Slide

  28. ґଘؔ܎ٯసͷݪଇ
    ίʔυྫ
    ಺͔Β൪໨ͷBEBQUFS૚ͷॲཧ
    ͜ͷ%#อଘ͢Δ۩৅࣮૷ΛϏδωεϩδοΫͰ࢖͍͍ͨ

    View Slide

  29. ґଘؔ܎ٯసͷݪଇ
    ίʔυྫ
    ಺͔Β൪໨ͷVTFDBTF૚ͷॲཧ
    VTFDBTF૚ʹந৅Λఆ͓ٛͯ͘͠

    View Slide

  30. ґଘؔ܎ٯసͷݪଇ
    ίʔυྫ
    ಺͔Β൪໨ͷVTFDBTF૚ͷॲཧ
    VTFSΛετϨʔδʹอଘ͢Δॲཧ͸ͨͬͨ͜Ε͚ͩ

    View Slide

  31. (PʹΑΔ࣮૷ͷҰྫ

    View Slide

  32. 3PVUJOH
    Ұ൪֎ଆͷ૚ͷॲཧ
    %#ίωΫγϣϯ΍ϩΨʔͷ۩৅ܕΛ
    ಺ଆͷ૚ʹ౉͢ˣ
    ˣ8"'΁ͷґଘΛ͜ͷ૚ʹݶఆ

    View Slide

  33. $POUSPMMFS
    ಺͔Β൪໨ͷBEBQUFS૚ͷॲཧ
    ˡΤϯυϙΠϯτຖͷ*0Λఆٛ
    ˡϏδωεϩδοΫ༻ͷσʔλߏ଄ͱ*0༻ͷ΋ͷΛม׵
    ˢ

    View Slide

  34. 03.
    ಺͔Β൪໨ͷBEBQUFS૚ͷॲཧ
    ˣυϝΠϯϞσϧΛฦ͢

    View Slide

  35. ·ͱΊ

    View Slide

  36. $MFBO"SDIJUFDUVSF
    w ϏδωεϩδοΫΛִ཭͢Δͱ͍͍͜ͱ͋Δ
    w $MFBO"SDIJUFDUVSF͸͍͍ײ͡ʹϏδωεϩδοΫΛִ཭Ͱ͖Δ
    w εςʔΫϗϧμʔͷଟ͍8FC"1*͸$MFBO"SDIJUFDUVSFʹ޲͍ͯͦ͏
    w ґଘ͸಺ଆ΁ͷ୯Ұํ޲ʹݶఆ͢Δ
    w ಺ˠ֎ʹґଘͨ͘͠ͳͬͨΒந৅ʹґଘ͢Δ

    View Slide

  37. $MFBO"SDIJUFDUVSF͸ສ෺ʹରԠͰ͖Δ
    ۜͷ஄ؙͰ͸ͳ͍
    w VTFSొ࿥͚ͩͰ͜Μͳେ͖ͳ"1*ʹͳͬͯ͠·͏
    w ந৅Խ͸ෳࡶԽ
    w ण໋͸௕͘ɺن໛͸େ͖͘ͳΔ͜ͱ͕༧૝͞ΕΔBQQҎ֎
    ͸͋·Γ͓͢͢ΊͰ͖ͳ͍

    View Slide

  38. ͋Γ͕ͱ͏͍͟͝·ͨ͠
    αϯϓϧίʔυ
    IUUQTHJUIVCDPNOBLBCPOOFDMFBOBSDIJUFDUVSFTBNQMF

    View Slide