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

DDDってなんだろう?

87e6be3b5dcac822e5dfd974ba65045a?s=47 Kinoko
July 24, 2016

 DDDってなんだろう?

2016/07/23 フロントエンド関西開催のDDD勉強会での発表資料です。(一部加筆あり。)

フロントエンドにおける情報設計 と DDD 座談会 - connpass http://kfug.connpass.com/event/34131/

87e6be3b5dcac822e5dfd974ba65045a?s=128

Kinoko

July 24, 2016
Tweet

Transcript

  1. DDDͬͯԿͩΖ͏ʁ Abe Asami

  2. ࣗݾ঺հ Abe Asami “きの子 ” 
 (大阪のフリーランスプログラマ) http://nocono.net/ @aa7th Scala、Andorid(Java/Kotlin)

    
 最近Scala.jsでReactNative書いてます
  3. ౰ൃදͷ಺༰ • DDDͬͯͦ΋ͦ΋Կͳͷ͔ • 2015/9 ؔ੢DDD.javaͷ಺༰ΛৼΓฦΓͳ͕Β࡞Γ·ͨ͠ • ˒ ͕෇͍͍ͯΔՕॴ͸ɺ͜ͷ೔ͷ૿ా͞ΜͷεϥΠυ͔ ΒҾ༻ͨ͠ղઆͰ͢

    (http://www.slideshare.net/ masuda220/ss-52462322) • ࠓ೔ͷճͰΤϯδχΞɾσβΠφʔ྆ํ͕ର৅ʹͳ͍ͬͯΔ ཧ༝
  4. DDDͬͯͦ΋ͦ΋Կͳͷʁ

  5. DDD (Domain-driven design) • υϝΠϯۦಈઃܭ • υϝΠϯΛத৺ʹߟ͑ͨιϑτ΢ΣΞઃܭ
 ख๏

  6. υϝΠϯͱ͸ʁ • ιϑτ΢ΣΞΛར༻͢Δਓͨͪͷ
 ʮ׆ಈʯͱʮؔ৺ࣄʯ˒ • ։ൃऀͰ͸ͳ͘ɺར༻ऀͷݴ༿Ͱදݱ͢Δ

  7. ྫ͑͹

  8. ϞϯελʔΛ֗தͰั֫ɾҭ ੒͢ΔҐஔ৘ใήʔϜͷυϝ Πϯ(Ϣʔβʔͷ׆ಈɾؔ৺ ࣄ)Λߟ͑ͯΈΑ͏ɻ

  9. ͳΜͱ͔GO(Ծ໊)ͷυϝΠϯ • ϓϨΠϠʔ͸ϞϯελʔΛั֫͢Δ • ั֫ͨ͠ϞϯελʔͰઓͬͯఢͷਞ஍Λୣ͏ • ਞ஍Λୣ͏ͱϓϨΠϠʔͷϨϕϧ্͕͕Δ • × Ϟϯελʔͷ࢟͸ARٕज़ʹΑͬͯΧϝϥʹࣸͬͨ


    ෩ܠʹ߹੒͞ΕΔ (←Ͳ͏࣮ݱ͢Δ͔͸Ϣʔβʔͷؔ৺ࣄͰ͸ͳ ͍) • ̋ Ϟϯελʔͷ࢟͸ݱ࣮ੈքʹଘࡏ͢Δ͔ͷΑ͏ʹݟ͑Δ
  10. ͜͜Ͱ΋͏̍ͭେࣄͳ֓೦ ʮϢϏΩλεݴޠʯʹ͍ͭͯ
 આ໌͠·͢

  11. ϢϏΩλεݴޠ • ࢖͏ݴ༿Λ౷Ұ͢Δ • 1ͭͷݴ༿͸ಉ͡ҙຯɺ1ͭͷҙຯ͸ಉ͡ݴ༿ ˒

  12. ͳΜͱ͔GO(Ծ໊)ͷ
 ϢϏΩλεݴޠ • ʮϓϨΠϠʔʯʮτϨʔφʔʯ • ʮਞ஍ʯʮδϜʯ • ʮั֫ʯʮήοτʯ

  13. ͳΜͱ͔GO(Ծ໊)ͷ
 ϢϏΩλεݴޠ • ʮϓϨΠϠʔʯʮτϨʔφʔʯ • ʮϞϯελʔʯʮ̋̋Ϟϯʯ • ʮਞ஍ʯʮδϜʯ • ʮั֫ʯʮήοτʯ

    νʔϜ಺Ͱ࢖͏ݴ༿Λ౷Ұ͢Δ දهΏΕμϝઈର
  14. վΊͯ̋̋ϞϯGOͷυϝΠϯ • τϨΠφʔ͸̋̋ϞϯΛήοτ͢Δ • ήοτͨ̋̋͠ϞϯͰઓͬͯఢͷδϜΛୣ͏ • δϜΛୣ͏ͱτϨΠφʔͷϨϕϧ্͕͕Δ • ̋̋Ϟϯͷ࢟͸ݱ࣮ੈքʹଘࡏ͢Δ͔ͷΑ͏ ʹݟ͑Δ

  15. ͜ΕΛ͜ͷݴ༿ͷ௨Γʹ
 ͳΔ΂ͦ͘ͷ··
 ϓϩάϥϛϯάίʔυʹ
 མͱ͜͠Ή

  16. τϨʔφʔ(Trainer)Ϟσϧ͸̋̋Ϟϯ(̋̋mon)
 Λήοτ(get)͢Δͱ͍͏ৼΔ෣͍Λ࣋ͭ τϨΠφʔ͸̋̋ϞϯΛήοτ͢Δ ↓

  17. ͜Μͳײ͡ͰɺϢʔβʔ໨ઢ Ͱͷࢥߟͱ࣮ࡍͷίʔυͷണ ཭Λۃྗͳͦ͘͏ʂͱ͍͏ͷ ͕υϝΠϯۦಈઃܭ

  18. DDDͷޮՌ • มߋʹڧ͘ͳΔ • Ϟσϧͱίʔυ͕Ұக͍ͯ͠ͳ͍
 = Ͷ͡Ε • Ͷ͡Ε͕͋Δͱมߋ͕େมʹͳ͍ͬͯ͘ •

    ్தࢀՃͷϝϯόʔͱ΋ҙࣝΛ౷Ұ͠΍͍͢ • ͱ͸͍͑ɺϞσϧͱίʔυΛ౷Ұ͢Δͱ͍͏ͷ͸͔ͳΓ೉͠ ͍ɾɾɾ
  19. ͱ͍͏Θ͚ͰɺDDDࣗମ͸
 ΤϯδχΞͷͨΊͷ
 ιϑτ΢ΣΞઃܭख๏

  20. ࠓ೔͸ͳͥσβΠφ͞Μ΋
 ࢀՃର৅ʹ͸͍͍ͬͯΔͷ͔

  21. UIσβΠϯͱ৘ใઃܭ • UI͸Ϣʔβʔࢹ఺Ͱ৘ใΛ੔ཧɾઃܭͯ͠
 σβΠϯ͢Δඞཁ͕͋Δ • σβΠφʔ͞ΜୡͷதͰʮ৘ใઃܭʯͱ͍͏ ΩʔϫʔυΛ࠷ۙΑ͖͘͘

  22. • DDD΋ཁ͸Ϣʔβʔࢹ఺Ͱ৘ใΛ੔ཧɾઃܭ
 ͢Δ͜ͱ • ಉ͡͡ΌΜʂ • ΤϯδχΞɾσβΠφʔؔ܎ͳ͘ɺʮϢʔβʔ ࢹ఺Ͱ৘ใΛઃܭ͢Δʯͱ͍͏ςʔϚͰ࿩ͤ ͹໘ന͍Μ͡ΌͶʁͬͯؾ͕ͨ͠ɻ

  23. ͱ͍͏Θ͚Ͱ • ·͊ɻ͋Μ·Γ೉͍͜͠ͱߟ͑ͣɺ͍ΖΜͳ ࿩͖͖͍ͨͳͬͯࢥ͍·͢ɻ

  24. ࢀߟࢿྉ • ʮυϝΠϯۦಈઃܭʯͷෳࡶ͞ʹཱͪ޲͔͏ http:// www.slideshare.net/masuda220/ss-52462322 • ScalaίʔυͰΘ͔ͬͨؾʹͳΔDDD | GREE Engineers'

    Blog http://labs.gree.jp/blog/2013/12/ 9354/ • ͪ͜ΒͷهࣄͰ͸”ϋϯλʔ͕ϞϯελʔΛङΔ”Α ͏ͳήʔϜͷυϝΠϯʹ͍ͭͯॻ͔Ε͍ͯ·͢ɻ
  25. ͝੩ௌ
 ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ