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
86
ドメイン駆動設計 勉強会 〜 ドメインサービス編 〜 / 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
75
スナックミーの開発はワクワクだらけ! / 2024-04-05
tamago3keran
0
160
アウトプットのハードルを下げた! / 2024-03-25
tamago3keran
0
380
ドメイン駆動設計 勉強会 〜 エンティティ編 〜 / 2024-02-20
tamago3keran
0
94
ドメイン駆動設計 勉強会 〜 値オブジェクト編 〜 / 2024-02-06
tamago3keran
1
1.5k
スカウト返信率を倍にするためにやったこと / 2024-01-29
tamago3keran
3
1k
Rails 経験者が FastAPI 本を読んで感じたこと / 2023-11-28
tamago3keran
0
1.5k
アウトプットのモチベーションはみんな違ってみんな良い! / 2023-10-06
tamago3keran
0
1.2k
PC が変わっても使い慣れた Neovim で すぐに開発を始める仕組み / 2023-07-25
tamago3keran
1
1.1k
Other Decks in Programming
See All in Programming
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
180
How mixi2 Uses TiDB for SNS Scalability and Performance
kanmo
40
16k
『テスト書いた方が開発が早いじゃん』を解き明かす #phpcon_nagoya
o0h
PRO
6
2k
Amazon S3 TablesとAmazon S3 Metadataを触ってみた / 20250201-jawsug-tochigi-s3tables-s3metadata
kasacchiful
0
180
Honoのおもしろいミドルウェアをみてみよう
yusukebe
1
210
Ruby on cygwin 2025-02
fd0
0
150
Flutter × Firebase Genkit で加速する生成 AI アプリ開発
coborinai
0
160
バッチを作らなきゃとなったときに考えること
irof
2
460
データの整合性を保つ非同期処理アーキテクチャパターン / Async Architecture Patterns
mokuo
53
18k
1年目の私に伝えたい!テストコードを怖がらなくなるためのヒント/Tips for not being afraid of test code
push_gawa
1
450
Unity Android XR入門
sakutama_11
0
170
Lottieアニメーションをカスタマイズしてみた
tahia910
0
130
Featured
See All Featured
Building Applications with DynamoDB
mza
93
6.2k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
Embracing the Ebb and Flow
colly
84
4.6k
How GitHub (no longer) Works
holman
314
140k
Speed Design
sergeychernyshev
27
800
Agile that works and the tools we love
rasmusluckow
328
21k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.8k
How to train your dragon (web standard)
notwaldorf
91
5.8k
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 εφοΫϛʔ࠾༻