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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
hidenorigoto
April 25, 2015
Programming
6.8k
9
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
花束問題をDDDで考える
2015.4.25 第40回 IT勉強宴会 スライド
https://atnd.org/events/64593
hidenorigoto
April 25, 2015
More Decks by hidenorigoto
See All by hidenorigoto
ドメインと向き合う - 旅行予約編
hidenorigoto
4
1.2k
「ソフトウェア設計」のドメイン - 「データモデリングでドメインを駆動する」を読んで
hidenorigoto
10
3.5k
メルカリ バックエンド領域のこれまでとこれから
hidenorigoto
1
620
メルカリのエンジニアリング組織の変化〜Engineering Managerの視点から〜
hidenorigoto
0
8.8k
The changes of the engineering organization in Mercari - from the view of an engineering manager -
hidenorigoto
0
350
PHPerKaigi 2019 ランチセッション (3/31)
hidenorigoto
1
4.5k
抽象化って何? (What is abstraction?)
hidenorigoto
9
4.9k
抽象化って何? (What is abstraction?)
hidenorigoto
11
7.7k
続・SOLIDの原則ってどんなふうに使うの? 〜オープン・クローズドの原則 センパイのコーディングノート編〜
hidenorigoto
14
6.4k
Other Decks in Programming
See All in Programming
What's New in Android 2026
veronikapj
0
250
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
220
Claude Opus 4.6以後の受託開発エンジニアの変化(Claude Code開発ノウハウ大公開スペシャルbyクラスメソッド)
iidatakuma
1
960
AI時代に設計が 最大の生産性レバーになる 意図駆動開発とデータを消さない設計|Don't Delete Your Data or Your Intent — Design as the Deepest Lever in the AI Era
tomohisa
1
640
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
180
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
3
750
その節約、円になってますか?
isamumumu
1
680
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
250
FDEが実現するAI駆動経営の現在地
gonta
2
260
継続モナドとリアクティブプログラミング
yukikurage
3
680
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
4
1.8k
【やさしく解説 設計編・中級 #1】一つの車に、運転手は一人 ~ある倉庫システムの事例から~
panda728
PRO
0
200
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Navigating Weather and Climate Data
rabernat
0
440
Everyday Curiosity
cassininazir
0
270
Ethics towards AI in product and experience design
skipperchong
2
340
Designing Powerful Visuals for Engaging Learning
tmiket
1
470
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
WCS-LA-2024
lcolladotor
0
790
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
890
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
440
Java REST API Framework Comparison - PWX 2021
mraible
34
9.6k
エンジニアに許された特別な時間の終わり
watany
108
250k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Transcript
ՖଋΛ %%%ʢυϝΠϯۦಈઃܭʣ Ͱߟ͑Δ 1)1ϝϯλʔζɹޙ౻लએ ୈճ*5ษڧԅձ υϝΠϯɺҙਤɺϢʔεέʔε
ࣗݾհ w ޙ౻लએʢ͝ͱ͏ͻͰͷΓʣ UXJUUFS!IJEFOPSJHPUP w ٱอ͞Μͱͱʹ1)1ϝϯλʔζͱͯ͠׆ಈ w ϓϩάϥϚʔ͚τϨʔχϯάʢ%%%ؚΉʣ w *5ษڧԅձୈճʢʣ
ʮυϝΠϯۦಈઃܭΛΖ͏ʯߨࢣ୲
ϞσϦϯάݪଇ w ຊ࣭ʢFTTFOUJBMTʣΛϞσϧԽͤΑ w େہ؍ʢQFSTQFDUJWFʣΛఏڙͤΑ w ޮՌతͳୡʢF⒎FDUJWFDPNNVOJDBUJPOTʣΛਤΕ ιϑτΣΞΤϯδχΞϦϯάجૅࣝମܥ48�,7Q
ಈ͘ϞσϧͰ͋Ε
γεςϜͱʁ
QIPUPCZ/BLBUBOJ:0TIJGVNJ$$#: QIPUPCZ%JDL5IPNBT+PIOTPO$$#:
None
ճస൘ͱ͍͏໊ͷγεςϜ w ίοΫʹͱͬͯख࣋ͪΦʔμͷهԱஔ w ಥવͷଟͷདྷ٬ʹର͢Δ؇িஔ w ػஔ w ະॲཧจҰཡද w
্هͷػೳΛඋ͑ͨʮγεςϜʯ ࢀߟɿ٢ݪݡ࣏ஶʰઓུใγεςϜͷண؟441ͷݯྲྀʱQʙ
શମΛγεςϜͱͯ͠ݟΔͱ
ճస൘ͷಋೖʹઃܭ
ʮઃܭʯͷʮҙਤʯ ԿͷͨΊʁ
ล͞ΜͷϞσϧͰ ลࡾ͞ΜʮϞσϦϯάͷඪ४͔ΒֶΔ͜ͱʯ IUUQXBUBOBCFLDPDPMPHOJGUZDPNCMPHQPTUEIUNM
ۀϑϩʔ डʙग़ՙͷྲྀΕ ൃʙೖՙͷྲྀΕ ࡏݿཧͷྲྀΕ
σʔλϞσϧ ౷ܭσʔλཧ ߪೖσʔλཧ σʔλཧ ൢചσʔλཧ
Ϟσϧ͔Βݟ͑ͨͷ ड༧ఆ ୯ ग़ՙϩοτ໌ࡉ ൃ໌ࡉ ୯ϩοτ ཧ ൢചཧ ࡏݿཧ ߪೖཧ
Ͳ͏ͬͯʁ
υϝΠϯۦಈઃܭ %PNBJO%SJWFO%FTJHO
υϝΠϯͱ w ྖҬ w ʮݱʯʮݱͷ෦ॺʯͰͳ͍ ੵۃతʹݟग़͍ͯ͘͠
υϝΠϯͷγεςϜ w ʮυϝΠϯͷγεςϜʯͱ͍͏υϝΠϯ ͷυϝΠϯ Λղܾ͢Δ γεςϜͷυϝΠϯ γεςϜͷ࡞Γํ ͷυϝΠϯ ղܾʹ͏
ղܾʹ͏ ಓ۩ͷઢͰ Λཧղ ಓ۩ͷઢͰ Λཧղ
औΓ্͛Δύλʔϯ w ڥք͚ͮΒΕͨίϯςΩετ #06/%&%$0/5&95 w ͷϨΠϠ 3&410/4*#*-*5:-":&34 ͦͷଞ͍͔ͭ͘
ࢥߟͷϑϨʔϜϫʔΫ
ՖଋΛߟ͑Δ
࠷ॳʹॻ͍ͨਤ
͜͜·Ͱͷաఔ w υϝΠϯείʔϐϯάʢυϝΠϯͷೝࣝʣ w ԿΒ͔ͷʮઢʯΛҾ͘ w ʮྖҬʯʹ͚Δ w υϝΠϯϞσϦϯάʢυϝΠϯͷཧղʣ w
ௐΔ
υϝΠϯੳ w ՖͷۀͰʹͳ͍ͬͯΔ͜ͱͳͲ w ʲҴ֞ੜՖళʳੜՖͷϩεݮͰձࣾސ٬ ʮΦʔϧεϚΠϧʯ ϩεɺࡏݿ͕ IUUQXXXULDKQDMJFOUDPNQBOZNJMMJPOTDBMFCVTJOFTTIUNM
ଞͷใ w ੨ࢁϑϥϫʔϚʔέοτɺͳͥࢢՁͷֹͰՖΛ ചͬͯṶ͔Δͷ͔ʙޙฤʙ w ҰൠతͳՖͷϩεɺ࠾༻ͨ͠ˋఔ͕ී ௨Ͱɺͦͷɺ୯Ձ͕ߴ͘ͳ͍ͬͯ·͢ IUUQEJBNPOEKQBSUJDMFT
ଞͷใ w IUUQXXXLPTVLFPHBXBDPN FJE w ཧΛపఈ͢Δ͜ͱͰϩεݮΒͤ·͢ɻ͋Δ͓ Ֆ͞ΜͰɺʰ͓٬͞Μ͕͓ՖΛങͬͯҎʹ ރΕͯ͠·ͬͨΒɺ৽ͳ͓Ֆͱަ͢Δʱͱ͍͏ ࣋ͪอূΛ࢝Ί·ͨ͠ɻަ͕ଟ͍ͱଛ͢ΔͷͰɺૣ ͘ೖΕͨͷ͔ΒॏతʹചΔ͜ͱΛపఈͨ͠ͱ͜
Ζɺϩε͕ܹݮɻೖΕΛݮΒͯ͠ϩεΛͳ͘͢Α ΓɺཧΛͬͨ΄͏͕Δ͔Ṷ͔ͬͨͷͰ͢
ελʔτ w ֓೦ΛऔΓग़͢ w ʮ໊ࢺʯʹͩ͜ΘΒͳ͍ɻ w Ή͠Ζɺʮಈࢺʢৼɾॲཧɾಈ࡞ʣʯʹΑΓଟ͘ ͷҙΛ͏
͔ΒࡶଟʹϐοΫΞοϓ ϩοτ ࡏݿਪҠ ड૿Ճ ৽ͳՖ ه೦ Ֆଋ ഇغ ࡏݿ རӹ৳ͼΈ
୯ ೖઌ ࣭ҡ࣋Մೳ ݁ଋ ग़ՙ ୯ൢചແ ͠ Ϧϐʔλ ಘҙઌ ಧ͚ઌ ग़ՙ ग़ՙ͓ಧ ͚ͷલ ग़ՙͷมߋ ൃϦʔυλ ΠϜ ೖՙ ߪೖ୯Ґ
େߏΛݟΔ w ύʔεϖΫςΟϒ w ந w ԿาҾ͍ͯݟΔ
ॎʹΔ ϩοτ ࡏݿਪҠ ड૿Ճ ৽ͳՖ ه೦ Ֆଋ ഇغ ࡏݿ རӹ৳ͼΈ
୯ ೖઌ ࣭ҡ࣋Մೳ ݁ଋ ग़ՙ ୯ൢചແ ͠ Ϧϐʔλ ಘҙઌ ಧ͚ઌ ग़ՙ ग़ՙ͓ಧ ͚ͷલ ग़ՙͷมߋ ൃϦʔυλ ΠϜ ೖՙ ߪೖ୯Ґ ཧ ߪೖཧ ࡏݿཧ ൢചཧ
ڥք͚ͮΒΕͨίϯςΩετ ཧ ߪೖཧ ࡏݿཧ ൢചཧ ୯ ϩοτ ೖઌ ൃϦʔυλ
ΠϜ ೖՙ ߪೖ୯Ґ ࡏݿਪҠ ഇغ ࣭ҡ࣋Մೳ ग़ՙ ಘҙઌ
ڥք͚ͮΒΕͨίϯςΩετ ཧ ߪೖཧ ࡏݿཧ ൢചཧ ୯ ϩοτ ೖઌ ൃϦʔυλ
ΠϜ ೖՙ ߪೖ୯Ґ ࡏݿਪҠ ഇغ ࣭ҡ࣋Մೳ ग़ՙ ಘҙઌ ൃ ސ٬ཧ ड
ॳظͷίϯςΩετׂ w ίϯςΩετʢαϒυϝΠϯʣΛݟग़͢ࢼΈ w தʹଐ͍ͯ͠Δͷʢ֓೦ʣͷऩ·Γ۩߹ΛΈΔ w ίϯςΩετ͕ҧ͑ɺݴ༿͕มΘΓɺใͷ୯Ґ มΘΔʢม͑ΒΕΔʣ ɹɹˠίϯςΩετϚοϓʢมʣ
ڥքͷʮ͋ͪΒʯͱʮͪ͜Βʯ ࡏݿཧ ൢചཧ ࡏݿਪҠ ड डॲཧͰ ࡏݿΛνΣοΫ͢Δ
ڥքͷʮ͋ͪΒʯͱʮͪ͜Βʯ ࡏݿཧ ൢചཧ ࡏݿਪҠ ࡏݿ༧ఆ ͍߹Θͤ ड ࡏݿ֓೦ ͪ͜Βʹ ग़ͯ͜ͳ͍
डՄೳ ֬ೝ ൢച֓೦ ͪ͜Βʹ ग़ͯ͜ͳ͍ ίϯςΩετϚοϓ ίϯςΩετؒͰΤϯςΟςΟΛม
݅Λ໌ࣔԽ ൢചཧ ड डՄೳ֬ೝ ࡏݿ ཧ ࡏݿ͕͋Δ͜ͱ ΦʔόʔϒοΩϯά ϙϦγʔʁ ސ٬
Ωϟϯϖʔϯ ҉తͳ֓೦Λ ໌ࣔతʹ͢Δ ʢ༷ύλʔϯʣ
ͷϨΠϠ w Ϗδωεͷͷ֊ʹରԠͤͨ͞ߏ ҙࢥܾఆࢧԉ ϙϦγʔ ۀ જࡏೳྗ ֬
ࡏݿϩεͷ ࡏݿਪҠ ࣭ҡ࣋Մೳ ഇغ ϩοτ ೖՙ ҙࢥܾఆࢧԉ ϙϦγʔ ۀ જࡏೳྗ
֬ ϩεΛݮΒ͍ͨ͠ Ͳ͏͢Εʁ
ࡏݿϩεͷ ҙࢥܾఆࢧԉ ϙϦγʔ ۀ જࡏೳྗ ֬ ࡏݿਪҠ ࣭ҡ࣋Մೳ ഇغ ϩοτ
ೖՙ ࡏݿϩε ϩε ΰʔϧͷ֬ೝ ൃ ൃ ৽ͳՖ ཧ ड૿ ൢചػձଛࣦ ύϥϝʔλͷ ൃݟ
શ෦ඞཁͳΘ͚Ͱͳ͍ w ͷߏΛѲ͢ΔͨΊ
ΠςϨʔγϣϯ̍
ΫϥεΛߟ͑Δ w ͜Ε·Ͱݟग़ͨ͠ͷΛΫϥεʹམͱ͢ w ੩తɹˡˠɹಈత w ࠓճಈతͳํ͔Β
ར༻ͨ͠ύλʔϯ w ΤϯςΟςΟ w Ϣʔεέʔε w αʔϏε w ༷ w
υϝΠϯΠϕϯτ υϝΠϯϞσϦϯάʹ͏ ϏϧσΟϯάϒϩοΫ ͲΕͦͷ·· ΫϥεʹରԠ
͜Εಈ͘ͷ͔ʁ w ͜ͷϞσϧɺಈ͔͘Ͳ͏͔ݕূ͞Ε͍ͯͳ͍ɻ w ࣮ͨ͠ΓɺϞσϧͷݴ༿Ͱͨ͠Γͯ͠ɺϞσϧ ͕Γཱ͍ͬͯΔͷ͔ϑΟʔυόοΫΛಘͭͭɺϞ σϧΛमਖ਼ɾ͍ͤͯ͘͞ɻ
ΠςϨʔγϣϯ̎
࣮ʁ ࣮ɹʹɹϞσϧ
ίʔυΛॻ͘ ϞσϦϯά׆ಈͱͯ͠ͷ࣮ *NQMFNFOUJOHBTBQBSUPG.PEFMJOH
(JU)VC IUUQTHJUIVCDPNQIQNFOUPSTKQqPXFSTIPQ
୯
จ
୯ࡏݿਪҠɾൃɾഇغ
୯ࡏݿਪҠɾൃɾഇغ
ൃՄೳͳೖՙ༧ఆ w ϦʔυλΠϜʹΑΔ ୯ϦʔυλΠϜ ର ܭࢉج४ ୯
݅Λม͑ͯΈΔ
None
࣮Ͱཧղɾݕূ ಈ͘Ϟσϧ ਤࣔͳͲͰཧղɾ ݕূ
None
None
ϩοτͷࡏݿΛ Ͳ͏ཧ͢Δ͔ʁ
ϩοτผࡏݿਪҠϞσϧ ϩοτ ɾೖՙ༧ఆ ɾ࣭ظݶΕ ϩοτࡏݿਪҠ ɾ ɾ ϩοτࡏݿਪҠ ɾ ɾ
ϩοτࡏݿਪҠ ɾ ɾ ϩοτࡏݿਪҠ ɾ ɾ ഇغ༧ఆ ɾ ɾഇغ ༗ݶͱ֬ఆ͍ͯ͠Δ Լ͞Μͷ&3ͱίϯηϓτಉ͡
None
ผ୯ࡏݿͷ ܭࢉ
୯ࡏݿܭࢉ ϩοτ ɾೖՙ༧ఆ ɾ࣭ظݶΕ ϩοτࡏݿਪҠ ɾ ɾ ϩοτࡏݿਪҠ ɾ ɾ
ϩοτࡏݿਪҠ ɾ ɾ ϩοτ ɾೖՙ༧ఆ ɾ࣭ظݶΕ ϩοτࡏݿਪҠ ɾ ɾ ϩοτࡏݿਪҠ ɾ ɾ ཁग़ՙ ɾ ɾ ཁग़ՙ ɾ ɾ ࡏݿ ɾ ɾ ࡏݿ ɾ ɾ
ϩοτࡏݿਪҠ ɾ ɾ ϩοτࡏݿਪҠ ɾ ɾ ཁग़ՙ ɾ ɾ ࡏݿ
ɾ ɾ ୯ࡏݿܭࢉ ద༻ લ ద༻ લ
None
ผ୯ࡏݿߋ৽ॲཧ
ผϩοτࡏݿਪҠɹߋ৽ॲཧ
None
͜͜·ͰͰ w υϝΠϯʹର͢Δཧղ w ಈ͘ɺ࣮Ͱ֬ೝ͞ΕͨϞσϧ
࣮ʹϞσϦϯάͷ Λղܾ͢Δ γεςϜͷυϝΠϯ γεςϜͷ࡞Γํ ͷυϝΠϯ ղܾʹ͏ ಓ۩ͷઢͰ Λཧղ
ΠςϨʔγϣϯ̏
ಡΈ্͛Δ w ࣮ͨ͠Ϋϥε܈ΛɺίʔυΛΕͯʮݴ༿ʯͰݕ ূ͢Δ w ݴޠͷཧʹͯ·Δ͔ʁ w Ϣʔεέʔε͕ॏཁ
·ͱΊ w υϝΠϯۦಈઃܭͷʮࢥߟͷϑϨʔϜϫʔΫʯΛͬ ͯυϝΠϯΛೝࣝɾཧղ͢Δաఔ w ϏϧσΟϯάϒϩοΫͰϞσϧΛΈཱͯΔաఔ w ίʔυ࣮ͱʢ͢ʣݴޠʹΑΓɺϞσϧΛݕূɾ मਖ਼͢Δաఔ
%4-ϓϥοτϑΥʔϜ w ʢຊͷʮ͠ݴ༿ʯத৺Ͱ͕ͨ͠ʣ w ͠ݴ༿ʹݶΒͳ͍ɺʮυϝΠϯ4QFDJpDͳݴޠʯ ΛฤΈग़͢ɹˠɹͦΕ͕ಈ͘ϓϥοτϑΥʔϜ ʢ͜ͷ෦͕औΓΉ͖υϝΠϯͩʣ
ࢀߟॻ੶ w ΤϦοΫɾΤϰΝϯεஶʰΤϦοΫɾΤϰΝϯεͷ υϝΠϯۦಈઃܭʱᠳӭࣾ w +BNFT0$PQMJFOஶʰϚϧνύϥμΠϜσβΠϯʱ ϐΞιϯ w ٢ݪݡ࣏ஶʰઓུใγεςϜͷண؟441ͷݯ ྲྀʱגࣜձࣾຊγεςϛοΫε