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

DDD ユビキタス言語再考 / Rethink the ubiquitous language

DDD ユビキタス言語再考 / Rethink the ubiquitous language

社内LT用資料
なお、5分にはおさまらなかった模様...

補足を書きました。
http://yoskhdia.hatenablog.com/entry/2016/05/22/182605

Yoshitaka Okuda

May 12, 2016
Tweet

More Decks by Yoshitaka Okuda

Other Decks in Programming

Transcript

  1. DDD
    ϢϏΩλεݴޠ࠶ߟ
    2016/05/12

    @yoskhdia
    ࣾ಺LT

    View Slide

  2. About me
    • ԞాՂڗʢYoshitaka Okudaʣ
    • גࣜձࣾSocketʢKDDI Syn.ϗʔϧσΟϯάεάϧʔϓʣ

    ΞʔΩςΫτ
    • Twitter @yoskhdia
    • interested in DDD/Scala/C#/Reactive System/

    Architect/System Thinking/Team Building/

    Agile/ܦӦ৘ใֶ/On-Road Bike

    View Slide

  3. ࠷ۙͷ׆ಈ
    • DDD+CQRS+ESͷΑ͏ͳɺDDDΛϕʔεʹ
    ReactiveͳγεςϜΛษڧͨ͠Γ͍ͯ͠·͢ɻ

    View Slide

  4. ϢϏΩλεݴޠ࠶ߟ
    վΊͯDDDຊୈ̎ষΛಡΉ

    View Slide

  5. Α͋͘Δޡղ
    ʮϢϏΩλεݴޠʹϢʔβͷݴ༿ʯ

    View Slide

  6. ࣮ફ͢Δ·Ͱ͸
    ๻΋ͦ͏ࢥ͍ͬͯ·ͨ͠…
    ॻ੶Λಡ·ͣʹωοτͷ৘ใʹཔΔͱؕΓ΍͍͢Α͏ͳʁ

    View Slide

  7. ϢϏΩλεݴޠ͸Կނඞཁʁ

    View Slide

  8. –ॻ੶ʮυϝΠϯۦಈઃܭʯ(p.24)
    “͠ͳ΍͔Ͱ஌ࣝ๛෋ͳઃܭΛߦ͏ʹ͸ɺ
    ༻్ͷ෯޿͍ɺڞ༗͞ΕͨνʔϜͷݴޠ
    ͱɺͦͷݴ༿Λ࢖ͬͨ׆ൃͳ࣮ݧ͕ඞཁ
    Ͱ͋Δɻ”

    View Slide

  9. ͸͡ΊͷҰจ
    ඥղ͘

    View Slide

  10. Ϟσϧ
    • ͋Δ໰୊ʹରͯ͠ղܾࡦͷදݱ
    • Ϟσϧ͸ཧղͷͨΊͷ΋ͷͳͷͰɺઃܭ͢Δ͏͑Ͱ
    ͸Կʢଆ໘ʣΛϞσϧԽ͢Δ͔બ୒͢Δ

    ˠͳͥͳΒɺղܾࡦ͸ෳ਺ଘࡏ͢Δ
    • ϢʔβʢυϝΠϯΤΩεύʔτʣ΋։ൃऀ΋ಉ͡Ϟ
    σϧΛڞ༗͢Δ͜ͱ͕େࣄ
    • ϞσϧΛڞ༗͠ଓ͚Δʹ͸ڧݻͳڞ௨ݴޠ͕ඞཁ

    View Slide

  11. –ॻ੶ʮυϝΠϯۦಈઃܭʯ(p.26)
    “ϞσϧΛݴޠͷࠎ֨ͱͯ͠࢖༻͢Δ͜
    ͱɻʢதུʣݴޠΛ࢖͏্Ͱ໰୊͕͋Ε
    ͹ɺ୅ΘΓͷදݱΛ༻͍࣮ͯݧ͢Δ͜ͱ
    Ͱɺ໰୊ΛऔΓআ͘͜ͱɻ”

    View Slide

  12. DDDຊͷఆٛ
    • ͍ͭ΋Ϟσϧ͕࠷ળͱ͸ݶΒͳ͍
    • ۀ຿΍࣌ΛܦͯಘΔ஌ݟ͔Β৽͍͠ϞσϧΛൃ
    ݟ͢Δ͜ͱ΋͋Δ
    • Ϟσϧͷ͔֬͞Λݴޠͷෆࣗવ͔͞Βݕূ͢Δ
    • ͲΜͳͱ͖΋ڞ௨ݴޠΛ࢖͏͜ͱͰࣗવͳؾ
    ͖ͮΛଅ͢

    View Slide

  13. “υϝΠϯΤΩεύʔτ͸ɺυϝΠϯʹͭ
    ͍ͯͷཧղΛ఻͑Δʹ͸࢖͍ʹ͔ͬͨ͘
    Γෆద੾ͩͬͨΓ͢Δ༻ޠ΍ߏ଄ʹҟٞ
    Λএ͑Δ΂͖Ͱ͋Γɺ։ൃऀ͸ɺઃܭΛ
    ๦֐͢Δ͜ͱʹͳΔ͍͋·͍͞΍ෆ੔߹
    ʹ໨ΛޫΒͤΔ΂͖Ͱ͋Δɻ”
    –ॻ੶ʮυϝΠϯۦಈઃܭʯ(p.27)

    View Slide

  14. ୭͠΋ࢥߟͷໃ६΍ᐆດ͞Λ
    ๊͍͑ͯΔɻ
    ࢧ͑߹͏ɻ

    View Slide

  15. “·ͩϞσϧԽ͞Ε͍ͯͳ͍ػೳʹ͍ͭ
    ͯɺϢʔβ͕ٞ࿦͢Δ࣌ʹ͸ɺ࢖༻Ͱ͖
    ΔϞσϧ͸ଘࡏ͠ͳ͍ɻ͔͠͠ɺ൴Β͕
    ։ൃऀͱҰॹʹ৽͍͠ΞΠσΞΛݕ౼͠
    ࢝ΊΔͱ͙͢ʹɺڞ༗͞ΕΔϞσϧ΁޲
    ͔͏ख୳Γͷϓϩηε͕։࢝͞ΕΔɻॳ
    Ί͸͗ͪ͜ͳͯ͘ෆ׬શ͔΋͠Εͳ͍͕ɺ
    ࣍ୈʹվྑ͞Ε͍ͯ͘ɻ”
    –ॻ੶ʮυϝΠϯۦಈઃܭʯ(p.32)

    View Slide

  16. ϞσϧΛ৭ʑࢼ͢ɺ
    Ϟσϧͱ֓೦Λ݁ͼ͚ͭͳ͕Β੠ʹͯ͠ΈΔɺ
    ΑΓ؆୯ʹݴ͑Δํ๏Λݟ͚ͭΔɺ
    ͦͷ৽͍͠ߟ͑ํΛਤͱίʔυʹ࠶ͼ൓ө͢Δ

    View Slide

  17. ·ͱΊ
    • ϢϏΩλεݴޠ͸νʔϜશһͰ߹ҙ͠૑Δ΋ͷ
    • ϢϏΩλεݴޠ͸ɺ෼ੳɾϞσϦϯάΛܦͯಘΔදग़
    • Ͳ͜Ͱ΋࢖͏ɻίʔυʹݶΒͣɺλεΫ΍ػೳΛهड़͢ΔͨΊʹ΋
    ࢖ΘΕͳ͚Ε͹ͳΒͳ͍ɻগͳ͘ͱ΋νʔϜ಺ͷ͋ΒΏΔ৔໘Ͱɻ
    • ϢϏΩλεݴޠ͸ɺઃܭʹ͋ͬͯίʔυʹݱΕͳ͍ଆ໘Λ఻ୡ͢Δ
    ͨΊͷओཁͳखஈ(p.27)
    • ݴޠ͸ϞσϧΛ࣮ݧ͢Δɻ͜ͷϑΟʔυόοΫϧʔϓʹΑΓ஌ࣝ๛෋
    ͳϞσϧΛݟ͚ͭग़͠ɺͦͷϞσϧΛৠཹͰ͖ΔΑ͏ʹͳΔɻ(p.14)

    View Slide