What is `Bounded Context` in Domain Driven Design(DDD)
#PVOEFE$POUFYU࠶ೖ!QFUJUWJPMFU
View Slide
͓͠ͳ͕͖w #PVOEFE$POUFYUͬͯͳʹw Կ͕خ͍͠ʁw #PVOEFE$POUFYUͷΓํw ྫ͑w $POUFYUͷ౷߹w ·ͱΊ
#PVOEFE$POUFYUͬͯͳʹʁ
ఆٛͨ͠Ϟσϧ͕ద༻͞ΕΔείʔϓ
#PVOEFE$POUFYUͱw ఆٛͨ͠Ϟσϧ͕ద༻͞ΕΔείʔϓw ϞσϧͷதʹͦͷϞσϧͷ֓೦ɺϧʔϧɺϢϏΩλεݴޠؚ͕·Ε͍ͯΔw ผͷ$POUFYUʹ͓͍ͯద༻͞Εͳ͍w $POUFYUͰϞσϧݫີʹҰ؏ੑΛอͭ
#PVOEFE$POUFYUԿ͕خ͍͠ʁ
͍είʔϓͰϞσϧΛద༻WTڱ͍είʔϓͰϞσϧΛద༻
͍είʔϓͰϞσϧΛద༻WTڱ͍είʔϓͰϞσϧΛద༻ͲͪΒ͕ɺϞσϧ͕໌֬ʹͳΔ͔ͲͪΒ͕ɺҰ؏ੑΛอ͍͔ͪ͢
#PVOEFE$POUFYUԿ͕خ͍͠ʁw ʮ$POUFYUʯͱ͍͏ڥքΛҾ͘͜ͱʹΑͬͯɺԿʹҰ؏ੑΛ࣋ͨͤΔ͖Ͱ͋Δͷ͔͕໌֬ʹͳΔw ࣗ༝ͳੈքΑΓదͳ੍w ֎෦ͷ$POUFYUʹҙࣝΛ͚Δඞཁ͕ͳ͘ͳΓɺϞσϧΛ७ਮʹอͭ͜ͱ͕ग़དྷΔ
#PVOEFE$POUFYUԿ͕خ͍͠ʁw $POUFYUͷଘࡏͰΤϯδχΞͷ͕࢟มΘΔʁw Ϟσϧ͕ద༻͞ΕΔείʔϓ͕ڱ·Δw Ұ؏ੑΛอ͖ͭείʔϓڱ·Δw ڱ͍είʔϓ͔ͩΒͦ͜ݫີʹकΔ
#PVOEFE$POUFYUͷΓํ
ͲΜͳ୯ҐͰΕ͍͍ʁΤϯςΟςΟԿݸ͘Β͍ʁ
ਖ਼ղͳ͍
ϢϏΩλεݴޠʹͳ͍Α͏ͳ֓೦ΛϞσϧʹऔΓࠐΜͩΓɺ͋Δ͍େࣄͳ֓೦Λ֎ʹग़ͨ͠Γ͠ͳ͍Α͏ʹؾΛ͚Α͏ɻ
Ͳ͏ͬͯ#PVOEFE$POUFYUΛΔ͔w ཧతʹΘ͚Δw νʔϜฤw ίʔυϕʔεw σʔλϕʔεεΩʔϚw FUDw $POUFYUࣗʹϢϏΩλεͳ໊લΛ͚ͭΔw ଞͷ$POUFYUͱ໌֬ʹ۠ผ͢Δ
ͨͱ͑ग़൛ࣾͷۀ
ग़൛ࣾͷۀॻ੶ͷ༰ΛҊͱͯ͠·ͱΊɺىҊ͢Δஶऀͱग़൛ܖΛ݁Ϳॻ੶ͷࣥචͱฤूͷϓϩηεΛཧ͢Δॻ੶ͷஸૠֆΛσβΠϯ͢Δॻ੶Λଞͷݴޠʹ༁͢Δࢴͷॻ੶ిࢠ൛Λ࡞͢Δॻ੶Λએ͢Δॻ੶Λ࠶ൢۀऀʹൢച͢Δࢴͷॻ੶Λ࠶ൢۀऀސ٬ʹग़ՙ͢Δ
ग़൛ࣾͷۀॻ੶ͷ༰ΛҊͱͯ͠·ͱΊɺىҊ͢Δஶऀͱग़൛ܖΛ݁Ϳॻ੶ͷࣥචͱฤूͷϓϩηεΛཧ͢Δॻ੶ͷஸૠֆΛσβΠϯ͢Δॻ੶Λଞͷݴޠʹ༁͢Δࢴͷॻ੶ిࢠ൛Λ࡞͢Δॻ੶Λએ͢Δॻ੶Λ࠶ൢۀऀʹൢച͢Δࢴͷॻ੶Λ࠶ൢۀऀސ٬ʹग़ՙ͢Δશͯผͷ$POUFYU
ग़൛ࣾͷۀॻ੶ͷ༰ΛҊͱͯ͠·ͱΊɺىҊ͢Δஶऀͱग़൛ܖΛ݁Ϳॻ੶ͷࣥචͱฤूͷϓϩηεΛཧ͢Δॻ੶ͷஸૠֆΛσβΠϯ͢Δॻ੶Λଞͷݴޠʹ༁͢Δࢴͷॻ੶ిࢠ൛Λ࡞͢Δॻ੶Λએ͢Δॻ੶Λ࠶ൢۀऀʹൢച͢Δࢴͷॻ੶Λ࠶ൢۀऀސ٬ʹग़ՙ͢Δʮॻ੶ʯશ෦ಉ͡ͷʁ
ग़൛ࣾͷۀw ʮॻ੶ʯw ಉ͡ݴ༿͚ͩͲಉ͡ͷͰͳ͍w ֤$POUFYUʹ͓͍ͯఆ͕ٛҧ͏w ࣥචϓϩηεͷॻ੶w ߘɺίϝϯτɺߍਖ਼ɺFUDw ग़ՙϓϩηεͷॻ੶w ݿͷҐஔɺࡏݿɺαΠζɺFUDw ಉࣝ͡ผࢠΛڞ༗ͯ͠Մೳʹ͢Δ͕ɺ֤$POUFYUʹ͓͚Δʮॻ੶ʯΛද͢ϞσϧҟͳΔ
$POUFYUͷ౷߹
$POUFYUͷ౷߹w #PVOEFE$POUFYUͰۀΛΓ͚ͨw ͡Ό͋Ͳ͏ͬͯ࿈ܞ͢Δ͔w ίϯςΩετϚοϓw ౷߹ύλʔϯ
ίϯςΩετϚοϓ
ίϯςΩετϚοϓw ϓϩδΣΫτʹؔΘΔڥք͚ΒΕͨίϯςΩετͱͦΕΒͷ౷߹ؔΛࣔ͢ͷw طଘͷγεςϜͷશΛѲͰ͖Δw ίϛϡχέʔγϣϯ͕ඞཁͳνʔϜΛಛఆ͢Δw 6QTUSFBN%PXOTUSFBNw ্ྲྀԼྲྀ
$POUFYU౷߹ύλʔϯ
$POUFYU౷߹ύλʔϯw ύʔτφʔγοϓw ୯ҰͷίϯςΩετw ڞ༗Χʔωϧw ެ։ϗεταʔϏεw ސ٬ڙڅऀw ॱԠऀw ഊࢭw ผʑͷಓ
$POUFYU౷߹ύλʔϯw ύʔτφʔγοϓw ୯ҰͷίϯςΩετw ڞ༗Χʔωϧw ެ։ϗεταʔϏεw ސ٬ڙڅऀw ॱԠऀw ഊࢭw ผʑͷಓޭࣦഊͷӡ໋Λڞʹ͢ΔνʔϜؒͰڠྗؔΛங͘ඞཁ͕͋Δ
$POUFYU౷߹ύλʔϯw ύʔτφʔγοϓw ୯ҰͷίϯςΩετw ڞ༗Χʔωϧw ެ։ϗεταʔϏεw ސ٬ڙڅऀw ॱԠऀw ഊࢭw ผʑͷಓίϯςΩετ͕ͭɻҎ্ɻ
$POUFYU౷߹ύλʔϯw ύʔτφʔγοϓw ୯ҰͷίϯςΩετw ڞ༗Χʔωϧw ެ։ϗεταʔϏεw ސ٬ڙڅऀw ॱԠऀw ഊࢭw ผʑͷಓͭͷίϯςΩετΛෳͷίϯςΩετ͕ࢀর
$POUFYU౷߹ύλʔϯw ύʔτφʔγοϓw ୯ҰͷίϯςΩετw ڞ༗Χʔωϧw ެ։ϗεταʔϏεw ސ٬ڙڅऀw ॱԠऀw ഊࢭw ผʑͷಓΞΫηε͢ΔͨΊͷϓϩτίϧΛެ։͢Δ
$POUFYU౷߹ύλʔϯw ύʔτφʔγοϓw ୯ҰͷίϯςΩετw ڞ༗Χʔωϧw ެ։ϗεταʔϏεw ސ٬ڙڅऀw ॱԠऀw ഊࢭw ผʑͷಓ্ྲྀͱԼྲྀʹΘ͔ΕͯԼྲྀͷ݁Ռʹ্ྲྀ͕ίϛοτ͢Δ
$POUFYU౷߹ύλʔϯw ύʔτφʔγοϓw ୯ҰͷίϯςΩετw ڞ༗Χʔωϧw ެ։ϗεταʔϏεw ސ٬ڙڅऀw ॱԠऀw ഊࢭw ผʑͷಓ্ྲྀͱԼྲྀʹΘ͔ΕΔ͕Լྲ্ྀྲྀʹ߹ΘͤΔ͔͠ͳ͍
$POUFYU౷߹ύλʔϯw ύʔτφʔγοϓw ୯ҰͷίϯςΩετw ڞ༗Χʔωϧw ެ։ϗεταʔϏεw ސ٬ڙڅऀw ॱԠऀw ഊࢭw ผʑͷಓ্ྲྀΛִ͢ΔͨΊͷมΛ௨ͯ͠Լྲ্ྀ͕ྲྀΛར༻͢Δ
$POUFYU౷߹ύλʔϯw ύʔτφʔγοϓw ୯ҰͷίϯςΩετw ڞ༗Χʔωϧw ެ։ϗεταʔϏεw ސ٬ڙڅऀw ॱԠऀw ഊࢭw ผʑͷಓ౷߹ఘΊΔ
$POUFYU౷߹ύλʔϯw ύʔτφʔγοϓw ୯ҰͷίϯςΩετw ڞ༗Χʔωϧw ެ։ϗεταʔϏεw ސ٬ڙڅऀw ॱԠऀw ഊࢭw ผʑͷಓ౷߹ύλʔϯΛࢀߟʹίϯςΩετɾνʔϜͷؔΛ໌֬ʹͯ͠͏·͘࿈ܞ͍ͯ͘͜͠ͱ͕େࣄ
·ͱΊ
#PVOEFE$POUFYUҰମͳΜͩͬͨͷ͔
#PVOEFE$POUFYUҰମͳΜͩͬͨͷ͔w ఆٛ͢ΔϞσϧ͕ద༻͞ΕΔείʔϓw ϞσϧΛΑΓ໌֬ʹ͢ΔͨΊw ίϯςΩετϚοϓΛඳ͘w શମΛ၆ᛌ͠ɺίϛϡχέʔγϣϯ͢Δw ίϯςΩετΛ౷߹͢Δw Ͳ͏࿈ܞ͢Δ͔Λ໌Β͔ʹ
େنγεςϜ։ൃΛνʔϜʹΘ͔Εͯ࿈ܞ͍ͯͨ͘͠Ίͷ֓೦
֤νʔϜϞσϧίϛϡχέʔγϣϯʹ͍ͭͯߟ͑Δ͜ͱ͕ݮΔWTཧతʹΘ͔ΕΔͷͰௐͱ͔σϓϩΠͱ͔ӡ༻ͱ͔Ͱߟ͑Δ͜ͱ͕૿͑Δ