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
快速入門可觀測性
blueswen
0
490
盆栽転じて家具となる / Bonsai and Furnitures
aereal
0
1.7k
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
6
700
オニオンアーキテクチャを使って、 Unityと.NETでコードを共有する
soi013
0
370
VisionProで部屋の明るさを反映させるシェーダーを作った話
segur
0
100
PicoRubyと暮らす、シェアハウスハック
ryosk7
0
200
混沌とした例外処理とエラー監視に秩序をもたらす
morihirok
10
2k
カンファレンス動画鑑賞会のススメ / Osaka.swift #1
hironytic
0
160
今年のアップデートで振り返るCDKセキュリティのシフトレフト/2024-cdk-security-shift-left
tomoki10
0
360
はてなにおけるfujiwara-wareの活用やecspressoのCI/CD構成 / Fujiwara Tech Conference 2025
cohalz
2
2.5k
月刊 競技プログラミングをお仕事に役立てるには
terryu16
1
1.2k
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
1.3k
Featured
See All Featured
Facilitating Awesome Meetings
lara
51
6.2k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.1k
Agile that works and the tools we love
rasmusluckow
328
21k
Unsuck your backbone
ammeep
669
57k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Visualization
eitanlees
146
15k
A better future with KSS
kneath
238
17k
RailsConf 2023
tenderlove
29
970
Rebuilding a faster, lazier Slack
samanthasiow
79
8.8k
Thoughts on Productivity
jonyablonski
68
4.4k
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 εφοΫϛʔ࠾༻