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

What's DDD?

F94fd9d48c737d6d44a348aa3e37b1bc?s=47 takattata
September 20, 2018

What's DDD?

iOSDCリジェクトコン2日目
元タイトル「DDD(ドメイン駆動設計)を知っていますか?」
@takattata

F94fd9d48c737d6d44a348aa3e37b1bc?s=128

takattata

September 20, 2018
Tweet

More Decks by takattata

Other Decks in Programming

Transcript

  1. 1 Takasy
 @takattata iOSDCrc02 WHAT’S DDD?

  2. 2 ໨࣍ ໨࣍ 1. ͜ͷൃදͷ໨ඪ 2. DDDͷར఺͸ʁ 3. DDD͸Ͳ͏͍͏΋ͷʁ 4.

    ࣍΁ͷҰา
  3. 3 ʢͲΜͳൃදΛ͢Δͭ΋Γʁʣ ͜ͷൃදͷ໨ඪ

  4. 4 ͜ͷൃදͷ໨ඪ DDD

  5. 5 ͜ͷൃදͷ໨ඪ DDD ։ൃख๏ʁ ϨΠϠʔυΞʔΩςΫνϟʁ େن໛։ൃͰ࢖͏ʁ ೉ͦ͠͏ͩΑͳʁ

  6. 6 ͜ͷൃදͷ໨ඪ DDD Domain Driven Design
 ʮυϝΠϯۦಈઃܭʯ ް͞3cm

  7. 7 ͜ͷൃදͷ໨ඪ DDD Domain Driven Design
 ʮυϝΠϯۦಈઃܭʯ ް͞3cm શମ૾Λͬ͘͟ΓͰ΋೺Ѳ͍ͯ͠ͳ͍ͱ… ࠳ં཰UP↑(ଟ෼)

  8. 8 ͜ͷൃදͷ໨ඪ ໨ඪ ;Θͬͱશମ૾Λ஌ͬͯ΋Β͏ Ұ൪ݴ͍͍ͨ͜ͱɿ”ڵຯ࣋ͬͨΒੋඇҰॹʹษڧ͍͖ͯ͠·ͤΜ͔ʂ” શମ૾Λ஌Δ औΓ૊ΜͰΈΔ ͔ͬ͠ΓֶͿ ;Θͬͱ

  9. 9 ʢΠϯϓοτ͢Δલʹ͞ɺͦ΋ͦ΋ඞཁͳͷʁઃܭͰ͠ΐʁʣ DDDͷར఺͸ʁ

  10. 10 %%%ͷར఺͸ʁ “։ൃऀͱඇ։ൃऀͷίϛϡχέʔγϣϯ͕
 ׬શʹεϜʔζʹͳΔ”

  11. 11 • ઐ໳ಉ࢜ؒͰͷ຋༁ͷίετ͕ͳ͍ • ஌ࣝͷౝ͕Ͱ͖ͳ͍ • ઃܭ͕ίʔυͰ͋Γɺίʔυ͕ઃܭͰ͋Δ %%%ͷར఺͸ʁ Ͳ͏͍͏͜ͱʁ

  12. 12 ৽͘͠ೖͬͨΤϯδχΞ ※΄͔ΤϯδχΞશ໓த ಉ͡νʔϜͷσΟϨΫλʔ ʁ ʁ ʁ ͜͏͍͏ڍಈ ͷҝͰ͢ %%%ͷར఺͸ʁ

    ͳͥ͜ͷ࣮૷ʹʁ
  13. 13 DDD͸Ͳ͏͍͏΋ͷʁ ʢ;Ήɺཧ૝ͩͶɻͲΜͳ͜ͱΛͨ͠Βͦ͏ͳΔͬͯʁʣ

  14. 14 %%%͸Ͳ͏͍͏΋ͷʁ ఆٛ ։ൃऀͱυϝΠϯΤΩεύʔτ͕ڠྗͯ͠ɺ
 υϝΠϯΛ൓өͨ͠ϞσϧʢυϝΠϯϞσϧʣΛ࡞Γ্͛Δ

  15. 15 %%%͸Ͳ͏͍͏΋ͷʁ WHAT’S υϝΠϯʁ ιϑτ΢ΣΞΛద༻͢Δର৅ྖҬ ྫ. ձܭιϑτͳΒʮձܭۀ຿ʯ

  16. 16 %%%͸Ͳ͏͍͏΋ͷʁ ఆٛ ։ൃऀͱυϝΠϯΤΩεύʔτ͕ڠྗͯ͠ɺ
 υϝΠϯΛ൓өͨ͠ϞσϧʢυϝΠϯϞσϧʣΛ࡞Γ্͛Δ

  17. 17 %%%͸Ͳ͏͍͏΋ͷʁ ࠓͷൢചܗଶ͕૿͑ͨ Γ͢Δʁ ͜ͷίʔυͷߏ੒͸Ͳ ͏͍͏ҙਤ͕͋Δʁ WHAT’S υϝΠϯΤΩεύʔτʁ

  18. 18 %%%͸Ͳ͏͍͏΋ͷʁ ࠓͷൢചܗଶ͕૿͑ͨ Γ͢Δʁ ͜ͷίʔυͷߏ੒͸Ͳ ͏͍͏ҙਤ͕͋Δʁ WHAT’S υϝΠϯΤΩεύʔτʁ →σΟϨΫλʔ →ΤϯδχΞ

    ࣗ෼ΑΓৄ͍͠ਓʹฉ͘
  19. 19 %%%͸Ͳ͏͍͏΋ͷʁ ఆٛ ։ൃऀͱυϝΠϯΤΩεύʔτ͕ڠྗͯ͠ɺ
 υϝΠϯΛ൓өͨ͠ϞσϧʢυϝΠϯϞσϧʣΛ࡞Γ্͛Δ

  20. 20 %%%͸Ͳ͏͍͏΋ͷʁ WHAT’S υϝΠϯϞσϧʁ υϝΠϯΛద੾ʹ൓өͨ͠ίʔυʹམͱ͠ࠐΉલͷϞσϧ ಉ͡΋ͷΛࢥ͍ු͔΂ ಉ͡ղऍΛ͢Δ

  21. 21 %%%͸Ͳ͏͍͏΋ͷʁ ఆٛ ։ൃऀͱυϝΠϯΤΩεύʔτ͕ڠྗͯ͠ɺ
 υϝΠϯΛ൓өͨ͠ϞσϧʢυϝΠϯϞσϧʣΛ࡞Γ্͛Δ

  22. 22 %%%͸Ͳ͏͍͏΋ͷʁ ๯಄ͷମݧஊΑΓ ϓϦϯτج൫(PCB)ͷιϑτ΢ΣΞπʔϧΛઃܭ͢Δ͜ͱʹ PCBઃܭऀ ΤϰΝϯεࢯ ߟ͍͑ͯΔ
 ιϑτ΢ΣΞ ඈ༂త޲্ʹ͸ͭͳ͕Βͳ͍
 ˠ൴Βͷཁٻʹ͍ͭͯ࿩͠߹͓͏

  23. 23 %%%͸Ͳ͏͍͏΋ͷʁ ༻ޠͷෆҰக΍͍͋·͍͞
 ݟղͷ૬ҧΛ
 Ұॹʹղܾ͍ͯ͘͠

  24. 24 %%%͸Ͳ͏͍͏΋ͷʁ ٞ࿦ΛਐΊ
 ϞσϧΛվྑ͠੒௕ͤ͞Δ

  25. 25 %%%͸Ͳ͏͍͏΋ͷʁ ։ൃऀ υϝΠϯ
 ΤΩεύʔτ υϝΠϯ ʹର͢Δ஌ࣝ΍ ߟ͑ ର࿩ ৠཹ

    υϝΠϯϞσϧ ࣮૷ ઃܭ දݱ ܁Γฦ͢
  26. 26 %%%͸Ͳ͏͍͏΋ͷʁ ։ൃऀ υϝΠϯ
 ΤΩεύʔτ υϝΠϯ ʹର͢Δ஌ࣝ΍ ߟ͑ ର࿩ ৠཹ

    υϝΠϯϞσϧ ࣮૷ ઃܭ දݱ ܁Γฦ͢ ઃܭ͕ίʔυͰ͋Γɺίʔυ͕ઃܭͰ͋Δ
  27. 27 %%%͸Ͳ͏͍͏΋ͷʁ ։ൃऀ υϝΠϯ
 ΤΩεύʔτ υϝΠϯ ʹର͢Δ஌ࣝ΍ ߟ͑ ର࿩ ৠཹ

    υϝΠϯϞσϧ ࣮૷ ઃܭ දݱ ܁Γฦ͢ ઓུతઃܭ
  28. 28 %%%͸Ͳ͏͍͏΋ͷʁ ։ൃऀ υϝΠϯ
 ΤΩεύʔτ υϝΠϯ ʹର͢Δ஌ࣝ΍ ߟ͑ ର࿩ ৠཹ

    υϝΠϯϞσϧ ࣮૷ ઃܭ දݱ ܁Γฦ͢ ઓུతઃܭ ઓज़తઃܭ
  29. 29 %%%͸Ͳ͏͍͏΋ͷʁ ઓུతઃܭ ϢϏΩλεݴޠ ڥք͚ͮΒΕͨίϯςΩετ ίϯςΩετϚοϓ … ڥք͚ͮΒΕͨίϯςΩετ υϝΠϯϞσϧ

  30. 30 ࣍΁ͷҰา ʢࣗ෼Ͱ΋ֶͼ͍ͨΜ͚ͩͲɺͲ͏ֶͿͱ͍͍ʁʣ

  31. 31 ͦͷޙ͸Ͳ͏͢Ε͹͍͍ʁ ࢀߟจݙ • ॳΊͷҰาʹ͓͢͢Ίɿ
 ʮΘ͔ΔʂυϝΠϯۦಈઃܭʯ • શମ૾Λ௫Ήࡍʹ͓͢͢Ίɿ
 ʮHow to

    apply DDD to Android Application Developmentʯ
 ʮAll you need is isolating the domainʯ • งғؾ௫Έ΍͍͢ಈը(ӳޠ)ɿ
 ʮDDD Strategic Design in under 15minutesʯ • ඞಡॻ2࡭
  32. 32 ͦͷޙ͸Ͳ͏͢Ε͹͍͍ʁ ॳΊͷҰาʹ͓͢͢Ί https://booth.pm/ja/items/392260 ిࢠॻ੶: ¥1000
 A5૬౰Ͱ60p

  33. 33 ͦͷޙ͸Ͳ͏͢Ε͹͍͍ʁ ಈըɿhttps://academy.realm.io/jp/ posts/droidkaigi17-how-to-apply-ddd- to-android-application-development/ http://y-anz-m.blogspot.com/2017/03/ droidkaigi-2017_9.html શମ૾Λ௫Ήࡍʹ͓͢͢Ί

  34. 34 ͦͷޙ͸Ͳ͏͢Ε͹͍͍ʁ શମ૾Λ௫Ήࡍʹ͓͢͢Ί ಈըɿhttps://www.youtube.com/ watch?v=glasB4fF15Q http://y-anz-m.blogspot.com/2018/02/ android.html

  35. 35 ͦͷޙ͸Ͳ͏͢Ε͹͍͍ʁ งғؾ௫Έ΍͍͢ಈը https://www.youtube.com/watch? v=Evers5npkmE&index=2&list=LLIgL_CMaapXHyn37_qsEJHg&t=0s

  36. 36 ͦͷޙ͸Ͳ͏͢Ε͹͍͍ʁ ඞಡॻ ిࢠॻ੶ɿhttp://amzn.asia/d/1OQbl4z ෺ཧຊɿhttp://amzn.asia/d/aFG8bI2

  37. 37 ͦͷޙ͸Ͳ͏͢Ε͹͍͍ʁ ిࢠॻ੶ɿhttp://amzn.asia/d/7x1z6zb ෺ཧຊɿhttp://amzn.asia/d/bMBhK3m ඞಡॻ

  38. 38 ͜ͷൃදͷ໨ඪ શମ૾Λ஌Δ औΓ૊ΜͰΈΔ ͔ͬ͠ΓֶͿ ;Θͬͱ

  39. 39 Let’s study DDD!!