Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ドメイン駆動設計 勉強会 〜 ドメインサービス編 〜 / 2024-03-05
Search
Takuma Yamamoto
March 05, 2024
Programming
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ドメイン駆動設計 勉強会 〜 ドメインサービス編 〜 / 2024-03-05
Takuma Yamamoto
March 05, 2024
More Decks by Takuma Yamamoto
See All by Takuma Yamamoto
ドメイン駆動設計 勉強会 〜 リポジトリ編 〜 / 2024-04-23
tamago3keran
0
120
スナックミーの開発はワクワクだらけ! / 2024-04-05
tamago3keran
0
220
アウトプットのハードルを下げた! / 2024-03-25
tamago3keran
0
430
ドメイン駆動設計 勉強会 〜 エンティティ編 〜 / 2024-02-20
tamago3keran
0
140
ドメイン駆動設計 勉強会 〜 値オブジェクト編 〜 / 2024-02-06
tamago3keran
1
2.3k
スカウト返信率を倍にするためにやったこと / 2024-01-29
tamago3keran
3
1.2k
Rails 経験者が FastAPI 本を読んで感じたこと / 2023-11-28
tamago3keran
0
2.1k
アウトプットのモチベーションはみんな違ってみんな良い! / 2023-10-06
tamago3keran
0
1.7k
PC が変わっても使い慣れた Neovim で すぐに開発を始める仕組み / 2023-07-25
tamago3keran
1
1.3k
Other Decks in Programming
See All in Programming
A2UI for Android: Safely Rendering AI-Generated UI with Jetpack Compose - DroidKaigi 2026
itsmedreamwalker
0
140
選挙速報を多くのユーザーへ 届ける Live Activities 設計
hamayokokuririn
0
140
FreeBSDでZabbixを動かす
kenkino
0
290
Heart of Swift Concurrency
koher
0
830
Intent as Code
shoppingjaws
6
1k
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
170
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
580
Family mrubyの進捗
kishima
1
120
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
4.6k
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
110
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.8k
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
2.9k
Featured
See All Featured
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
500
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
370
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
250
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.1k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
410
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.8k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
610
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
280
Crafting Experiences
bethany
1
340
4 Signs Your Business is Dying
shpigford
187
23k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
390
Transcript
υϝΠϯۦಈઃܭ ษڧձ Takuma Yamamoto ʙ υϝΠϯαʔϏεฤ ʙ
BIOGRAPHY ͋ͳͨ୭Ͱ͔͢ʁ 5BLVNB:BNBNPUP 8PSLBUTOBQNF 'SPN.JZB[BLJ 4/4 झຯ ɾɹɹIUUQTHJUIVCDPNUBNBHPLFSBO ɾɹɹIUUQTUXJUUFSDPNZBNBUBLV ɾɹɹIUUQTRJJUBDPNUBNBHPLFSBO
ɾɹɹIUUQT[FOOEFWUBNBHPLFSBO ɾ͓ͭ ɾαφ ɾΞχϝ ɾɹɹIUUQTOPUFDPNUBNBHPLFSBO ࠷͍ۙͬͯΔ͜ͱ ɾΤϯδχΞ࠾༻શൠ ɾ-BNCEBΛͬͨ$3.ͷ࣮
INTRODUCTION Ҿ͖ଓ͖͜ͷຊΛࢀߟʹ͍ͯ͠·͢ ࠳ંͨ͠%%%Λࠓ͔ͦͬ͜͠ΓֶͿͨΊɺ։ൃऀʹͱͬͯ༏͍͠ೖॻͰ͋ΔʮυϝΠϯۦಈ ઃܭೖʯΛҾ͖ଓ͖ࢀߟʹ͍ͯ͠·͢ɻ
INTRODUCTION υϝΠϯϞσϧ͔Β࣮ʹམͱ͠ࠐΉ෦ʹϑΥʔΧε վΊͯͷઆ໌ʹͳΓ·͕͢ɺ͜ͷษڧձͰ։ൃऀʹͱͬͯཧղ͍͢͠lϞσϦϯάͨ֓͠೦Λ࣮ ʹམͱ͠ࠐΉͨΊͷύλʔϯzʹϑΥʔΧε͍ͯ͠·͢ɻ αϯϓϧίʔυͳͲҰॹʹڞ༗͠ͳ͕ΒਐΊΔͷͰɺͥͻΠϝʔδΛΒ·ͤͯɺۀʹ׆͔ͤͦ͏ ͳ෦Λ୳͍͚ͯͨͩ͠Εͱࢥ͍·͢ʂ υϝΠϯͷ֓೦ υϝΠϯϞσϧ υϝΠϯ ΦϒδΣΫτ
͜͜ʹूத
Previous Review લճͷৼΓฦΓ
REVIEW ΦϒδΣΫτฒͼʹ “” ͕࣋ͭੑ࣭ ΦϒδΣΫτͦͷ໊ͷ௨Γɺzzͱͯ͠ͷੑ࣭Λ࣋ͭΦϒδΣΫτͰͨ͠ɻͦͯ͠ɺzz͕࣋ͬ ͍ͯΔੑ࣭ͱͯ͠ɺҎԼͷΑ͏ͳͷ͕ڍ͛ΒΕ͍ͯ·ͨ͠ɻ ɾෆมͰ͋Δ ɾަ͕ՄೳͰ͋Δ ɾՁੑʹΑͬͯൺֱ͞ΕΔ
REVIEW ΤϯςΟςΟ͕࣋ͭੑ࣭ ΦϒδΣΫτͱਅٯͷΑ͏ͳੑ࣭Λ࣋ͭͱ͞Ε͍ͯͨͷ͕lΤϯςΟςΟzͰͨ͠ɻ۩ମతʹҎ ԼͷΑ͏ͳੑ࣭͕ڍ͛ΒΕ͍ͯ·ͨ͠Ͷɻ ɾՄมͰ͋Δ ɾಉ͡ଐੑͰ͋ͬͯ۠ผ͞ΕΔ ɾಉҰੑΛͭ
INTRODUCTION ࠓͷࡐ “υϝΠϯαʔϏε” Ͱ͢ ։ൃΛ͍ͯ͠ΔͱlΦϒδΣΫτzlΤϯςΟςΟzʹఆٛ͢Δͱෆࣗવʹͳͬͯ͠·͏;Δ·͍ ͕ग़͖ͯ·͢ɻͦΕΛղফͯ͘͠ΕΔυϝΠϯΦϒδΣΫτ͕lυϝΠϯαʔϏεzͰ͢ɻ ΦϒδΣΫτ ΤϯςΟςΟ ;Δ·͍ ෆࣗવ…
What’s an unnatural behavior? ۩ମతʹෆࣗવͳ;Δ·͍ͱͲ͏͍ͬͨͷͰ͠ΐ͏͔ʁ
LESSON ۩ମతͳྫΛϕʔεʹߟ͑ͯΈ·͢ Ϣʔβʔ͕ॏෳ͍ͯ͠ͳ͍͔Λ֬ೝ͢ΔϝιουΛɺΤϯςΟςΟͰ͋Δ6TFSΫϥεʹఆٛͨ͠ ߹Λߟ͑·͢ɻ ͰγεςϜ্ͰϢʔβʔ͕ॏෳ͍ͯ͠ͳ͍͔Λ֬ೝ͢ΔͨΊɺίʔυΛ࣮͠Α͏ͱ͢ΔͱͲ͏ͳ ΔͰ͠ΐ͏͔ʁ
LESSON Ϣʔβʔ͕ࣗʹॏෳΛ֬ೝ͢Δͱ͍͏ෆࣗવ͞ 6TFSΫϥεʹॏෳ֬ೝͷϝιουΛ࣮͢ΔͱɺϢʔβʔ͕ࣗʹରͯ͠ॏෳ͍ͯ͠ͳ͍͔Λ֬ೝ͢ Δͱ͍͏ෆࣗવͳίʔυʹͳͬͯ͠·͍·͢ɻ ͜ͷෆࣗવ͞Λճආ͢ΔͨΊʹɺ6TFSΫϥεͷΠϯελϯεͱͯ֬͠ೝ༻ΦϒδΣΫτΛੜ͢Δ ํ๏͋Γ·͢ɻ
LESSON ෆࣗવ͞Λճආͯ͠ະͩΔෆࣗવ͞ ॏෳ֬ೝ༻ͷΦϒδΣΫτΛੜ͢Δ͜ͱͰɺzϢʔβʔ͕ࣗʹ͍߹ΘͤΔzͱ͍͏ෆࣗવ͞Λճ ආ͢Δ͜ͱͰ͖·͢ɻ͔͠͠ɺ6TFSΫϥεΛΠϯελϯεԽͨ͠zϢʔβʔΛද͢ΦϒδΣΫτͰ ͋Γͳ͕ΒɺϢʔβʔͰͳ͍zͱ͍͏ผͷෆࣗવ͞Λͯ͠͠·͍·͢ɻ ͜͏͍ͬͨෆࣗવ͞ΛղফͰ͖Δͷ͕ɺzυϝΠϯαʔϏεzͱ͍͏υϝΠϯΦϒδΣΫτͰ͢ɻ
LESSON ෆࣗવ͞Λղܾ͢ΔΦϒδΣΫτ “υϝΠϯαʔϏε” ΦϒδΣΫτΤϯςΟςΟʹఆٛ͢ΔͱෆࣗવʹͳΔ;Δ·͍ʢࠓճͩͱϢʔβʔͷॏෳ֬ೝʣ ɺҎԼͷΑ͏ʹzυϝΠϯαʔϏεzͱ࣮ͯ͢͠Δͱɺͦͷෆࣗવ͞Λղܾ͢Δ͜ͱ͕Ͱ͖·͢ɻ ˞ΦϒδΣΫτΤϯςΟςΟͱҧ͍ɺࣗͷ;Δ·͍Λมߋ͢ΔΑ͏ͳΠϯελϯεಛ༗ͷঢ়ଶΛͪ·ͤΜɻ
Important things for using “Domain Service” υϝΠϯαʔϏεΛ༻͢Δ্Ͱҙ͖͢͜ͱ
LESSON υϝΠϯαʔϏεΛཞ༻ͯ͠͠·͏ͱ… ͯ͢ͷ;Δ·͍υϝΠϯαʔϏεʹهड़Ͱ͖ͯ͠·͍·͢ɻຊདྷΦϒδΣΫτΤϯςΟςΟ ʹఆ͖ٛ͢ॲཧΛυϝΠϯαʔϏεͰ࣮ͯ͠͠·͏ͱԿ͕ى͜ΔͰ͠ΐ͏͔ʁ ͯ͢ͷ;Δ·͍ΛυϝΠϯαʔϏεͰ࣮ͯ͠͠·͏ͱ
LESSON υϝΠϯϞσϧශ݂Λىͯ͜͠͠·͏ υϝΠϯαʔϏεʹͯ͢ͷ;Δ·͍هड़͢Δͱɺ6TFSΫϥεʹҎԼͷΑ͏ͳهࡌ͔͠Γ· ͤΜɻ͜ΕͰϢʔβʔͱ͍͏υϝΠϯʹͲͷΑ͏ͳ;Δ·͍ϧʔϧ͕ଘࡏ͢Δͷ͔ɺಡΈऔΔ͜ ͱ͕ෆՄೳʹͳͬͯ͠·͍·͢Ͷɻ ͜ͷΑ͏ʹຊདྷυϝΠϯΦϒδΣΫτ͕ޠΔ͖͜ͱΛɺԿޠ͍ͬͯͳ͍ঢ়ଶͷ͜ͱΛzυϝΠϯ Ϟσϧශ݂zͱݴ͍·͢ɻ ͭ·ΓɺυϝΠϯαʔϏεΛཞ༻͢Δ͜ͱͰσʔλͱ;Δ·͍͕அઈ͠ɺϩδοΫ͕ࡏ͢Δ͜ͱΛ ڐ͠ɺมߋ༰қੑͷԼΛট͍ͯ͠·͍·͢ɻΑͬͯɺΦϒδΣΫτΤϯςΟςΟʹఆٛ͢Δͱ ෆࣗવͳͷ͚ͩΛυϝΠϯαʔϏεͰ࣮͢Δͷ͕Αͦ͞͏Ͱ͢ɻ
Where do we use Domain Service? εφοΫϛʔͩͱɺͲ͜ͰυϝΠϯαʔϏεΛར༻͍ͯ͠Δ͔ʁ
GitHub Ͱ୳ͯ͠Έ·͠ΐ͏ʂ
Summary υϝΠϯαʔϏεʹ͍ͭͯ·ͱΊΔͱ…
SUMMARY υϝΠϯαʔϏεʹֶ͍ͭͯΜͰΈͯ… ɾυϝΠϯαʔϏεͷ͍Ͳ͜Ζ ɹɾΦϒδΣΫτΤϯςΟςΟʹهड़͢Δͱෆࣗવʹͳͬͯ͠·͏ͱ͖ ɾυϝΠϯαʔϏεͷཞ༻Λආ͚Δ͖ཧ༝ ɹɾυϝΠϯΦϒδΣΫτ͔ΒԿಡΈऔΕͳ͘ͳͬͯ͠·͏ ɹɾϩδοΫͷࡏΛڐ͢͜ͱʹͳΓɺมߋ༰қੑΛԼͤͯ͞͠·͏ ɾΦϒδΣΫτΤϯςΟςΟʹهड़͢Δͱෆࣗવͳͱ͖ʹ͚ͩ༻͢Δ͜ͱ
Recruitment ΤϯδχΞืूதͰ͢ʂ
RECRUITMENT We are Hiring! εφοΫϛʔͰɺʮ͓ͭͱɺੈքΛ໘ന ͘ʯ͍ͯ͘͠ɺͦΜͳ׆ಈΛࣄͱͯ͠औΓ Έ͍ͨΤϯδχΞΛืू͍ͯ͠·͢ɻ IUUQTUFBNTOBRNFDPN εφοΫϛʔ࠾༻