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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Takuma Yamamoto
March 05, 2024
Programming
0
110
ドメイン駆動設計 勉強会 〜 ドメインサービス編 〜 / 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
110
スナックミーの開発はワクワクだらけ! / 2024-04-05
tamago3keran
0
190
アウトプットのハードルを下げた! / 2024-03-25
tamago3keran
0
410
ドメイン駆動設計 勉強会 〜 エンティティ編 〜 / 2024-02-20
tamago3keran
0
120
ドメイン駆動設計 勉強会 〜 値オブジェクト編 〜 / 2024-02-06
tamago3keran
1
2k
スカウト返信率を倍にするためにやったこと / 2024-01-29
tamago3keran
3
1.1k
Rails 経験者が FastAPI 本を読んで感じたこと / 2023-11-28
tamago3keran
0
2k
アウトプットのモチベーションはみんな違ってみんな良い! / 2023-10-06
tamago3keran
0
1.5k
PC が変わっても使い慣れた Neovim で すぐに開発を始める仕組み / 2023-07-25
tamago3keran
1
1.3k
Other Decks in Programming
See All in Programming
CopilotKit + AG-UIを学ぶ
nearme_tech
PRO
1
110
朝日新聞のデジタル版を支えるGoバックエンド ー価値ある情報をいち早く確実にお届けするために
junkiishida
1
270
2026年は Rust 置き換えが流行る! / 20260220-niigata-5min-tech
girigiribauer
0
210
Go1.26 go fixをプロダクトに適用して困ったこと
kurakura0916
0
310
Railsの気持ちを考えながらコントローラとビューを整頓する/tidying-rails-controllers-and-views-as-rails-think
moro
4
350
並行開発のためのコードレビュー
miyukiw
2
2.1k
DevinとClaude Code、SREの現場で使い倒してみた件
karia
0
420
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.6k
Ruby x Terminal
a_matsuda
5
480
PostgreSQL を使った快適な go test 環境を求めて
otakakot
0
350
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
2
180
猫の手も借りたい!ので AIエージェント猫を作って社内に放した話 Claude Code × Container Lambda の Slack Bot "DevNeko"
naramomi7
0
220
Featured
See All Featured
Everyday Curiosity
cassininazir
0
140
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.1k
Believing is Seeing
oripsolob
1
68
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
310
Building Adaptive Systems
keathley
44
2.9k
New Earth Scene 8
popppiees
1
1.6k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
240
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
110
How to build a perfect <img>
jonoalderson
1
5.2k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
230
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 εφοΫϛʔ࠾༻