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
hidenorigoto
April 25, 2015
Programming
9
6.7k
花束問題をDDDで考える
2015.4.25 第40回 IT勉強宴会 スライド
https://atnd.org/events/64593
hidenorigoto
April 25, 2015
Tweet
Share
More Decks by hidenorigoto
See All by hidenorigoto
ドメインと向き合う - 旅行予約編
hidenorigoto
4
770
「ソフトウェア設計」のドメイン - 「データモデリングでドメインを駆動する」を読んで
hidenorigoto
10
2.9k
メルカリ バックエンド領域のこれまでとこれから
hidenorigoto
1
450
メルカリのエンジニアリング組織の変化〜Engineering Managerの視点から〜
hidenorigoto
0
8.1k
The changes of the engineering organization in Mercari - from the view of an engineering manager -
hidenorigoto
0
280
PHPerKaigi 2019 ランチセッション (3/31)
hidenorigoto
1
4k
抽象化って何? (What is abstraction?)
hidenorigoto
9
4.5k
抽象化って何? (What is abstraction?)
hidenorigoto
11
6.7k
続・SOLIDの原則ってどんなふうに使うの? 〜オープン・クローズドの原則 センパイのコーディングノート編〜
hidenorigoto
14
5.9k
Other Decks in Programming
See All in Programming
Introduction to kotlinx.rpc
arawn
0
700
Amazon ECS とマイクロサービスから考えるシステム構成
hiyanger
2
560
データベースのオペレーターであるCloudNativePGがStatefulSetを使わない理由に迫る
nnaka2992
0
150
SwiftUI Viewの責務分離
elmetal
PRO
1
240
プログラミング言語学習のススメ / why-do-i-learn-programming-language
yashi8484
0
130
GitHub Actions × RAGでコードレビューの検証の結果
sho_000
0
260
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
270
一休.com のログイン体験を支える技術 〜Web Components x Vue.js 活用事例と最適化について〜
atsumim
0
480
『品質』という言葉が嫌いな理由
korimu
0
160
2024年のkintone API振り返りと2025年 / kintone API look back in 2024
tasshi
0
220
ソフトウェアエンジニアの成長
masuda220
PRO
10
1.1k
ARA Ansible for the teams
kksat
0
150
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Unsuck your backbone
ammeep
669
57k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
What's in a price? How to price your products and services
michaelherold
244
12k
How GitHub (no longer) Works
holman
314
140k
Become a Pro
speakerdeck
PRO
26
5.1k
Visualization
eitanlees
146
15k
GitHub's CSS Performance
jonrohan
1030
460k
Documentation Writing (for coders)
carmenintech
67
4.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
50k
Bash Introduction
62gerente
611
210k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
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ͷݯ ྲྀʱגࣜձࣾຊγεςϛοΫε