Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ふんわりとDDD実践してみた
Search
tenmihi
March 09, 2019
Programming
0
290
ふんわりとDDD実践してみた
Fukuoka Perl Workshop #28 で発表しました
tenmihi
March 09, 2019
Tweet
Share
Other Decks in Programming
See All in Programming
WebComponentsで フレームワークを1ページに共存させる
webuilder240
0
150
上手な探索的テストとその上達方法について
matsu802
4
650
Prepare for Jakarta EE 11 - Performance and Developer Productivity
ivargrimstad
0
490
LPIXEL×CADDi_kaerururu
kaerururu
3
300
脱・初心者!脱・マネコン!AWS CDKを使ってみませんか!?
har1101
0
120
プロンプトエンジニアリング入門
tomokusaba
2
970
[スクリプト] Swiftの型推論を学ぼう
omochi
0
110
Go1.22からの疑似乱数生成器について/go-122-pseudo-random-generator
convto
1
160
Compiling Python to WebAssembly with py2wasm
syrusakbary
0
130
両面どころかインフラもTSでできるよ ~ 全方位TypeScriptによるプロダクト開発 ~
myfinder
8
2.2k
Enhancing Applications with Accessibility API
kishikawakatsumi
3
890
DocC Tutorial と TCA におけるテスト機能の紹介
kalupas226
1
330
Featured
See All Featured
The Invisible Customer
myddelton
114
12k
For a Future-Friendly Web
brad_frost
170
8.9k
Design by the Numbers
sachag
274
18k
GraphQLとの向き合い方2022年版
quramy
28
12k
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
178
11k
Building Adaptive Systems
keathley
29
1.8k
The Power of CSS Pseudo Elements
geoffreycrofte
58
4.9k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
1
1.2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
5
1.4k
Done Done
chrislema
178
15k
The Mythical Team-Month
searls
214
42k
A Tale of Four Properties
chriscoyier
150
22k
Transcript
;ΜΘΓͱDDD࣮ફͯ͠Έͨ Fukuoka Perl Workshop #28 - tenmihi
ࣗݾհ • tenmihi (ͯΜΈͻ) • גࣜձࣾϞόΠϧϑΝΫτϦʔ • Perl, JS •
20189݄͔Β࡚Ͱ ϑϧϦϞʔτͯ͠·͢
͓͢Δ͜ͱ • ࠷ۙDDDΛ࣮ફͨ͠ͷͰͦΕʹ͍͓ͭͯΛ • ઓུతͳͱ͜ΖίϯςΩετਂ͗͢ΔͷͰ υϝΠϯϞσϧͷߏஙʹؔͯ͠ͷΈ৮Ε·͢
΄ͱΜͲPerlཁૉ͋Γ·ͤΜ
ࣗͷόοΫάϥϯυ • ࠓ·ͰαʔϏεͷӡ༻ΛόϦόϦͬͯͨ • େ͖ΊͷઃܭʹͪΌΜͱ͖߹ͬͨͷ ࠓճ͕ॳΊͯ
ͲΜͳϓϩδΣΫτ • طଘαʔϏεͷཧը໘ • ࣾͰ͏ͷͰެ։͢ΔͷͰͳ͍ • ӡ༻ʹؔ͢ΔಛఆͷۀϑϩʔΛࢧԉ͢Δ • 8ׂ΄Ͳ։ൃ͕ऴΘͬͯগ͠ͷظؒܦ͍ͬͯͨ
Γ2ׂͷ։ൃΛߟ͕͑ͨ • ͕࣌ܦͪӡ༻νʔϜͷϝϯόʔมΘͬͯ ۀϑϩʔมΘͬͨ • ։ൃ్தͷՌ৽͍͠ۀϑϩʔʹ ߹Θͳ͘ͳ͍ͬͯͨ
ཁ݅ͷ֬ೝɾઃܭʹ ཱͪͬͯ։ൃ͢͜͠ͱʹ
DDDΛ࠾༻ͨ͠ཧ༝ • ઃܭख๏ͷதͰϝδϟʔͰྑͦ͞͏ͱ͍͏ओ؍ • ͱͱ͕DDDʹ͍ۙख๏Ͱઃܭ͞Ε͍ͯͨͨΊ • ࣾͰDDDͷ࣮ફྫ͕গͳ͘ɺ࣮ફͷྑ͍ػձ ͩͱߟ͑ͨͨΊ
࣮ફͨ͠༰
υϝΠϯϞσϧͷߏஙखॱ 1. ۀϑϩʔͷ֬ೝ 2. ۀͷؔ৺ࣄʹ͍ͭͯௐΔ 3. νʔϜͰυϝΠϯϞσϧͷਫ਼ࠪ
ۀϑϩʔͷ֬ೝ • σΟϨΫλʔͱҰॹʹۀϑϩʔΛ֬ೝ • Ҏલͷ࣮֬ೝͭͭ͠ۀϑϩʔͷมԽѲ
ۀͷؔ৺ࣄʹ͍ͭͯௐΔ • ରͱͳΔαʔϏεͷTableΛͱʹચ͍ग़͠ • ͍͘Β͔࣮ࡁΈͩͬͨ͜ͱ͋Γɺ ઌʹܰ͘ϞσϧΛॻ͍ͯUMLͰు͖ग़ͨ͠
ۀͷؔ৺ࣄʹ͍ͭͯௐΔ package Fugafuga; use Mouse; has name_en => ( isa
=> Str ); has timestamp => ( isa => Int ); has item => ( isa => PiyoPiyo ); package Piyopiyo; use Mouse; has title => ( isa => Str ); has description => ( isa => Str );
νʔϜͰυϝΠϯϞσϧͷਫ਼ࠪ • ༻ޠදΛݩʹϢϏΩλεݴޠΛɺ ੜͨ͠UMLΛݩʹϞσϧͷؔΛ֬ೝͨ͠ • νʔϜϝϯόʔ୭ͰݟΕΔ&ߋ৽Ͱ͖Δ ͱ͜ΖʹυΩϡϝϯτΛஔ͍ͨ
νʔϜͰυϝΠϯϞσϧͷਫ਼ࠪ
ײͨ͜͡ͱ
ίʔυ্ͰͷදݱܾΊͨ͜ͱͰ ্࣮ͰදݱͷϒϨΛͳͤͨ͘ • ࣮αʔϏεͷ࣮Ͱͷݺͼํͱࠞͬͯ͟ ᐆດʹͳΓͦ͏ͩͬͨͷͰΑ͔ͬͨ • ͨͩɺͲ͏ͯ͠ҧײ͋ΔදݱʹͳΔ ͷ͋ΓΜͩ
ϞσϧΛϒϥογϡΞοϓ͍͢͠ ڥΛ࡞Δͷॏཁ ߋ৽͢ΔͷΊΜͲ͍͘͞ͱ͙͢͞· υΩϡϝϯτ͕ݹ͘ͳͬͯᴥᴪ͕ੜ͡Δ
ڞ௨ͷݴޠΛܾΊͯ νʔϜͰ༻͍Δ͚ͩͰ༗ӹ DDD͡Όͳ͘ͱڞ௨ͷݴޠΛ༻͍ͯ ઃܭ͢Δ͜ͱ͕ઃܭख๏ͷΤοηϯεͱͯ͠ ෯͘༗༻ͦ͏