Slide 1

Slide 1 text

DDDͬͯԿͩΖ͏ʁ Abe Asami

Slide 2

Slide 2 text

ࣗݾ঺հ Abe Asami “きの子 ” 
 (大阪のフリーランスプログラマ) http://nocono.net/ @aa7th Scala、Andorid(Java/Kotlin) 
 最近Scala.jsでReactNative書いてます

Slide 3

Slide 3 text

౰ൃදͷ಺༰ • DDDͬͯͦ΋ͦ΋Կͳͷ͔ • 2015/9 ؔ੢DDD.javaͷ಺༰ΛৼΓฦΓͳ͕Β࡞Γ·ͨ͠ • ˒ ͕෇͍͍ͯΔՕॴ͸ɺ͜ͷ೔ͷ૿ా͞ΜͷεϥΠυ͔ ΒҾ༻ͨ͠ղઆͰ͢ (http://www.slideshare.net/ masuda220/ss-52462322) • ࠓ೔ͷճͰΤϯδχΞɾσβΠφʔ྆ํ͕ର৅ʹͳ͍ͬͯΔ ཧ༝

Slide 4

Slide 4 text

DDDͬͯͦ΋ͦ΋Կͳͷʁ

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

ྫ͑͹

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

ͳΜͱ͔GO(Ծ໊)ͷυϝΠϯ • ϓϨΠϠʔ͸ϞϯελʔΛั֫͢Δ • ั֫ͨ͠ϞϯελʔͰઓͬͯఢͷਞ஍Λୣ͏ • ਞ஍Λୣ͏ͱϓϨΠϠʔͷϨϕϧ্͕͕Δ • × Ϟϯελʔͷ࢟͸ARٕज़ʹΑͬͯΧϝϥʹࣸͬͨ
 ෩ܠʹ߹੒͞ΕΔ (←Ͳ͏࣮ݱ͢Δ͔͸Ϣʔβʔͷؔ৺ࣄͰ͸ͳ ͍) • ̋ Ϟϯελʔͷ࢟͸ݱ࣮ੈքʹଘࡏ͢Δ͔ͷΑ͏ʹݟ͑Δ

Slide 10

Slide 10 text

͜͜Ͱ΋͏̍ͭେࣄͳ֓೦ ʮϢϏΩλεݴޠʯʹ͍ͭͯ
 આ໌͠·͢

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

ͳΜͱ͔GO(Ծ໊)ͷ
 ϢϏΩλεݴޠ • ʮϓϨΠϠʔʯʮτϨʔφʔʯ • ʮϞϯελʔʯʮ̋̋Ϟϯʯ • ʮਞ஍ʯʮδϜʯ • ʮั֫ʯʮήοτʯ νʔϜ಺Ͱ࢖͏ݴ༿Λ౷Ұ͢Δ දهΏΕμϝઈର

Slide 14

Slide 14 text

վΊͯ̋̋ϞϯGOͷυϝΠϯ • τϨΠφʔ͸̋̋ϞϯΛήοτ͢Δ • ήοτͨ̋̋͠ϞϯͰઓͬͯఢͷδϜΛୣ͏ • δϜΛୣ͏ͱτϨΠφʔͷϨϕϧ্͕͕Δ • ̋̋Ϟϯͷ࢟͸ݱ࣮ੈքʹଘࡏ͢Δ͔ͷΑ͏ ʹݟ͑Δ

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

DDDͷޮՌ • มߋʹڧ͘ͳΔ • Ϟσϧͱίʔυ͕Ұக͍ͯ͠ͳ͍
 = Ͷ͡Ε • Ͷ͡Ε͕͋Δͱมߋ͕େมʹͳ͍ͬͯ͘ • ్தࢀՃͷϝϯόʔͱ΋ҙࣝΛ౷Ұ͠΍͍͢ • ͱ͸͍͑ɺϞσϧͱίʔυΛ౷Ұ͢Δͱ͍͏ͷ͸͔ͳΓ೉͠ ͍ɾɾɾ

Slide 19

Slide 19 text

ͱ͍͏Θ͚ͰɺDDDࣗମ͸
 ΤϯδχΞͷͨΊͷ
 ιϑτ΢ΣΞઃܭख๏

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

ࢀߟࢿྉ • ʮυϝΠϯۦಈઃܭʯͷෳࡶ͞ʹཱͪ޲͔͏ http:// www.slideshare.net/masuda220/ss-52462322 • ScalaίʔυͰΘ͔ͬͨؾʹͳΔDDD | GREE Engineers' Blog http://labs.gree.jp/blog/2013/12/ 9354/ • ͪ͜ΒͷهࣄͰ͸”ϋϯλʔ͕ϞϯελʔΛङΔ”Α ͏ͳήʔϜͷυϝΠϯʹ͍ͭͯॻ͔Ε͍ͯ·͢ɻ

Slide 25

Slide 25 text

͝੩ௌ
 ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ