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

画面に合わせたAPI設計をしたら残業が死ぬほど増えた話

 画面に合わせたAPI設計をしたら残業が死ぬほど増えた話

kinocoboy

March 08, 2022
Tweet

More Decks by kinocoboy

Other Decks in Programming

Transcript

  1. ը໘ʹ߹ΘͤͨAPIઃܭΛͨ͠Β
    ࢒ۀ͕ࢮ͵΄Ͳ૿͑ͨ࿩
    KINOCOBOY

    View Slide

  2. Hiroki Kinoshita


    Peacock Engineer Group


    ओ࠵


    גࣜձࣾKUNO


    ϑϩϯτΤϯδχΞ(gcp, aws, angular, nuxt)


    Twitter


    @kinocoboy2
    SELF INTRODUCTION

    View Slide

  3. Hiroki Kinoshita


    Peacock Engineer Group


    ओ࠵


    גࣜձࣾKUNO


    ϑϩϯτΤϯδχΞ(gcp, aws, angular, nuxt)


    Twitter


    @kinocoboy2
    SELF INTRODUCTION
    Ϋϥ΢υ × ϩέʔγϣϯϑϦʔ × ஍ํҠॅ


    Ͱൃ৴தʂ

    View Slide

  4. όουϊ΢ϋ΢

    View Slide

  5. ࢒ۀ͸Ϋι

    View Slide

  6. ࢒ۀ͸Ϋι
    ·ͣɺ݁࿦

    View Slide

  7. ࢒ۀ͸Ϋι


    ୯ҰAPIͰNݸͷޮՌΛ࣋ͨͤΔͳ
    ·ͣɺ݁࿦

    View Slide

  8. ࢒ۀ͸Ϋι


    ୯ҰAPIͰNݸͷޮՌΛ࣋ͨͤΔͳ


    ը໘߲໨͚ͩʹ஫ҙͯ͠ςʔϒϧఆٛΛܾΊΔͳ
    ·ͣɺ݁࿦

    View Slide

  9. ࢒ۀ͸Ϋι


    ୯ҰAPIͰNݸͷޮՌΛ࣋ͨͤΔͳ


    ը໘߲໨͚ͩʹ஫ҙͯ͠ςʔϒϧఆٛΛܾΊΔͳ


    ֎෦APIΛ࢖͏ͳΒɺຊ౰ʹجૅ͸େࣄͩ
    ·ͣɺ݁࿦

    View Slide

  10. ͋Μ·Γڭ͑ͯ͸͘Εͳ͍҉໧஌
    ͦΜͳ΋Μ͋ͬͨΓ·͑Ͱ͠ΐ…ͳ࿩ͳΜ͚ͩͲɺͦͷཧ༝Λ஌͍ͬͯΔਓ͸ҙ֎ͱগͳ͍ɻ

    View Slide

  11. ͋Μ·Γڭ͑ͯ͸͘Εͳ͍҉໧஌
    ͦΜͳ΋Μ͋ͬͨΓ·͑Ͱ͠ΐ…ͳ࿩ͳΜ͚ͩͲɺͦͷཧ༝Λ஌͍ͬͯΔਓ͸ҙ֎ͱগͳ͍ɻ


    ͜ͷجຊΛԡ͑ͣ͞ʹ࡞ΓࠐΜͰ͠·ͬͯɺൿ఻ͷλϨΛ࿉੒͍ͯ͠Δݱ৔͸ଟ͍

    View Slide

  12. ͋Μ·Γڭ͑ͯ͸͘Εͳ͍҉໧஌
    ͦΜͳ΋Μ͋ͬͨΓ·͑Ͱ͠ΐ…ͳ࿩ͳΜ͚ͩͲɺͦͷཧ༝Λ஌͍ͬͯΔਓ͸ҙ֎ͱগͳ͍ɻ


    ͜ͷجຊΛԡ͑ͣ͞ʹ࡞ΓࠐΜͰ͠·ͬͯɺൿ఻ͷλϨΛ࿉੒͍ͯ͠Δݱ৔͸ଟ͍


    ಛʹ֎෦APIΛར༻͢ΔͳΒɺΑΓجૅ͕େࣄʹͳΔɻ

    View Slide

  13. ͋Μ·Γڭ͑ͯ͸͘Εͳ͍҉໧஌
    ͦΜͳ΋Μ͋ͬͨΓ·͑Ͱ͠ΐ…ͳ࿩ͳΜ͚ͩͲɺͦͷཧ༝Λ஌͍ͬͯΔਓ͸ҙ֎ͱগͳ͍ɻ


    ͜ͷجຊΛԡ͑ͣ͞ʹ࡞ΓࠐΜͰ͠·ͬͯɺൿ఻ͷλϨΛ࿉੒͍ͯ͠Δݱ৔͸ଟ͍


    ಛʹ֎෦APIΛར༻͢ΔͳΒɺΑΓجૅ͕େࣄʹͳΔɻ


    ൿ఻ͷλϨ๾໓ӡಈͰ͢ɻ

    View Slide

  14. جૅͦͷҰ

    View Slide

  15. ୯ҰAPIͰNݸͷޮՌΛ࣋ͨͤΔͳ

    View Slide

  16. ୯ҰAPIͰෳ਺ͷڍಈ
    ྫ͑͹ɺ


    View Slide

  17. ୯ҰAPIͰෳ਺ͷڍಈ
    ྫ͑͹ɺ


    ɾGETϝιουͷॲཧͳͷʹԿނ͔σʔλͷߋ৽ֻ͕͔Δɻ


    View Slide

  18. ୯ҰAPIͰෳ਺ͷڍಈ
    ྫ͑͹ɺ


    ɾGETϝιουͷॲཧͳͷʹԿނ͔σʔλͷߋ৽ֻ͕͔Δɻ


    ɾߋ৽ͱڞʹԿ͔ͷσʔλ͕௥Ճ͞ΕΔɻ


    View Slide

  19. ୯ҰAPIͰෳ਺ͷڍಈ
    ྫ͑͹ɺ


    ɾGETϝιουͷॲཧͳͷʹԿނ͔σʔλͷߋ৽ֻ͕͔Δɻ


    ɾߋ৽ͱڞʹԿ͔ͷσʔλ͕௥Ճ͞ΕΔɻ


    ϑΣΠϯτ


    ͍ͬͺ͍ೖΕͪΌ͏

    View Slide

  20. ୯ҰAPIͰෳ਺ͷڍಈ
    ྫ͑͹ɺ


    ɾGETϝιουͷॲཧͳͷʹԿނ͔σʔλͷߋ৽ֻ͕͔Δɻ


    ɾߋ৽ͱڞʹԿ͔ͷσʔλ͕௥Ճ͞ΕΔɻ


    ϑΣΠϯτ


    ͍ͬͺ͍ೖΕͪΌ͏
    ਖ਼͍͠ಈ͖Λ


    ௐࠪ͠ͳ͍ͱ

    View Slide

  21. ୯ҰAPIͰෳ਺ͷڍಈ
    ྫ͑͹ɺ


    ɾGETϝιουͷॲཧͳͷʹԿނ͔σʔλͷߋ৽ֻ͕͔Δɻ


    ɾߋ৽ͱڞʹԿ͔ͷσʔλ͕௥Ճ͞ΕΔɻ


    ϑΣΠϯτ


    ͍ͬͺ͍ೖΕͪΌ͏
    ਖ਼͍͠ಈ͖Λ


    ௐࠪ͠ͳ͍ͱ

    View Slide

  22. ୯ҰAPIͰෳ਺ͷڍಈ
    ୯ҰAPIͰ૝ఆ֎ͷڍಈ͕ೖͬͯ͘ΔͱɺAPI໊ʹରͯ͠ڍಈ͕ࣗ໌͡Όͳ͘ͳΔɻ

    View Slide

  23. ୯ҰAPIͰෳ਺ͷڍಈ
    ୯ҰAPIͰ૝ఆ֎ͷڍಈ͕ೖͬͯ͘ΔͱɺAPI໊ʹରͯ͠ڍಈ͕ࣗ໌͡Όͳ͘ͳΔɻ


    ݁Ռͱͯ͠

    View Slide

  24. ୯ҰAPIͰෳ਺ͷڍಈ
    ୯ҰAPIͰ૝ఆ֎ͷڍಈ͕ೖͬͯ͘ΔͱɺAPI໊ʹରͯ͠ڍಈ͕ࣗ໌͡Όͳ͘ͳΔɻ


    ݁Ռͱͯ͠


    ௐࠪʹ৴͡ΒΕͳ͍࣌ؒ΋͔͔Δ

    View Slide

  25. ୯ҰAPIͰෳ਺ͷڍಈ
    ୯ҰAPIͰ૝ఆ֎ͷڍಈ͕ೖͬͯ͘ΔͱɺAPI໊ʹରͯ͠ڍಈ͕ࣗ໌͡Όͳ͘ͳΔɻ


    ݁Ռͱͯ͠


    ௐࠪʹ৴͡ΒΕͳ͍࣌ؒ΋͔͔Δ


    ಈ࡞֬ೝͷ೉қ౓΋্͕Δ

    View Slide

  26. ୯ҰAPIͰෳ਺ͷڍಈ
    ୯ҰAPIͰ૝ఆ֎ͷڍಈ͕ೖͬͯ͘ΔͱɺAPI໊ʹରͯ͠ڍಈ͕ࣗ໌͡Όͳ͘ͳΔɻ


    ݁Ռͱͯ͠


    ௐࠪʹ৴͡ΒΕͳ͍࣌ؒ΋͔͔Δ


    ಈ࡞֬ೝͷ೉қ౓΋্͕Δ


    ίʔυ΋εύήοςΟʔίʔυނɺίʔυௐࠪ΋Ωπ͍

    View Slide

  27. ୯ҰAPIͰෳ਺ͷڍಈ
    ୯ҰAPIͰ૝ఆ֎ͷڍಈ͕ೖͬͯ͘ΔͱɺAPI໊ʹରͯ͠ڍಈ͕ࣗ໌͡Όͳ͘ͳΔɻ


    ݁Ռͱͯ͠


    ௐࠪʹ৴͡ΒΕͳ͍࣌ؒ΋͔͔Δ


    ಈ࡞֬ೝͷ೉қ౓΋্͕Δ


    ίʔυ΋εύήοςΟʔίʔυނɺίʔυௐࠪ΋Ωπ͍


    ࠷ऴతʹɺଐਓԽ → ແବͳ޻਺͕ര্͕Γ → ͦͷ݁Ռ…

    View Slide

  28. ݟࣄ ࢒ۀ ֬ఆ!!

    View Slide

  29. ୯ҰAPIͰෳ਺ͷڍಈ
    ղܾํ๏͸ɺ୯७໌շɻ


    View Slide

  30. ୯ҰAPIͰෳ਺ͷڍಈ
    ղܾํ๏͸ɺ୯७໌շɻ


    ༨ܭͳڍಈ͸ೖΕͳ͍ʂ


    View Slide

  31. ୯ҰAPIͰෳ਺ͷڍಈ
    ղܾํ๏͸ɺ୯७໌շɻ


    ༨ܭͳڍಈ͸ೖΕͳ͍ʂ


    GET͸औಘɺPOST͸ొ࿥ɺPUT͸ߋ৽ɺDELETE͸࡟আ͚ͩʂ


    View Slide

  32. ୯ҰAPIͰෳ਺ͷڍಈ
    ղܾํ๏͸ɺ୯७໌շɻ


    ༨ܭͳڍಈ͸ೖΕͳ͍ʂ


    GET͸औಘɺPOST͸ొ࿥ɺPUT͸ߋ৽ɺDELETE͸࡟আ͚ͩʂ


    ॲཧ͸ࣗ໌ʹʂ

    View Slide

  33. ୯ҰAPIͰෳ਺ͷڍಈ
    ղܾํ๏͸ɺ୯७໌շɻ


    ༨ܭͳڍಈ͸ೖΕͳ͍ʂ


    GET͸औಘɺPOST͸ొ࿥ɺPUT͸ߋ৽ɺDELETE͸࡟আ͚ͩʂ


    ݪҼՕॴ͕໌Β͔
    ॲཧ͸ࣗ໌ʹʂ

    View Slide

  34. ୯ҰAPIͰෳ਺ͷڍಈ
    ղܾํ๏͸ɺ୯७໌շɻ


    ༨ܭͳڍಈ͸ೖΕͳ͍ʂ


    GET͸औಘɺPOST͸ొ࿥ɺPUT͸ߋ৽ɺDELETE͸࡟আ͚ͩʂ


    ݪҼՕॴ͕໌Β͔
    ଐਓճආ
    ॲཧ͸ࣗ໌ʹʂ

    View Slide

  35. جૅͦͷೋ

    View Slide

  36. ը໘߲໨͚ͩʹ஫ҙͯ͠


    ςʔϒϧఆٛΛܾΊΔͳ

    View Slide

  37. ը໘ʹදࣔ͞ΕΔ΋ͷ͔͠ߟ͑ͳ͍
    ը໘ʹදࣔ͞ΕΔ΋ͷΛDatabaseʹอଘ͓͚ͯ͠͹OK!

    View Slide

  38. ը໘ʹදࣔ͞ΕΔ΋ͷ͔͠ߟ͑ͳ͍
    ը໘ʹදࣔ͞ΕΔ΋ͷΛDatabaseʹอଘ͓͚ͯ͠͹OK!


    ͱ͍͏ൃ૝͔Β҆қʹը໘ઌߦͰ։ൃ͕ਐΉέʔε͕·ͩ·ͩଟ͍ɻ

    View Slide

  39. ը໘ʹදࣔ͞ΕΔ΋ͷ͔͠ߟ͑ͳ͍
    ը໘ʹදࣔ͞ΕΔ΋ͷΛDatabaseʹอଘ͓͚ͯ͠͹OK!


    ͱ͍͏ൃ૝͔Β҆қʹը໘ઌߦͰ։ൃ͕ਐΉέʔε͕·ͩ·ͩଟ͍ɻ

    ʢΘ͔ͬͯͳ͍σβΠφʔ͞Μ͕ओಋ͢Δͱͦ͏ͳΓ͕ͪʣ


    ֎෦APIΛ૊ΜͩΓ͢ΔͳΒɺΑΓը໘ʹҾͬுΒΕͯ͸͍͚ͳ͍ɻ

    View Slide

  40. ը໘ઌߦͰߟ͑Δͱʁ
    Instagramతͳը໘ΛΠϝʔδͯ͠Έ·͠ΐ͏


    ೔෇
    ͍͍Ͷ਺
    Tags
    λΠτϧ
    ৄࡉText

    View Slide

  41. ը໘ઌߦͰߟ͑Δͱʁ
    Instagramతͳը໘ΛΠϝʔδͯ͠Έ·͠ΐ͏


    ߲໨Λฏ໘తʹଊ͑Δͱɺ


    ೔෇
    ͍͍Ͷ਺
    Tags
    λΠτϧ
    ৄࡉText

    View Slide

  42. ը໘ઌߦͰߟ͑Δͱʁ
    Instagramతͳը໘ΛΠϝʔδͯ͠Έ·͠ΐ͏


    ߲໨Λฏ໘తʹଊ͑Δͱɺ


    λΠτϧ 1 : 1
    ೔෇ 1 : 1
    ৄࡉςΩετ 1 : 1
    ͍͍Ͷ਺ 1 : N
    λά 1 : N


    ೔෇
    ͍͍Ͷ਺
    Tags
    λΠτϧ
    ৄࡉText

    View Slide

  43. ը໘ઌߦͰߟ͑Δͱʁ
    Instagramతͳը໘ΛΠϝʔδͯ͠Έ·͠ΐ͏


    ߲໨Λฏ໘తʹଊ͑Δͱɺ


    λΠτϧ 1 : 1
    ೔෇ 1 : 1
    ৄࡉςΩετ 1 : 1
    ͍͍Ͷ਺ 1 : N
    λά 1 : N


    ೔෇
    ͍͍Ͷ਺
    Tags
    λΠτϧ
    ৄࡉText

    View Slide

  44. ը໘ઌߦͰߟ͑Δͱʁ
    Instagramతͳը໘ΛΠϝʔδͯ͠Έ·͠ΐ͏


    ߲໨Λฏ໘తʹଊ͑Δͱɺ


    λΠτϧ 1 : 1
    ೔෇ 1 : 1
    ৄࡉςΩετ 1 : 1
    ͍͍Ͷ਺ 1 : N
    λά 1 : N


    ྫྷ੩ʹݟͨΒɺ


    ੑ࣭͕ҧ͏͜ͱ͕Θ͔Δ
    ೔෇
    ͍͍Ͷ਺
    Tags
    λΠτϧ
    ৄࡉText

    View Slide

  45. ը໘ઌߦͰߟ͑Δͱʁ
    Instagramతͳը໘ΛΠϝʔδͯ͠Έ·͠ΐ͏


    ߲໨Λฏ໘తʹଊ͑Δͱɺ


    Ͱ΋͜ͷ··ٙ໰Λ࣋ͨͣʹAPIԽ͢Δͱ…?
    ೔෇
    ͍͍Ͷ਺
    Tags
    λΠτϧ
    ৄࡉText
    λΠτϧ 1 : 1
    ೔෇ 1 : 1
    ৄࡉςΩετ 1 : 1
    ͍͍Ͷ਺ 1 : N
    λά 1 : N


    ྫྷ੩ʹݟͨΒɺ


    ੑ࣭͕ҧ͏͜ͱ͕Θ͔Δ

    View Slide

  46. ը໘ઌߦͰߟ͑Δͱʁ
    API ΠϯλʔϑΣʔε͸ɺ


    ೔෇
    ͍͍Ͷ਺
    Tags
    λΠτϧ
    ৄࡉText
    Request: {


    Title: string,


    Created: timestamp,


    detailText: text,


    Likes: number,


    Tags: string[],


    }

    View Slide

  47. ը໘ઌߦͰߟ͑Δͱʁ
    API ΠϯλʔϑΣʔε͸ɺ


    ͦͯ͠ςʔϒϧ͸ɺ
    ೔෇
    ͍͍Ͷ਺
    Tags
    λΠτϧ
    ৄࡉText
    Request: {


    Title: string,


    Created: timestamp,


    detailText: text,


    Likes: number,


    Tags: string[],


    }
    ౤ߘςʔϒϧ: {


    Title: string,


    Created: timestamp,


    detailText: text,


    Likes: number,


    Tags: string[],


    }

    View Slide

  48. ը໘ʹදࣔ͞ΕΔ΋ͷ͔͠ߟ͑ͳ͍
    ౤ߘ ʹରͯ͠ ͍͍ͶΛ௥Ճͨ͠Γɺ TagΛ௥Ճ͠Α͏ͱ͢Δͱɺ

    ඞͣ ౤ߘςʔϒϧࣗମʹߋ৽Λ͔͚ଓ͚ΔࣄʹͳΔɻ


    ಉҰςʔϒϧΛಉ࣌ଟൃతʹฤूૢ࡞͠Α͏ͱ͢ΔͱɺςʔϒϧϩοΫֻ͕͔Δɻ


    ςʔϒϧϩοΫ͕ੵΈॏͳΔͱɺγεςϜͷϘτϧωοΫʹɻ


    γεςϜςετ࣌ʹ͜Ε͕໌Β͔ʹͳͬͯɺશ໘తʹෛՙվળʹ৐Γग़͢ͱΠϯύΫτେɻ

    View Slide

  49. ը໘ʹදࣔ͞ΕΔ΋ͷ͔͠ߟ͑ͳ͍
    ౤ߘ ʹରͯ͠ ͍͍ͶΛ௥Ճͨ͠Γɺ TagΛ௥Ճ͠Α͏ͱ͢Δͱɺ

    ඞͣ ౤ߘςʔϒϧࣗମʹߋ৽Λ͔͚ଓ͚ΔࣄʹͳΔɻ


    ಉҰςʔϒϧΛಉ࣌ଟൃతʹฤूૢ࡞͠Α͏ͱ͢ΔͱɺςʔϒϧϩοΫֻ͕͔Δɻ


    ςʔϒϧϩοΫ͕ੵΈॏͳΔͱɺγεςϜͷϘτϧωοΫʹɻ


    γεςϜςετ࣌ʹ͜Ε͕໌Β͔ʹͳͬͯɺશ໘తʹෛՙվળʹ৐Γग़͢ͱΠϯύΫτେɻ

    View Slide

  50. ը໘ʹදࣔ͞ΕΔ΋ͷ͔͠ߟ͑ͳ͍
    ౤ߘ ʹରͯ͠ ͍͍ͶΛ௥Ճͨ͠Γɺ TagΛ௥Ճ͠Α͏ͱ͢Δͱɺ

    ඞͣ ౤ߘςʔϒϧࣗମʹߋ৽Λ͔͚ଓ͚ΔࣄʹͳΔɻ


    ಉҰςʔϒϧΛಉ࣌ଟൃతʹฤूૢ࡞͠Α͏ͱ͢ΔͱɺςʔϒϧϩοΫֻ͕͔Δɻ


    ςʔϒϧϩοΫ͕ੵΈॏͳΔͱɺγεςϜͷϘτϧωοΫʹɻ


    γεςϜςετ࣌ʹ͜Ε͕໌Β͔ʹͳͬͯɺશ໘తʹෛՙվળʹ৐Γग़͢ͱΠϯύΫτେɻ


    ͦͷ݁Ռ…

    View Slide

  51. View Slide

  52. ղܾํ๏
    ը໘Ͱ߲໨Λચ͍ग़͢ͷ͸ѱ͍͜ͱͰ͸ͳ͍ɻΉ͠Ζඞཁɻ

    View Slide

  53. ղܾํ๏
    ը໘Ͱ߲໨Λચ͍ग़͢ͷ͸ѱ͍͜ͱͰ͸ͳ͍ɻΉ͠Ζඞཁɻ


    Ͱ΋ɺ͚ͦͩ͜஫ҙͯ͠ςʔϒϧߏ଄·Ͱ࡞Γ࢝Ίͯ͠·͏ͱNG.

    View Slide

  54. ղܾํ๏
    ը໘Ͱ߲໨Λચ͍ग़͢ͷ͸ѱ͍͜ͱͰ͸ͳ͍ɻΉ͠Ζඞཁɻ


    Ͱ΋ɺ͚ͦͩ͜஫ҙͯ͠ςʔϒϧߏ଄·Ͱ࡞Γ࢝Ίͯ͠·͏ͱNG.


    ͖ͪΜͱը໘Λ࢖͏ಈػɾಋઢɺσʔλͷੑ࣭΋ߟྀʹೖΕͯςʔϒϧఆٛ΍APIΛઃܭ͢Δ͜
    ͱ͕େࣄɻ

    View Slide

  55. ղܾํ๏
    ը໘Ͱ߲໨Λચ͍ग़͢ͷ͸ѱ͍͜ͱͰ͸ͳ͍ɻΉ͠Ζඞཁɻ


    Ͱ΋ɺ͚ͦͩ͜஫ҙͯ͠ςʔϒϧߏ଄·Ͱ࡞Γ࢝Ίͯ͠·͏ͱNG.


    ͖ͪΜͱը໘Λ࢖͏ಈػɾಋઢɺσʔλͷੑ࣭΋ߟྀʹೖΕͯςʔϒϧఆٛ΍APIΛઃܭ͢Δ͜
    ͱ͕େࣄɻ


    ͦͷͨΊͷٕज़΍ߟ͑ํ͕ɺDDD΍ICONIXͳͲͷυϝΠϯۦಈઃܭ΍Ϣʔεέʔεۦಈઃܭʹ
    ֘౰͢Δɻ

    View Slide

  56. ղܾํ๏
    ࠓճͷ৔߹ͰࢲͩͬͨΒɺςʔϒϧΛ̏ͭ
    ʹ෼͚Δɻ


    ౤ߘςʔϒϧ: {


    postId: string,


    Title: string,


    Created: timestamp,


    detailText: text,


    }
    ͍͍Ͷ਺: {


    likeId: string,


    postId: string,


    }
    λά: {


    tagId: string


    Name: string


    }

    View Slide

  57. ղܾํ๏
    ࠓճͷ৔߹ͰࢲͩͬͨΒɺςʔϒϧΛ̏ͭʹ
    ෼͚Δɻ


    ͜ΕͰߋ৽λΠϛϯά΍ର৅ςʔϒϧ΋͹Β
    ͚ΔͷͰɺσουϩοΫͷස౓͕Լ͕Δ͸
    ͣɻ


    ౤ߘςʔϒϧ: {


    postId: string,


    Title: string,


    Created: timestamp,


    detailText: text,


    }
    ͍͍Ͷ਺: {


    likeId: string,


    postId: string,


    }
    λά: {


    tagId: string


    Name: string


    }

    View Slide

  58. ղܾํ๏
    ࠓճͷ৔߹ͰࢲͩͬͨΒɺςʔϒϧΛ̏ͭʹ෼
    ͚Δɻ


    ͜ΕͰߋ৽λΠϛϯά΍ର৅ςʔϒϧ΋͹Β͚
    ΔͷͰɺσουϩοΫͷස౓͕Լ͕Δ͸ͣɻ


    ࠓճ͸͜ͷΑ͏ʹΘ͔Γ΍͍͢ྫ͕ͩɺຊ౰͸
    ΋ͬͱೖΓ૊ΜͰ͍ΔͷͰ͔ͬ͠Γ෼ղ͕ඞཁ
    ʹͳΔɻ


    ౤ߘςʔϒϧ: {


    postId: string,


    Title: string,


    Created: timestamp,


    detailText: text,


    }
    ͍͍Ͷ਺: {


    likeId: string,


    postId: string,


    }
    λά: {


    tagId: string


    Name: string


    }

    View Slide

  59. ·ͱΊ

    View Slide

  60. • API͸ࣗ໌Ͱ͋Δ͜ͱΛҡ࣋͢Δ͜ͱ


    • ௐࠪΛ؆ུʹɻ


    • ࢖༻ײΛ໌Β͔ʹɻ
    ݁࿦

    View Slide

  61. • API͸ࣗ໌Ͱ͋Δ͜ͱΛҡ࣋͢Δ͜ͱ


    • ௐࠪΛ؆ུʹɻ


    • ࢖༻ײΛ໌Β͔ʹɻ


    • σʔλͷੑ࣭΍ߏ଄Λ͔ͬ͠ΓਪᏏ͢Δ͜ͱ


    • ϞσϦϯά΍DDD, Iconix ͸༗ޮɻ
    ݁࿦

    View Slide

  62. • API͸ࣗ໌Ͱ͋Δ͜ͱΛҡ࣋͢Δ͜ͱ


    • ௐࠪΛ؆ུʹɻ


    • ࢖༻ײΛ໌Β͔ʹɻ


    • σʔλͷੑ࣭΍ߏ଄Λ͔ͬ͠ΓਪᏏ͢Δ͜ͱ


    • ϞσϦϯά΍DDD, Iconix ͸༗ޮɻ


    • WebAPIΛ࢖͏ͳΒɺͦͷੑ࣭Λ೺Ѳ্ͨ͠Ͱ
    ࢖͓͏ɻ
    ݁࿦

    View Slide

  63. • API͸ࣗ໌Ͱ͋Δ͜ͱΛҡ࣋͢Δ͜ͱ


    • ௐࠪΛ؆ུʹɻ


    • ࢖༻ײΛ໌Β͔ʹɻ


    • σʔλͷੑ࣭΍ߏ଄Λ͔ͬ͠ΓਪᏏ͢Δ͜ͱ


    • ϞσϦϯά΍DDD, Iconix ͸༗ޮɻ


    • WebAPIΛ࢖͏ͳΒɺͦͷੑ࣭Λ೺Ѳ্ͨ͠Ͱ࢖
    ͓͏ɻ


    ͜Ε͕ແࢹ͞ΕΔͱɺ࢒ۀ͕૿͑ΔΑɻ
    ݁࿦

    View Slide

  64. Peacock Engineer Group
    • ڌ఺


    • ৽ׁݝ௕Ԭࢢ


    • PEGͷ໨త


    • ஍Ҭ΍ձࣾɾࣾձਓ΍ֶੜͳͲͷ֞ࠜΛ௒͑ͯɺࣗ
    ༝ʹٕज़ྗΛߴΊ߹͑ΔίϛϡχςΟʹ!!


    • PEG͕औΓѻ͏ςʔϚ


    • ໌೔͔Β࢖͑ΔTips!!


    • ӡӦελοϑਵ࣌ืूத!!

    View Slide

  65. PEACOCK 03
    ࿩୊ͷઃܭΛʮॳ৺ऀ޲͚ʯʹʮѹ౗త࢖͍΍͢͞Ͱ໌೔͔
    ΒಋೖͰ͖Δʯ࿩Λ͢Δ໷͕͋ͬͯ΋͍͍Μ͡Όͳ͍͔ʁ


    4/12 19:00 - 21:00 ΦϯϥΠϯ։࠵ʢCONNPASS )

    View Slide

  66. ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠

    View Slide