$30 off During Our Annual Pro Sale. View Details »
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
1.1k
「ソフトウェア設計」のドメイン - 「データモデリングでドメインを駆動する」を読んで
hidenorigoto
10
3.3k
メルカリ バックエンド領域のこれまでとこれから
hidenorigoto
1
560
メルカリのエンジニアリング組織の変化〜Engineering Managerの視点から〜
hidenorigoto
0
8.4k
The changes of the engineering organization in Mercari - from the view of an engineering manager -
hidenorigoto
0
320
PHPerKaigi 2019 ランチセッション (3/31)
hidenorigoto
1
4.2k
抽象化って何? (What is abstraction?)
hidenorigoto
9
4.7k
抽象化って何? (What is abstraction?)
hidenorigoto
11
7.2k
続・SOLIDの原則ってどんなふうに使うの? 〜オープン・クローズドの原則 センパイのコーディングノート編〜
hidenorigoto
14
6.3k
Other Decks in Programming
See All in Programming
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
230
Socio-Technical Evolution: Growing an Architecture and Its Organization for Fast Flow
cer
PRO
0
260
Microservices rules: What good looks like
cer
PRO
0
540
FluorTracer / RayTracingCamp11
kugimasa
0
180
ハイパーメディア駆動アプリケーションとIslandアーキテクチャ: htmxによるWebアプリケーション開発と動的UIの局所的適用
nowaki28
0
330
Level up your Gemini CLI - D&D Style!
palladius
1
170
251126 TestState APIってなんだっけ?Step Functionsテストどう変わる?
east_takumi
0
300
TypeScriptで設計する 堅牢さとUXを両立した非同期ワークフローの実現
moeka__c
6
2.9k
モダンJSフレームワークのビルドプロセス 〜なぜReactは503行、Svelteは12行なのか〜
fuuki12
0
190
開発に寄りそう自動テストの実現
goyoki
1
360
テストやOSS開発に役立つSetup PHP Action
matsuo_atsushi
0
140
[SF Ruby Conf 2025] Rails X
palkan
0
440
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.4k
The Cost Of JavaScript in 2023
addyosmani
55
9.3k
Embracing the Ebb and Flow
colly
88
4.9k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Site-Speed That Sticks
csswizardry
13
990
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
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ͷݯ ྲྀʱגࣜձࣾຊγεςϛοΫε