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
ドメイン駆動設計 勉強会 〜 ドメインサービス編 〜 / 2024-03-05
Search
Takuma Yamamoto
March 05, 2024
Programming
0
81
ドメイン駆動設計 勉強会 〜 ドメインサービス編 〜 / 2024-03-05
Takuma Yamamoto
March 05, 2024
Tweet
Share
More Decks by Takuma Yamamoto
See All by Takuma Yamamoto
ドメイン駆動設計 勉強会 〜 リポジトリ編 〜 / 2024-04-23
tamago3keran
0
69
スナックミーの開発はワクワクだらけ! / 2024-04-05
tamago3keran
0
150
アウトプットのハードルを下げた! / 2024-03-25
tamago3keran
0
370
ドメイン駆動設計 勉強会 〜 エンティティ編 〜 / 2024-02-20
tamago3keran
0
87
ドメイン駆動設計 勉強会 〜 値オブジェクト編 〜 / 2024-02-06
tamago3keran
1
1.5k
スカウト返信率を倍にするためにやったこと / 2024-01-29
tamago3keran
2
980
Rails 経験者が FastAPI 本を読んで感じたこと / 2023-11-28
tamago3keran
0
1.4k
アウトプットのモチベーションはみんな違ってみんな良い! / 2023-10-06
tamago3keran
0
1.2k
PC が変わっても使い慣れた Neovim で すぐに開発を始める仕組み / 2023-07-25
tamago3keran
1
1.1k
Other Decks in Programming
See All in Programming
ESLintプラグインを使用してCDKのセオリーを適用する
yamanashi_ren01
2
230
今年のアップデートで振り返るCDKセキュリティのシフトレフト/2024-cdk-security-shift-left
tomoki10
0
360
ASP.NET Core の OpenAPIサポート
h455h1
0
110
ある日突然あなたが管理しているサーバーにDDoSが来たらどうなるでしょう?知ってるようで何も知らなかったDDoS攻撃と対策 #phpcon.2024
akase244
2
7.7k
DevFest - Serverless 101 with Google Cloud Functions
tunmise
0
140
HTML/CSS超絶浅い説明
yuki0329
0
190
PHPUnitしか使ってこなかった 一般PHPerがPestに乗り換えた実録
mashirou1234
0
420
どうして手を動かすよりもチーム内のコードレビューを優先するべきなのか
okashoi
3
870
『改訂新版 良いコード/悪いコードで学ぶ設計入門』活用方法−爆速でスキルアップする!効果的な学習アプローチ / effective-learning-of-good-code
minodriven
28
4.1k
盆栽転じて家具となる / Bonsai and Furnitures
aereal
0
1.8k
Внедряем бюджетирование, или Как сделать хорошо?
lamodatech
0
940
ISUCON14感想戦で85万点まで頑張ってみた
ponyo877
1
590
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.2k
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
How to Ace a Technical Interview
jacobian
276
23k
What's in a price? How to price your products and services
michaelherold
244
12k
Unsuck your backbone
ammeep
669
57k
The Invisible Side of Design
smashingmag
299
50k
A Philosophy of Restraint
colly
203
16k
Faster Mobile Websites
deanohume
305
30k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Facilitating Awesome Meetings
lara
51
6.2k
Optimising Largest Contentful Paint
csswizardry
33
3k
Scaling GitHub
holman
459
140k
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 εφοΫϛʔ࠾༻