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

ドメイン駆動設計を始めるために必要なチームのつくり方

 ドメイン駆動設計を始めるために必要なチームのつくり方

Gunma.web #30のLTで発表した資料です。
どうすればドメイン駆動設計を導入出来るのか、というところにフォーカスにして考えてみました。

TsukasaSekiguchi

January 20, 2018
Tweet

More Decks by TsukasaSekiguchi

Other Decks in Technology

Transcript

  1. υϝΠϯۦಈઃܭΛ
    ࢝ΊΔͨΊʹඞཁͳ
    νʔϜͷͭ͘Γํ
    2017/01/20
    Gunma.web #30
    ؔޱ ࢘

    View full-size slide

  2. ໊લ:
    ؔޱ࢘
    SNS:
    GitHub: TsukasaGR
    Twitter: TsukasaGr
    NewsPicks: ؔޱ࢘
    ࢓ࣄ:
    αϥϦʔϚϯ: SIerͷϚωδϝϯτ݉ΤϯδχΞ
    ϑϦʔϥϯε: ελʔτΞοϓͷWebΤϯδχΞ
    ීஈ৮ͬͯΔ΋ͷ:
    PHP(Laravel)ɺJavascript(Vue.js)ɺDockerɺVagrantɺMagento2
    ࣗݾ঺հ

    View full-size slide

  3. υϝΠϯۦಈઃܭ
    in My Heartʁ

    View full-size slide

  4. ࠓ·Ͱܦݧͨ͠ݱ৔ͷ೰Έʹ
    ਅਖ਼໘͔Β޲͔͍߹͏ͨΊͷ
    େ੾ͳߟ͑ํ

    View full-size slide

  5. What ೰Έʁ

    View full-size slide

  6. • ࣮૷ͷ͜ͱԿ΋ߟ͑ͳ͍Ͱશવ٧ΊΒΕͯͳ͍࢓༷ΛҒͦ͏ʹ఻͑ͯ͘ΔϦʔμʔ
    • ݴΘΕͨ͜ͱ͔͠΍Βͳ͍ΤϯδχΞ
    • ݱ৔Λແࢹͨ͠ܦӦ૚΍ίϯαϧͷඓʹͭ͘ݴ༿
    • σεϚ֬ఆͷҰׅड஫Λࣗຫ͛ʹऔͬͯ͘ΔӦۀ
    • ੹೚ͷࡲΓ෇͚߹͍͹͔Γͷຖ೔
    • ϦϦʔεʹඞཁͳঝೝΛ΋Β͏ҝͷυΩϡϝϯτΛॻ͚ͩ͘ͷ೔ʑ
    • த਎Կ΋Θ͔ͬͯͳ͍ͷʹϙνϙνςετ͠ͳ͕ΒΤϏσϯεΛΤΫηϧʹషΔٕज़͚ͩͲΜͲΜ্ୡ͍ͯࣗ͘͠෼
    • ࠓࣗ෼͕ԿͷͨΊͷγεςϜΛ࡞ͬͯΔͷ͔Α͘Θ͔ͬͯͳ͍
    • λϨ͕ൿ఻͗͢Δ
    • ࢓༷มߋͬͯݴ༿͕τϥ΢Ϛ
    • ຖ೔όάใࠂʹک͑ͯΔ
    • ͳΜͰݴΘΕͨ͜ͱҎ֎ͷ͜ͱ΍Δͷʁͬͯ٧ΊΒΕΔ
    • ͳΜͰ΋ͬͱૣ͘ݴΘͳ͔ͬͨͷʁͬͯ٧ΊΒΕΔ
    • ͳΜͰͦΜͳ͜ͱ΋Θ͔Βͳ͍ͷʁͬͯ٧ΊΒΕΔ
    • ͦΕ͘Β͍ࣗ෼Ͱௐ΂ΖΑͬͯ٧ΊΒΕΔ
    • ຖ೔ָ͘͠ͳ͍
    • etc……..

    View full-size slide

  7. ͱʹ͔ͨ͘͘͞Μ

    View full-size slide

  8. What υϝΠϯۦಈઃܭͷ
    ߟ͑ํʁ

    View full-size slide

  9. ΦϒδΣΫτࢦ޲
    ×
    ΞδϟΠϧ

    View full-size slide

  10. How can
    ΦϒδΣΫτࢦ޲
    ×
    ΞδϟΠϧʁ

    View full-size slide

  11. ྑ͍νʔϜΛ࡞Δ

    View full-size slide

  12. What ྑ͍νʔϜʁ

    View full-size slide

  13. ͦͷ1
    ݴ͍͍ͨ࣌ʹݴ͍͍ͨ͜ͱ͕ݴ͑Δ

    View full-size slide

  14. ݴ͍͍ͨ࣌ʹݴ͍͍ͨ͜ͱ͕ݴ͑Δ
    • ΦϒδΣΫτࢦ޲΋ΞδϟΠϧ΋ந৅తͳ֓೦Ͱ
    ʮ͜͏͢Ε͹ྑ͍ʯͱ͍͏໌֬ͳ౴͕͑ͳ͍ͷͰɺ
    ৗʹߟ͑ɺݟ௚͍͔ͯ͠ͳ͚Ε͹ͳΒͳ͍ɻ

    View full-size slide

  15. ݴ͍͍ͨ࣌ʹݴ͍͍ͨ͜ͱ͕ݴ͑Δ
    • ͦͷҝʹ͸ɺʮݴ͍͍ͨ࣌ʹݴ͍͍ͨ͜ͱΛ
    ݴ͑Δʯ؀ڥ͕ඞཁɻ

    View full-size slide

  16. ݴ͍͍ͨ࣌ʹݴ͍͍ͨ͜ͱ͕ݴ͑Δ
    • ʮݴ͍͍ͨ࣌ʹݴ͍͍ͨ͜ͱΛݴ͑Δʯ؀ڥ
    Λ࡞ΔͨΊʹͲ͏͢Ε͹ྑ͍͔ʁ

    View full-size slide

  17. ݴ͍͍ͨ࣌ʹݴ͍͍ͨ͜ͱ͕ݴ
    ͑Δ৔ॴΛͭ͘Δ

    View full-size slide

  18. ͜͜ʹ౴͑͋Γ·ͨ͠
    http://c16e.com/1511101558/
    SlackͰ؆୯ʹʮ೔ใʯͳΒ͵ʮ෼
    ใʯΛνʔϜͰ࣮ݱ͢Δ3εςοϓʙ
    Problem͕10෼Ͱղܾ͢Δνϟοτ
    Λ࡞Ζ͏

    View full-size slide

  19. timesͰͲΜͳ͜ͱΛ
    ൃݴ͢Δͷ͔ʁ

    View full-size slide

  20. • ࠓ೔΍Δ͜ͱ͸˓˓Ͱ͢(1೔ͷ໨ඪͷίϛοτ)
    • ࠓ͔Β××΍Δ(ࣗ਎ͷ࡞ۀͷՄࢹԽ)
    • ˚˚ͰϋϚͬͨɻɻάάͬͯ΋ղܾ͠ͳ͍ɻɻ(໰୊ͷૣظใࠂ)
    • □□Λྑ͍ײ͡ʹϦϑΝΫλग़དྷͨʂ(ࣗ෼΁ͷ৆ࢍ)
    • ○○ͷ΍Γํྑͦ͞͏ https://ʙʙʙ(ྑهࣄͷڞ༗)
    • ࡢ೔ҿΈ͗ͯͪ͢ΐͬͱਏ͍ɻɻɻ(ࣗ਎Λଞਓʹཧղͯ͠΋Β͏)
    • ࠓͷνʔϜͰ2िؒͷεϓϦϯτͬͯ௕͍ؾ͕͢Δ(ݱঢ়ʹର͢
    Δݒ೦ɺҙݟ) …etc

    View full-size slide

  21. timesΛೖΕΔͱ
    Կ͕ྑ͍ͷ͔ʁ

    View full-size slide

  22. • จࣈʹى͜͢͜ͱͰࣗ෼ࣗ਎ͷؾ͕࣋ͪ੔ཧ
    ग़དྷΔ
    • ໰୊ͷૣظղܾͷखॿ͚ʹͳΔ͔΋
    • ϝϯόʔಉ࢜ͰԿΛߟ͍͑ͯΔͷ͔ཧղग़དྷ
    Δ
    • ݴ͍͍ͨ࣌ʹݴ͍͍ͨ͜ͱ͕ݴ͑ɺΦϒδΣ
    Ϋτࢦ޲ɺΞδϟΠϧͱ΋ʹνʔϜ಺Ͱͷ౴
    ͕͑Կͳͷ͔Λৗʹલ޲͖ʹ୳͠ଓ͚͍͚ͯ
    Δ

    View full-size slide

  23. ͦͷ2
    ͩΕ͔ͷ͍ͤʹ͠ͳ͍

    View full-size slide

  24. ͩΕ͔ͷ͍ͤʹ͠ͳ͍
    • ΦϒδΣΫτࢦ޲΋ΞδϟΠϧ΋୭͔1ਓ͕ೳ
    ಈతʹಈ͍ͯɺͦͷଞͷϝϯόʔ͕ै͏ঢ়گͰ
    ͸͏·͘ճΒͳ͍ɻ

    View full-size slide

  25. ͩΕ͔ͷ͍ͤʹ͠ͳ͍
    • νʔϜશһ͕౰ࣄऀͰ͋ΓɺνʔϜશһ͕ೳಈ
    తʹಈ͚Δඞཁ͕͋Δɻ

    View full-size slide

  26. ͩΕ͔ͷ͍ͤʹ͠ͳ͍
    • νʔϜશһ͕౰ࣄऀҙࣝΛ࣋ͪɺೳಈతʹಈ͘
    ͨΊʹ͸ʮͩΕ͔ͷ͍ͤʹ͠ͳ͍ʯ͜ͱ͕ඞ
    ཁɻ

    View full-size slide

  27. ͩΕ͔ͷ͍ͤʹ͠ͳ͍
    • ʮͩΕ͔ͷ͍ͤʹ͠ͳ͍ʯ؀ڥΛ࡞ΔͨΊʹ
    Ͳ͏͢Ε͹ྑ͍͔ʁ

    View full-size slide

  28. ͩΕ͔ͷ͍ͤʹ͠ͳ͍࢓૊ΈΛ
    ͭ͘Δ

    View full-size slide

  29. ͜͜ʹ౴͑͋Γ·ͨ͠
    http://c16e.com/1510132118/
    KPTʹGΛ଍ͯ͠ɺεΫϥϜͰ࠷
    ڧͷνʔϜΛ࡞Δ!!

    View full-size slide

  30. GKPTͰͲΜͳ͜ͱΛ
    ৼΓฦΔͷ͔ʁ

    View full-size slide

  31. • ΤϯυϢʔβʔͱྑ͍ؔ܎͕ங͚ͨ(Good)
    • GitHubFlowΛܧଓ͢Δ(Keep)
    • ໰୊͕ൃੜ͔ͯ͠Βtimes΁ͷൃݴ·Ͱ͕࣌ؒ
    ֻ͔ͬͨ(Problem)
    • times͚ͩʹཔΔͷͰͳ͘F2FͰࠔͬͯͦ͏ͩ
    ͳͱࢥͬͨΒޓ͍ʹ੠Λֻ͚Δ(Try) …etc

    View full-size slide

  32. GKPTΛೖΕΔͱ
    Կ͕ྑ͍ͷ͔ʁ

    View full-size slide

  33. • ۀ຿಺Ͱײ͍ͨ͡Ζ͍Ζͳ͜ͱΛ࠶֬ೝग़དྷ
    Δ
    • ࣗ෼ͱଞਓͷ໰୊ҙࣝͷҧ͍͕Θ͔Δ
    • ϝϯόʔಉ࢜ͷҙࢥૄ௨͕ग़དྷΔ
    • ࠓޙͲ͏͍͔ͯ͘͠ΛΈΜͳͰܾΊΔͷͰɺ
    ͩΕ͔ͷ͍ͤʹ͠ͳ͘ͳΔ

    View full-size slide

  34. ͦͷ3
    ৘ใΛָ͠ΊΔ

    View full-size slide

  35. ৘ใΛָ͠ΊΔ
    • ΦϒδΣΫτࢦ޲΋ΞδϟΠϧ΋৽ͨʹೖͬͯ
    ͘Δ৘ใʹରͯ͠໘౗ष͕Βͣɺৗʹड͚ೖΕɺ
    ߟ͍͔͑ͯͳ͚Ε͹ͳΒͳ͍ɻ

    View full-size slide

  36. ৘ใΛָ͠ΊΔ
    • ͭ·Γɺʮ৘ใΛָ͠ΊΔʯඞཁͰ͋Δɻ

    View full-size slide

  37. ৘ใΛָ͠ΊΔ
    • ʮ৘ใΛָ͠ΊΔʯঢ়ଶʹ͢ΔͨΊʹͲ͏͢
    Ε͹ྑ͍͔ʁ

    View full-size slide

  38. ৘ใΛָ͠ΊΔจԽΛͭ͘Δ

    View full-size slide

  39. ͜͜ʹώϯτ͋Γ·ͨ͠
    https://newspicks.com/
    ৘ใڞ༗ + ίϛϡχέʔγϣϯ

    View full-size slide

  40. ౴͑Ͱ͸ͳ͍ʁ

    View full-size slide

  41. ύϒϦοΫͳΠϯλʔωοτ
    ্Ͱͷ৘ใڞ༗ + ίϛϡχ
    έʔγϣϯ͸ϋʔυϧ͕ߴ͢
    ͗Δɻɻɻ
    (΋ͪΖΜͦΕͰग़དྷΔͳΒ΍ͬͨ΄͏͕ྑ͍ͱࢥ͍·͢)

    View full-size slide

  42. ౴͑:Ϋϩʔζυͳ৔Λ࡞Δ

    View full-size slide

  43. Ͳ͏΍ͬͯΫϩʔζͱͳ৘ใ
    ڞ༗ + ίϛϡχέʔγϣϯͷ
    ৔Λͭ͘Δͷ͔ʁ

    View full-size slide

  44. • Slackʹઐ༻νϟϯωϧΛͭ͘Δ
    • NPެࣜͷࣾ಺൛NewsPicksΛ࢖͏
    • ࣗ࡞͢Δ …etc

    View full-size slide

  45. ৘ใڞ༗ + ίϛϡχέʔγϣ
    ϯ͕ग़དྷΔͱԿ͕ྑ͍ͷ͔ʁ

    View full-size slide

  46. • ͦͷ೔͋ͬͨχϡʔε(৘ใ)Λωλʹډञ԰Ͱٞ࿦
    ͢Δָ͕͍ͭ͠͞Ͱ΋ຯΘ͑Δ
    • ೖ͖ͬͯͨ৘ใʹରͯ͠ɺৗʹࣗ෼͸Ͳ͏ࢥ͏ͷ
    ͔Λߟ͑ΔΑ͏ʹͳΔ
    • ଞͷϝϯόʔͷҙݟΛ஌Γɺ৽ͨͳՁ஋؍ΛಘΔ
    ͜ͱ͕ग़དྷΔ
    • ৘ใΛָ͠Ή͜ͱ͕ग़དྷΔ

    View full-size slide

  47. ໨త
    खஈ
    %%%Λ࢝ΊΔ
    ྑ͍νʔϜΛͭ͘Δ
    ݴ͍͍ͨ࣌ʹ
    ݴ͍͍ͨ͜ͱ͕ݴ͑Δ
    ͩΕ͔ͷ͍ͤʹ
    ͠ͳ͍
    ৘ใΛָ͠ΊΔ
    ෼ใ UJNFT
    (,15
    ৘ใڞ༗
    ίϛϡχέʔγϣϯ

    View full-size slide

  48. No Good Team,
    No DDD!!!

    View full-size slide

  49. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠

    View full-size slide