$30 off During Our Annual Pro Sale. View Details »

2019-08-31 DDD

2019-08-31 DDD

Mix Leap Study 特別編 - レガシーをぶっつぶせ。現場でDDD! コラボカンファレンス
現場でドメイン駆動設計を広げるには何をすれば良いか?

Tsuyoshi Yasunishi

August 31, 2019
Tweet

More Decks by Tsuyoshi Yasunishi

Other Decks in Technology

Transcript

  1. ݱ৔ͰυϝΠϯۦಈઃܭΛ
    ޿͛Δʹ͸ԿΛ͢Ε͹ྑ͍͔ʁ
    2019.08.31
    גࣜձࣾνʔϜϘοΫε ҆੢ ߶

    View Slide

  2. ϑΣʔζ
    ୭΋΍ͬͯͳ͍
    ϑΣʔζ
    ࣗ෼͸΍͍ͬͯΔ
    ϑΣʔζ
    ෳ਺ਓͰ΍͍ͬͯΔ
    ϑΣʔζ
    νʔϜͰ΍͍ͬͯΔ

    View Slide

  3. ϑΣʔζ
    ୭΋΍ͬͯͳ͍
    ϑΣʔζ
    ࣗ෼͸΍͍ͬͯΔ
    ϑΣʔζ
    ෳ਺ਓͰ΍͍ͬͯΔ
    ϑΣʔζ
    νʔϜͰ΍͍ͬͯΔ

    View Slide

  4. ୭΋΍͍ͬͯͳ͍
    Ͱ΋΍Γ͍ͨɻ
    ͦΜͳͱ͖ɺͲ͏͠·͔͢ʁ
    2୭΋΍͍ͬͯͳ͍ͱ͖

    View Slide

  5. ਓͰ࢝ΊΔ

    View Slide

  6. ਓͰ໧ͬͯ΍Δ
    ϓϩμΫτίʔυͰ࿅श͢Δ
    উखʹϓϩμΫτίʔυʹೖΕΔ

    View Slide

  7. ϑΣʔζ
    ୭΋΍ͬͯͳ͍
    ϑΣʔζ
    ࣗ෼͸΍͍ͬͯΔ
    ϑΣʔζ
    ෳ਺ਓͰ΍͍ͬͯΔ
    ϑΣʔζ
    νʔϜͰ΍͍ͬͯΔ

    View Slide

  8. ਓ஥ؒΛݟ͚ͭΔ

    View Slide

  9. ͲΜͳ஥ؒΛݟ͚ͭ·͔͢ʁ
    2஥ؒΛݟ͚ͭΔ

    View Slide

  10. ஥ؒΛʮબ୒͢Δʯ
    ڞײ͢Δਓ
    ࿩ͤ͹Θ͔Δਓ
    Θ͔Βͳ͍ਓΛר͖ࠐΉͷ͸ޙ

    View Slide

  11. ϑΣʔζ
    ୭΋΍ͬͯͳ͍
    ϑΣʔζ
    ࣗ෼͸΍͍ͬͯΔ
    ϑΣʔζ
    ෳ਺ਓͰ΍͍ͬͯΔ
    ϑΣʔζ
    νʔϜͰ΍͍ͬͯΔ

    View Slide

  12. Ͳ͏΍ͬͯ஥ؒΛ૿΍͠·͔͢ʁ
    2஥ؒΛ૿΍͢

    View Slide

  13. ཧղΛ޿͛ΔɺਂΊΔ
    ษڧձΛߦ͏
    ্࢘Λຯํʹ෇͚Δ
    ༗ࣝऀʹڭ͑Λ੥͏

    View Slide

  14. νʔϜશମͰ΍͍ͬͯΔঢ়ଶΛ
    ࡞ΕΔͱྑ͍

    View Slide

  15. ͜͜·ͰདྷΔͱ
    ࣗવʹ૊৫ͰެೝԽ͢Δ
    ʮ͋͋ɺ%%%΍͍ͬͯΔνʔϜͶʯ

    View Slide

  16. ϑΣʔζ
    ୭΋΍ͬͯͳ͍
    ϑΣʔζ
    ࣗ෼͸΍͍ͬͯΔ
    ϑΣʔζ
    ෳ਺ਓͰ΍͍ͬͯΔ
    ϑΣʔζ
    νʔϜͰ΍͍ͬͯΔ

    View Slide

  17. Ͳ͏΍ͬͯ૊৫ʹ޿͍͖͛ͯ·͔͢ʁ
    2νʔϜ͔Β૊৫΁

    View Slide

  18. ͍͖ͳΓશମͰ΍Βͣ
    νʔϜΛ޿͛Δ
    νʔϜΛͷΕΜ෼͚
    ࣦഊͯ͠΋Өڹͷগͳ͍ͱ͜Ζ͔Β
    ૊৫ͷׂͷਓ਺Λ໨ࢦ͢

    View Slide

  19. ΋͏ҰาਐΊΔͱ

    View Slide

  20. େ͖ͳֆΛඳ͘
    ʢઓུΛ࡞Δʣ
    Ͳ͜ʹߦ͖͍ͨͷ͔ΛݴޠԽ͢Δ
    ະདྷͱݱࡏΛߦͬͨΓདྷͨΓ͢Δ

    View Slide

  21. View Slide

  22. ·ͱΊ

    View Slide

  23. ϑΣʔζ
    ୭΋΍ͬͯͳ͍
    ϑΣʔζ
    ࣗ෼͸΍͍ͬͯΔ
    ϑΣʔζ
    ෳ਺ਓͰ΍͍ͬͯΔ
    ϑΣʔζ
    νʔϜͰ΍͍ͬͯΔ
    ஥ؒΛʮબ୒͢Δʯ
    ਓͰ໧ͬͯ΍Δ
    ཧղΛ޿͛ΔɺਂΊΔ
    ͍͖ͳΓશମͰ΍Βͣ
    νʔϜΛ޿͛Δ
    େ͖ͳֆΛඳ͘
    ʢઓུΛ࡞Δʣ

    View Slide

  24. ϑΣʔζ
    ୭΋΍ͬͯͳ͍
    ϑΣʔζ
    ࣗ෼͸΍͍ͬͯΔ
    ϑΣʔζ
    ෳ਺ਓͰ΍͍ͬͯΔ
    ϑΣʔζ
    νʔϜͰ΍͍ͬͯΔ
    ஥ؒΛʮબ୒͢Δʯ
    ਓͰ໧ͬͯ΍Δ
    ཧղΛ޿͛ΔɺਂΊΔ
    ͍͖ͳΓશମͰ΍Βͣ
    νʔϜΛ޿͛Δ
    େ͖ͳֆΛඳ͘
    ʢઓུΛ࡞Δʣ
    ҰาҰา΍͍ͬͯ͘
    ͜͜·ͰདྷΔͷʹ
    ྑͯ͘
    ೥ʙ೥͘Β͍͔͔Γ·͢

    View Slide

  25. ίʔυʹର͢Δ
    Ξϓϩʔν

    View Slide

  26. օ͞Μͷݱ৔ͷίʔυͷπϥϛΛ
    ڞ༗͠·͠ΐ͏
    2ݱ৔ͷίʔυͷπϥϛ

    View Slide

  27. Ͳ͜ʹԿ͕͋Δ͔Θ͔Βͳ͍
    มߋͷӨڹൣғ͕ෆ໌
    ௥੻ੑ͕௿͍ˠมߋ͕ࠔ೉

    View Slide

  28. View Slide

  29. View Slide

  30. ੔ཧ੔಴͢Δ
    ෼͚Δ
    ໊લΛ͚ͭΔ

    View Slide

  31. ੔ཧ੔಴͢Δ
    ෼͚Δ
    ໊લΛ͚ͭΔ
    ෼͚Δ
    ໊લΛ͚ͭΔ
    શମ Ϋϥε୯Ґ

    View Slide

  32. ੔ཧ੔಴͢Δ
    ෼͚Δ
    ໊લΛ͚ͭΔ
    ෼͚Δ
    ໊લΛ͚ͭΔ
    શମ Ϋϥε୯Ґ

    View Slide

  33. ੈք஍ਤΛ࡞Δ

    View Slide

  34. ίϯςΩετϚοϓɾίϯςΩετਤ
    ૿ా͞ΜͷϒϩάΑΓ

    View Slide

  35. ੈք஍ਤΛϕʔεʹ
    ໊લΛ෇͚
    ύοέʔδΛ෼͚Δ

    View Slide

  36. શମΛ੔ཧ੔಴
    ੈք஍ਤΛ࡞Δ
    ύοέʔδΛ෼͚Δ

    View Slide

  37. ͜Ε͸ʮԣʯ

    View Slide

  38. ॎʹ෼͚Δ

    View Slide

  39. little_hand_s さんのqiitaより引用
    https://qiita.com/little_hand_s/items/ebb4284afeea0e8cc752
    ΦχΦϯ
    ΞʔΩςΫνϟ
    ʢϨΠϠʔυ
    ΞʔΩςΫνϟʣ

    View Slide

  40. શମΛ੔ཧ੔಴
    ੈք஍ਤΛ࡞Δ
    ԣʢύοέʔδʣʹ෼͚Δ
    ॎʢΦχΦϯΞʔΩςΫνϟʣʹ෼͚Δ

    View Slide

  41. ੔ཧ੔಴͢Δ
    ෼͚Δ
    ໊લΛ͚ͭΔ
    ෼͚Δ
    ໊લΛ͚ͭΔ
    શମ Ϋϥε୯Ґ

    View Slide

  42. ϦϑΝΫλϦϯάͯ͠ΈΔ

    View Slide

  43. ϝιουΛ෼͚Δ
    ΫϥεΛ෼͚Δ
    ໊લΛ͚ͭΔ

    View Slide

  44. νʔϜͰϞσϦϯάͯ͠ΈΔ

    View Slide

  45. Ϣʔεέʔε΍࢓༷Λ༻ҙͯ͠

    View Slide

  46. View Slide

  47. ෇ᝦͰग़͢
    ˞ΠϝʔδͰ͢

    View Slide

  48. ʢͰ͖Ε͹ʣ
    ίʔυʹ൓өͯ͠ΈΔ
    ϓϩμΫτϦϦʔε
    Ͱ͖ͳͯ͘΋ֶͼʹ͸ͳΔ

    View Slide

  49. Ϋϥε੔ཧ੔಴
    ϦϑΝΫλϦϯάΛ͢Δ
    ϞσϦϯάΛͯ͠ΈΔ
    ίʔυʹམͱͯ͠ΈΔ

    View Slide

  50. ϙΠϯτ

    View Slide

  51. ᶃݱ࣮ͷݴ༿Λͦͷ··
    ίʔυʹམͱ͢
    ʢϢϏΩλεݴޠʣ

    View Slide

  52. ࢓༷ॻ͸΋ͪΖΜ
    ීஈ࢖͍ͬͯΔݴ༿ʹײ౓ΛߴΊΔ

    View Slide

  53. ᶄσʔλϞσϧ͸
    Ͱ͖Δ͚ͩ๨ΕΔ
    ʢυϝΠϯϞσϧ͕σʔλϞσϧʹӨڹ͞ΕΔͷ
    Ͱʣ

    View Slide

  54. ᶅίʔυʹ൓ө͠
    ϞσϧΛҭͯΔ

    View Slide

  55. いったり来たり
    俯瞰 詳細

    View Slide

  56. ·ͱΊ

    View Slide

  57. ੔ཧ੔಴͢Δ
    ෼͚Δ
    ໊લΛ͚ͭΔ
    ෼͚Δ
    ໊લΛ͚ͭΔ
    શମ Ϋϥε୯Ґ

    View Slide

  58. શମΛ੔ཧ੔಴
    ੈք஍ਤΛ࡞Δ
    ύοέʔδΛ෼͚Δ

    View Slide

  59. Ϋϥε੔ཧ੔಴
    ϞσϦϯάΛͯ͠ΈΔ
    ίʔυʹམͱͯ͠ΈΔ
    ϞσϧͱίʔυΛߦͬͨΓདྷͨΓ͢Δ

    View Slide

  60. ͜Ε͚ͩͰ΋
    ΍ͬͯΈΔͱͲ͏͔

    View Slide

  61. ͳ͔ͥͱ͍͏ͱɺߏ଄Λઌʹ୳ٻ͢ΔͷͰ
    ϩδοΫʹͨͲΓண͘ͷ͕࠷ޙͷํͰ
    ΋Ͳ͔͠͞Λײͨ͡ͷͰ͸ͳ͔Ζ͏͔
    ᶃ࠷ॳ͸গ͠ख͕͔͔ؒΔ
    ײ͕͢͡Δ
    ౰ࣾൺ

    View Slide

  62. ᶄͲ͜ʹԿ͕͋Δ͔͕
    Θ͔Γ΍͍͢
    ଞਓɺաڈͷࣗ෼͕ॻ͍ͨίʔυɺͲͪΒͰ΋
    ߏ଄ͱ໊લ͕໌֬ͳͷͰɺͨͲΓ΍͍͢

    View Slide

  63. ᶅมߋ͕҆৺
    ࠷ߴʹؾ͕͍͍࣋ͪɻ
    ݁ߏେ͖ͳमਖ਼΋҆৺ײ͕͋Δ

    View Slide

  64. ᶆڞ௨ݴޠ͕Ͱ͖
    ౷Ұੑ͕ੜ·ΕΔ
    υϝΠϯϞσϧΛআ͘ͱ͋Δఔ౓ɺܗ͸Ͱ͖Δ
    Ϟσϧͷձ࿩Λଓ͚Ε͹
    ίϛϡχέʔγϣϯίετ͕গͳ͍

    View Slide

  65. ͜͜·Ͱͷײ૝Λڞ༗͠·͠ΐ͏
    ࣗ෼ͷ؀ڥͰʮͰ͖ͦ͏ͳ͜ͱʯ
    ࣗ෼ͷ؀ڥͰʮ΍͍ͬͯΔ͜ͱʯ
    2ৼΓฦͬͯΈ·͠ΐ͏

    View Slide

  66. ΍Γํ ͋Γํ
    ੒ՌΛग़ͨ͢Ίʹ͸
    ྆ํେࣄ

    View Slide

  67. ͋ΓํͬͯͳΜͩΖ͏ʁ
    2͋Γํͱ͸ʁ

    View Slide

  68. ΍Γํ ͋Γํ
    εΩϧɺೳྗ ਓؒੑ΍౓ྔ
    ੒ՌΛग़ͨ͢Ίʹ͸ ྆ํେࣄ

    View Slide

  69. ࣗ෼͔͠΍͍ͬͯͳ͍؀ڥ

    View Slide

  70. ཧղ͞Εͳ͍ͷ͸౰ͨΓલ

    View Slide

  71. ൓ର͞ΕΔͷ͸౰ͨΓલ

    View Slide

  72. ্ख͍͔͘ͳ͍͜ͱ͕͋Δ
    ͷ΋౰ͨΓલ

    View Slide

  73. Ͱ΋
    ׬ᘳͳ؀ڥͳΜͯͳ͍

    View Slide

  74. ୭͔ͷҙࢥͱߦಈͰ͔͠
    ৽͍͠΋ͷ͸ੜ·Εͳ͍

    View Slide

  75. ໨తΛ໌֬ʹ͠
    ͓٬͞Μ΍૊৫΍੒ՌͷͨΊʹ

    View Slide

  76. ఻͑ɺಈ͖ɺม͑Δ

    View Slide

  77. ͋ͳ͕ͨಈ͔ͳ͍ͱ
    Կ΋࢝·Βͳ͍

    View Slide

  78. ৴೦Λ࣋ͪਐΊ͍ͯ͘ͱ
    จԽ͕࢒Δ

    View Slide

  79. ࠓ೔ొஃ͍ͯ͠Δਓ͕
    ݴ͍ͬͯΔ͜ͱ͕౴͑Ͱ͸ͳ͘

    View Slide

  80. ݱ৔ʹΑͬͯ౴͑͸ҧ͏

    View Slide

  81. ઓུͱ࣮૷ΛߦͬͨΓདྷͨΓ͠
    ౴͑Λ୳ٻ͠ଓ͚Δ͜ͱ͕େࣄ

    View Slide

  82. །Ұਖ਼͍͠౴͑͸ͳ͍

    View Slide

  83. ࡢ೔ΑΓࠓ೔ɺࠓ೔ΑΓ໌೔
    গ͠Ͱ΋ྑ͍ͯ͘͘͠

    View Slide

  84. ࠓ೔͔Β
    খ͞ͳߦಈΛ
    ੵΈॏͶ͍ͯ͘

    View Slide

  85. ΍Γํ ͋Γํ
    ޿Ί͍ͯͨ͘Ίʹ͸
    ΍Γํͱ͋Γํɺ྆ํҙࣝ͠Α͏

    View Slide

  86. ͋Γํ͕݁ߏେࣄ
    ൓ର͞ΕΔͷ͸౰ͨΓલ
    ͦͷલఏͰ఻͑ɺಈ͖ɺม͑Α͏
    །Ұਖ਼͍͠౴͑͸ͳ͍
    ߟ͑ɺ࣮ߦ͠ɺม͑ଓ͚Α͏
    ͋ͳ͕ͨಈ͔ͳ͍ͱԿ΋࢝·Βͳ͍
    ৴೦Λ࣋ͬͯ΍͍ͬͯ͜͏

    View Slide

  87. ࠓ೔ͷ಺༰ΛৼΓฦͬͯΈ·͠ΐ͏
    ͲΜͳҰาΛ౿Έग़ͤ·͔͢ʁ
    2;Γ͔͑Γ

    View Slide

  88. ஥ؒΛେେืूதͰ͢ʂ
    ˔ ෭ۀɾϑϦʔϥϯεΤϯδχΞืूʂ
    ˓ ࣌ؒ΋৔ॴ΋࢓ࣄ಺༰΋ࣗ༝
    ˓ ݁Ռతʹ࢓ࣄ͠ͳͯ͘΋͍͍ͷͰɺҰ୴4MBDLʹೖΖ͏ʂ
    ˓ 1ZUIPOɺ7VFKTɺ,PUMJOɺJ04ͳͲ
    ˔ ΤϯδχΞࣾһืूʂ
    ˓ ਓͷ੒௕ʹڵຯ͕͋Δํ
    ˓ ಇ͘৔ॴɺ࣌ؒࣗ༝
    ˓ ձٞ΋৘ใ΋Φʔϓϯ
    ˓ ෭ۀࣗ༝
    ͓ؾܰʹ͝࿈བྷ͍ͩ͘͞ʂ
    IUUQTXXXXBOUFEMZDPNQSPKFDUT

    View Slide