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

ドメイン駆動設計基礎講座_ドメインと組織編_

 ドメイン駆動設計基礎講座_ドメインと組織編_

かとじゅん

June 05, 2019
Tweet

More Decks by かとじゅん

Other Decks in Programming

Transcript

  1. αϒυϝΠϯ w ίΞυϝΠϯ w ૊৫Λ੒ޭʹಋ͘࠷΋ॏཁͳ ΋ͷ w αϒυϝΠϯ w ࢧԉυϝΠϯ

    w Ϗδωεʹ͸ඞཁෆՄܽͩ ͕ίΞυϝΠϯ΄ͲॏཁͰ ͳ͍΋ͷ w ൚༻υϝΠϯ w ϏδωεʹಛผͰ͸ͳ͍͕ શମͱͯ͠ඞཁͳ΋ͷ ೝূ ܥ ֎෦&31ͳͲࠩ͠ସ͑ Մೳͳ΋ͷ υϝΠϯ ࢧԉυϝΠϯ ൚༻υϝΠϯ ίΞυϝΠϯ
  2. &ίϚʔεͷυϝΠϯ෼ੳྫ υϝΠϯ &ίϚʔε#$ ঎඼Χλϩά ஫จ ੥ٻ ൃૹ ࡏݿ w ଟ͘ͷؔ৺ࣄ͕୯Ұ#$ʹด͡ࠐΊΒΕ΋͢΂ͯͷཁٻʹରԠͰ͖ͳ͍

    w ຊ࣭తͰ͸ͳ͍ґଘ͕ൃੜ͠มߋ༰қੑ͕௿Լ͢Δ w ૊৫ͷίϛϡχέʔγϣϯ΋ෳࡶԽ͢Δ w ຊདྷ͸αϒυϝΠϯɾ#$ຖʹ෼ׂ͞ΕΔ΂͖ w ग़య࣮ફυϝΠϯۦಈઃܭ
  3. αϒυϝΠϯͷ෼ੳ w ෳࡶʹབྷΈ߹ͬͨϞ σϧΛղ๤͠ɺػೳ ʹج͍ͮͨαϒυϝ Πϯʹ෼ׂ͢Δ w αϒυϝΠϯ΍#$ͷ ؔ܎ੑ΋੔ཧ͢Δ w

    #$͕αϒυϝΠϯ ͚ͩͰ੒Γཱͭͱ͸ ݶΒͳ͍͕ɺͰ͖Ε ͹#$ʹαϒυϝΠ ϯ͕๬·͍͠ w ग़య࣮ફυϝΠϯۦ ಈઃܭ υϝΠϯ &ίϚʔε#$ ੥ٻ ஫จ ঎඼Χλϩά ࡏݿ#$ ൃૹ धཁ༧ଌ#$ ࡏݿ
  4. ίϯςΩετϚοϓͷ໨త w γεςϜؒͷؔ܎Λద੾ʹ೺ ѲͰ͖Δ w νʔϜ͸طଘγεςϜͱͷ࿈ ܞํ๏Λ೺ѲͰ͖ɺଞνʔϜ ͱͷίϛϡχέʔγϣϯͷඞ ཁੑΛ൑அͰ͖ΔΑ͏ʹͳΔ w

    ίϯςΩετϚοϓ͸૊৫ؒ ͷ໰୊Λݟ͚ͭग़ͤΔ།Ұͷ υΩϡϝϯτͱͳΔͨΊɺϓ ϩδΣΫτͷ੒ޭʹෆՄܽͱ ͞Ε͍ͯΔ w ग़య࣮ફυϝΠϯۦಈઃܭ ೝূɾΞΫηε ΞδϟΠϧ ϓϩδΣΫτ؅ཧ ίϥϘϨʔγϣϯ 6 6 6 % % %
  5. ίϯςΩετϚοϓͷύλʔϯ w ૊৫ύλʔϯ w νʔϜͷؔ܎Λ ද͢ w ౷߹ύλʔϯ w σʔλͱγες

    Ϝͷ࿈ܞํ๏Λ ද͢ νʔϜ# νʔϜ" γεςϜ# γεςϜ" ձ࿩ σʔλ
  6. ސ٬ڙڅऀ w ্ྲྀԼྲྀؔ܎͕͋Δ૊৫ύλʔ ϯɻͨͩ͠ɺ্ྲྀͷνʔϜ͕੒ޭ ͢Δ͔Ͳ͏͔͕Լྲྀͷ݁Ռʹࠨӈ ͞ΕΔ w ্ྲྀνʔϜ͸ԼྲྀνʔϜͷχʔζ ʹ༷ʑͳํ๏ͰରԠ͢Δඞཁ͕͋ ΔɻԼྲྀͷ༏ઌॱҐΛߟྀͯ͠ɺ

    ্ྲྀͷϓϥϯχϯάΛߦ͏ɻԼྲྀ ͷཁ݅ʹඞཁͱͳΔ࡞ۀʹ͍ͭͯ ަব͠ɺ༧ࢉΛཱͯΔ͜ͱͰఏڙ ͷ໿ଋͱεέδϡʔϧΛશһ͕ཧ ղͰ͖ΔΑ͏ʹ͢Δ $POUFYU# $POUFYU" 6QTUSFBN %PXOTUSFBN
  7. ڊେͳటஂࢠ #JH#BMMPG.VE w ڥք͕ͳ͍΋͘͠͸ᐆດͳγεςϜΛ ࣔ͢Ξϯνύλʔϯ w ෳ਺ͷ֓೦ମܥ͕ࠞ͟Γ߹͍ɺఆٛ΍ ϧʔϧ͕ᐆດͳͬͨΓໃ६͢Δɻػೳ ௥Ճ͞ΕΔͱJGDBTFͳͲͷ෼ذϩδο Ϋ͕૿͑Δɻґଘؔ܎͸ιϑτ΢ΣΞ

    Λԣஅ͠࠷ऴతʹటஂࢠʹͳΔ w &ίϚʔεͷ঎඼ͱࡏݿͷ঎඼͸ผͷ ֓೦͕ͩɺڥք͕ͳ͍ͷͰ͢΂ͯͷཁ ٻΛຬͨ͢ɺਆϞσϧͱͯ͠ͷ঎඼Ϟ σϧ͕Ͱ͖͕͋Δɻཧղ΋มߋ΋ࠔ೉ ʹʜ w ࠷΋ਓؾ͕͋Δઃܭख๏Ͱ΋͋Δʜ $POUFYU# $POUFYU" $POUFYU$
  8. ෗ഊ๷ࢭ૚ "$- w ෗ഊͨ͠ੈքͷϞσϧΛ৽͍͠ੈքʹ ࣋ͪࠐ·ͳ͍ͨΊͷ౷߹ύλʔϯ w ԼྲྀͷΫϥΠΞϯτ͸ִ཭͢ΔͨΊͷ ϨΠϠʔΛ࡞੒͢Δ͜ͱʹΑͬͯɺ্ ྲྀͷγεςϜͷػೳΛಠࣗͷυϝΠϯ Ϟσϧͷ༻ޠͰදݱ͢ΔػೳΛఏڙ͢

    Δ w "$-͸طଘͷ*'Λ౳ͯ͠ଞͷγες Ϝͱ௨৴͢ΔͷͰɺଞͷγεςϜΛम ਖ਼͢Δඞཁ͸΄ͱΜͲͳ͍͔ɺ·ͬͨ ͘ͳ͍͜ͱ΋͋Δɻ಺෦తʹ͸ɺ͜ͷ ϨΠϠʔ͕ඞཁʹԠͯ͡ೋͭͷϞσϧ ؒͰͷม׵Λ྆ํ޲ʹରͯ͠ߦ͏ $POUFYU# $POUFYU" "$-
  9. ίϯ΢ΣΠͷ๏ଇ w γεςϜΛઃܭ͢Δ͋ΒΏΔ૊৫͸ɺඞͣͦͷ૊৫ͷίϛϡχ έʔγϣϯߏ଄ʹ฿ ͳΒ ͬͨߏ଄Λ࣋ͭઃܭΛੜΈग़͢ɻ w ͭ·Γɺ૊৫ͷߏ଄͸γεςϜͷߏ଄ͱἧ͑ͯͳ͚Ε͹ͳΒͳ ͍ɻ w

    ٯίϯ΢ΣΠઓུ ग़య"/"(*-&8":  w lࣗ෼ͨͪͷ๬·͍͠ΞʔΩςΫνϟઃܭΛଅਐ͢ΔΑ͏ ʹɺνʔϜͱ૊৫ଆΛػಈతʹਐԽͤ͞Δ͜ͱΛਪ঑͢Δɻ ཧ૝తʹ͸ʮٕज़తΞʔΩςΫνϟʯ͕ʮϏδωεΞʔΩς Ϋνϟʯͷಉܗࣸ૾ʹͳΔΑ͏ʹz w ʮਓؒ΍૊৫ؒͷίϛϡχέʔγϣϯʢ৘ใྲྀʣʯͱ͍͏΋ ͷ͕ιϑτ΢ΣΞ։ൃʹ͸ܾఆతͳΠϯύΫτΛ༩͑Δɺͱ ͍͏͜ͱΛ·ͣೝΊɺͦΕΛੵۃతʹ׆༻͢ΔΑ͏ʹɺͱ͍ ͏͜ͱͰ͢ɻ
  10. ·ͱΊ w ڥք͚ͮΒΕͨίϯςΩετ #$ ͸Ϟσϧͷ༗ޮൣ ғͱݴΘΕΔɻͦͷϞσϧ͸ར֐ؔ܎ऀؒ΍γεςϜ ؒͰར༻͞ΕΔɻ͜ͷಛੑʹ߹Θͤͯɺ૊৫ͷڥք ʹγεςϜͷڥքͱͳΔΑ͏ʹ͢Δ͜ͱ͕๬·ΕΔ w ʮιϑτ΢ΣΞ͸ձ࿩ͰͰ͖ͯΔʯͱ͍͏ݴ༿΋͋

    Δɻ૊৫͕վม͞ΕΔͱ͖͸ɺίϛϡχέʔγϣϯ ͷมԽ͕ιϑτ΢ΣΞ΁༩͑ΔӨڹΛແࢹͰ͖ͳ ͍ɻ൥ࡶͳίϛϡχέʔγϣϯ͸γεςϜΛෳࡶʹ͢ ΔՄೳੑ΋͋Δ͠ɺ૊৫ؒͷ໾ׂ͕γϯϓϧʹͳΕ ͹ɺͦΕΛ౤Өͨ͠γεςϜ΋γϯϓϧʹͳΔ͔΋͠ Εͳ͍