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

DDD BoundedContext

petitviolet
November 22, 2017

DDD BoundedContext

What is `Bounded Context` in Domain Driven Design(DDD)

petitviolet

November 22, 2017
Tweet

More Decks by petitviolet

Other Decks in Programming

Transcript

  1. #PVOEFE$POUFYU
    ࠶ೖ໳
    !QFUJUWJPMFU

    View Slide

  2. ͓͠ͳ͕͖
    w #PVOEFE$POUFYUͬͯͳʹ
    w Կ͕خ͍͠ʁ
    w #PVOEFE$POUFYUͷ੾Γํ
    w ྫ͑͹
    w $POUFYUͷ౷߹
    w ·ͱΊ

    View Slide

  3. #PVOEFE$POUFYU
    ͬͯͳʹʁ

    View Slide

  4. ఆٛͨ͠Ϟσϧ͕
    ద༻͞ΕΔείʔϓ

    View Slide

  5. #PVOEFE$POUFYUͱ͸
    w ఆٛͨ͠Ϟσϧ͕ద༻͞ΕΔείʔϓ
    w Ϟσϧͷதʹ͸ͦͷϞσϧͷ֓೦ɺϧʔϧɺ
    ϢϏΩλεݴޠؚ͕·Ε͍ͯΔ
    w ผͷ$POUFYUʹ͓͍ͯ͸ద༻͞Εͳ͍
    w $POUFYU಺ͰϞσϧ͸ݫີʹҰ؏ੑΛอͭ

    View Slide

  6. #PVOEFE$POUFYU
    ͸Կ͕خ͍͠ʁ

    View Slide

  7. ޿͍είʔϓͰϞσϧΛద༻
    WT
    ڱ͍είʔϓͰϞσϧΛద༻

    View Slide

  8. ޿͍είʔϓͰϞσϧΛద༻
    WT
    ڱ͍είʔϓͰϞσϧΛద༻
    ͲͪΒ͕ɺϞσϧ͕໌֬ʹͳΔ͔
    ͲͪΒ͕ɺҰ؏ੑΛอͪ΍͍͔͢

    View Slide

  9. #PVOEFE$POUFYU͸Կ͕خ͍͠ʁ
    w ʮ$POUFYUʯͱ͍͏ڥքΛҾ͘͜ͱʹΑͬͯɺԿ
    ʹҰ؏ੑΛ࣋ͨͤΔ΂͖Ͱ͋Δͷ͔͕໌֬ʹͳΔ
    w ࣗ༝ͳੈքΑΓద౓ͳ੍໿
    w ֎෦ͷ$POUFYUʹҙࣝΛ޲͚Δඞཁ͕ͳ͘ͳΓɺ
    ϞσϧΛ७ਮʹอͭ͜ͱ͕ग़དྷΔ

    View Slide

  10. #PVOEFE$POUFYU͸Կ͕خ͍͠ʁ
    w $POUFYUͷଘࡏͰΤϯδχΞͷ࢟੎͕มΘΔʁ
    w Ϟσϧ͕ద༻͞ΕΔείʔϓ͕ڱ·Δ
    w Ұ؏ੑΛอͭ΂͖είʔϓ΋ڱ·Δ
    w ڱ͍είʔϓ͔ͩΒͦ͜ݫີʹकΔ

    View Slide

  11. #PVOEFE$POUFYU
    ͷ੾Γํ

    View Slide

  12. ͲΜͳ୯ҐͰ੾Ε͹͍͍ʁ
    ΤϯςΟςΟԿݸ͘Β͍ʁ

    View Slide

  13. ਖ਼ղ͸ͳ͍

    View Slide

  14. ϢϏΩλεݴޠʹͳ͍Α͏ͳ֓೦Λ
    ϞσϧʹऔΓࠐΜͩΓɺ
    ͋Δ͍͸େࣄͳ֓೦Λ֎ʹग़ͨ͠Γ
    ͠ͳ͍Α͏ʹؾΛ෇͚Α͏ɻ

    View Slide

  15. Ͳ͏΍ͬͯ#PVOEFE$POUFYUΛ੾Δ͔
    w ෺ཧతʹΘ͚Δ
    w νʔϜฤ੒
    w ίʔυϕʔε
    w σʔλϕʔεεΩʔϚ
    w FUD
    w $POUFYUࣗ਎ʹ΋ϢϏΩλεͳ໊લΛ͚ͭΔ
    w ଞͷ$POUFYUͱ໌֬ʹ۠ผ͢Δ

    View Slide

  16. ͨͱ͑͹
    ग़൛ࣾͷۀ຿

    View Slide

  17. ग़൛ࣾͷۀ຿
    ॻ੶ͷ಺༰ΛҊͱͯ͠·ͱΊɺىҊ͢Δ
    ஶऀͱग़൛ܖ໿Λ݁Ϳ
    ॻ੶ͷࣥචͱฤूͷϓϩηεΛ؅ཧ͢Δ
    ॻ੶ͷ૷ஸ΍ૠֆΛσβΠϯ͢Δ
    ॻ੶Λଞͷݴޠʹ຋༁͢Δ
    ࢴͷॻ੶΍ిࢠ൛Λ࡞੒͢Δ
    ॻ੶Λએ఻͢Δ
    ॻ੶Λ࠶ൢۀऀʹൢച͢Δ
    ࢴͷॻ੶Λ࠶ൢۀऀ΍ސ٬ʹग़ՙ͢Δ

    View Slide

  18. ग़൛ࣾͷۀ຿
    ॻ੶ͷ಺༰ΛҊͱͯ͠·ͱΊɺىҊ͢Δ
    ஶऀͱग़൛ܖ໿Λ݁Ϳ
    ॻ੶ͷࣥචͱฤूͷϓϩηεΛ؅ཧ͢Δ
    ॻ੶ͷ૷ஸ΍ૠֆΛσβΠϯ͢Δ
    ॻ੶Λଞͷݴޠʹ຋༁͢Δ
    ࢴͷॻ੶΍ిࢠ൛Λ࡞੒͢Δ
    ॻ੶Λએ఻͢Δ
    ॻ੶Λ࠶ൢۀऀʹൢച͢Δ
    ࢴͷॻ੶Λ࠶ൢۀऀ΍ސ٬ʹग़ՙ͢Δ
    શͯผͷ$POUFYU

    View Slide

  19. ग़൛ࣾͷۀ຿
    ॻ੶ͷ಺༰ΛҊͱͯ͠·ͱΊɺىҊ͢Δ
    ஶऀͱग़൛ܖ໿Λ݁Ϳ
    ॻ੶ͷࣥචͱฤूͷϓϩηεΛ؅ཧ͢Δ
    ॻ੶ͷ૷ஸ΍ૠֆΛσβΠϯ͢Δ
    ॻ੶Λଞͷݴޠʹ຋༁͢Δ
    ࢴͷॻ੶΍ిࢠ൛Λ࡞੒͢Δ
    ॻ੶Λએ఻͢Δ
    ॻ੶Λ࠶ൢۀऀʹൢച͢Δ
    ࢴͷॻ੶Λ࠶ൢۀऀ΍ސ٬ʹग़ՙ͢Δ

    View Slide

  20. ग़൛ࣾͷۀ຿
    ॻ੶ͷ಺༰ΛҊͱͯ͠·ͱΊɺىҊ͢Δ
    ஶऀͱग़൛ܖ໿Λ݁Ϳ
    ॻ੶ͷࣥචͱฤूͷϓϩηεΛ؅ཧ͢Δ
    ॻ੶ͷ૷ஸ΍ૠֆΛσβΠϯ͢Δ
    ॻ੶Λଞͷݴޠʹ຋༁͢Δ
    ࢴͷॻ੶΍ిࢠ൛Λ࡞੒͢Δ
    ॻ੶Λએ఻͢Δ
    ॻ੶Λ࠶ൢۀऀʹൢച͢Δ
    ࢴͷॻ੶Λ࠶ൢۀऀ΍ސ٬ʹग़ՙ͢Δ
    ʮॻ੶ʯ
    શ෦ಉ͡΋ͷʁ

    View Slide

  21. ग़൛ࣾͷۀ຿
    w ʮॻ੶ʯ
    w ಉ͡ݴ༿͚ͩͲಉ͡΋ͷͰ͸ͳ͍
    w ֤$POUFYUʹ͓͍ͯఆ͕ٛҧ͏
    w ࣥචϓϩηεͷॻ੶
    w ૲ߘɺίϝϯτɺߍਖ਼ɺFUD
    w ग़ՙϓϩηεͷॻ੶
    w ૔ݿͷҐஔɺࡏݿ਺ɺαΠζɺFUD
    w ಉࣝ͡ผࢠΛڞ༗ͯ͠௥੻Մೳʹ͢Δ͕ɺ
    ֤$POUFYUʹ͓͚Δʮॻ੶ʯΛද͢Ϟσϧ͸ҟͳΔ

    View Slide

  22. $POUFYUͷ౷߹

    View Slide

  23. $POUFYUͷ౷߹
    w #PVOEFE$POUFYUͰۀ຿Λ੾Γ෼͚ͨ
    w ͡Ό͋Ͳ͏΍ͬͯ࿈ܞ͢Δ͔
    w ίϯςΩετϚοϓ
    w ౷߹ύλʔϯ

    View Slide

  24. ίϯςΩετϚοϓ

    View Slide

  25. ίϯςΩετϚοϓ
    w ϓϩδΣΫτʹؔΘΔڥք෇͚ΒΕͨίϯςΩε
    τͱͦΕΒͷ౷߹ؔ܎Λࣔ͢΋ͷ
    w طଘͷγεςϜͷશ๴Λ೺ѲͰ͖Δ
    w ίϛϡχέʔγϣϯ͕ඞཁͳνʔϜΛಛఆ͢Δ
    w 6QTUSFBN%PXOTUSFBN
    w ্ྲྀԼྲྀ

    View Slide

  26. $POUFYU౷߹ύλʔϯ

    View Slide

  27. $POUFYU౷߹ύλʔϯ
    w ύʔτφʔγοϓ
    w ୯ҰͷίϯςΩετ
    w ڞ༗Χʔωϧ
    w ެ։ϗεταʔϏε
    w ސ٬ڙڅऀ
    w ॱԠऀ
    w ෗ഊ๷ࢭ૚
    w ผʑͷಓ

    View Slide

  28. $POUFYU౷߹ύλʔϯ
    w ύʔτφʔγοϓ
    w ୯ҰͷίϯςΩετ
    w ڞ༗Χʔωϧ
    w ެ։ϗεταʔϏε
    w ސ٬ڙڅऀ
    w ॱԠऀ
    w ෗ഊ๷ࢭ૚
    w ผʑͷಓ
    ੒ޭࣦഊͷӡ໋Λڞʹ͢Δ
    νʔϜؒͰڠྗؔ܎Λங͘ඞཁ͕͋Δ

    View Slide

  29. $POUFYU౷߹ύλʔϯ
    w ύʔτφʔγοϓ
    w ୯ҰͷίϯςΩετ
    w ڞ༗Χʔωϧ
    w ެ։ϗεταʔϏε
    w ސ٬ڙڅऀ
    w ॱԠऀ
    w ෗ഊ๷ࢭ૚
    w ผʑͷಓ
    ίϯςΩετ͕ͭɻҎ্ɻ

    View Slide

  30. $POUFYU౷߹ύλʔϯ
    w ύʔτφʔγοϓ
    w ୯ҰͷίϯςΩετ
    w ڞ༗Χʔωϧ
    w ެ։ϗεταʔϏε
    w ސ٬ڙڅऀ
    w ॱԠऀ
    w ෗ഊ๷ࢭ૚
    w ผʑͷಓ
    ͭͷίϯςΩετΛ
    ෳ਺ͷίϯςΩετ͕ࢀর

    View Slide

  31. $POUFYU౷߹ύλʔϯ
    w ύʔτφʔγοϓ
    w ୯ҰͷίϯςΩετ
    w ڞ༗Χʔωϧ
    w ެ։ϗεταʔϏε
    w ސ٬ڙڅऀ
    w ॱԠऀ
    w ෗ഊ๷ࢭ૚
    w ผʑͷಓ
    ΞΫηε͢ΔͨΊͷ
    ϓϩτίϧΛެ։͢Δ

    View Slide

  32. $POUFYU౷߹ύλʔϯ
    w ύʔτφʔγοϓ
    w ୯ҰͷίϯςΩετ
    w ڞ༗Χʔωϧ
    w ެ։ϗεταʔϏε
    w ސ٬ڙڅऀ
    w ॱԠऀ
    w ෗ഊ๷ࢭ૚
    w ผʑͷಓ
    ্ྲྀͱԼྲྀʹΘ͔Εͯ
    Լྲྀͷ݁Ռʹ্ྲྀ͕ίϛοτ͢Δ

    View Slide

  33. $POUFYU౷߹ύλʔϯ
    w ύʔτφʔγοϓ
    w ୯ҰͷίϯςΩετ
    w ڞ༗Χʔωϧ
    w ެ։ϗεταʔϏε
    w ސ٬ڙڅऀ
    w ॱԠऀ
    w ෗ഊ๷ࢭ૚
    w ผʑͷಓ
    ্ྲྀͱԼྲྀʹΘ͔ΕΔ͕
    Լྲྀ͸্ྲྀʹ߹ΘͤΔ͔͠ͳ͍

    View Slide

  34. $POUFYU౷߹ύλʔϯ
    w ύʔτφʔγοϓ
    w ୯ҰͷίϯςΩετ
    w ڞ༗Χʔωϧ
    w ެ։ϗεταʔϏε
    w ސ٬ڙڅऀ
    w ॱԠऀ
    w ෗ഊ๷ࢭ૚
    w ผʑͷಓ
    ্ྲྀΛִ཭͢ΔͨΊͷ
    ม׵૚Λ௨ͯ͠
    Լྲ্ྀ͕ྲྀΛར༻͢Δ

    View Slide

  35. $POUFYU౷߹ύλʔϯ
    w ύʔτφʔγοϓ
    w ୯ҰͷίϯςΩετ
    w ڞ༗Χʔωϧ
    w ެ։ϗεταʔϏε
    w ސ٬ڙڅऀ
    w ॱԠऀ
    w ෗ഊ๷ࢭ૚
    w ผʑͷಓ
    ౷߹͸ఘΊΔ

    View Slide

  36. $POUFYU౷߹ύλʔϯ
    w ύʔτφʔγοϓ
    w ୯ҰͷίϯςΩετ
    w ڞ༗Χʔωϧ
    w ެ։ϗεταʔϏε
    w ސ٬ڙڅऀ
    w ॱԠऀ
    w ෗ഊ๷ࢭ૚
    w ผʑͷಓ
    ౷߹ύλʔϯΛࢀߟʹ
    ίϯςΩετɾνʔϜͷؔ܎Λ໌֬ʹͯ͠
    ͏·͘࿈ܞ͍ͯ͘͜͠ͱ͕େࣄ

    View Slide

  37. ·ͱΊ

    View Slide

  38. #PVOEFE$POUFYU͸
    ҰମͳΜͩͬͨͷ͔

    View Slide

  39. #PVOEFE$POUFYU͸ҰମͳΜͩͬͨͷ͔
    w ఆٛ͢ΔϞσϧ͕ద༻͞ΕΔείʔϓ
    w ϞσϧΛΑΓ໌֬ʹ͢ΔͨΊ
    w ίϯςΩετϚοϓΛඳ͘
    w શମΛ၆ᛌ͠ɺίϛϡχέʔγϣϯ͢Δ
    w ίϯςΩετΛ౷߹͢Δ
    w Ͳ͏࿈ܞ͢Δ͔Λ໌Β͔ʹ

    View Slide

  40. େن໛γεςϜ։ൃΛ
    νʔϜʹΘ͔Εͯ
    ࿈ܞ͍ͯͨ͘͠Ίͷ֓೦

    View Slide

  41. ֤νʔϜ͸
    Ϟσϧ΍ίϛϡχέʔγϣϯʹ͍ͭͯ
    ߟ͑Δ͜ͱ͕ݮΔ
    WT
    ෺ཧతʹΘ͔ΕΔͷͰ
    ௐ੔ͱ͔σϓϩΠͱ͔ӡ༻ͱ͔Ͱ
    ߟ͑Δ͜ͱ͕૿͑Δ

    View Slide

  42. View Slide