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-04-23
Search
Takuma Yamamoto
April 23, 2024
Programming
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ドメイン駆動設計 勉強会 〜 リポジトリ編 〜 / 2024-04-23
Takuma Yamamoto
April 23, 2024
More Decks by Takuma Yamamoto
See All by Takuma Yamamoto
スナックミーの開発はワクワクだらけ! / 2024-04-05
tamago3keran
0
210
アウトプットのハードルを下げた! / 2024-03-25
tamago3keran
0
420
ドメイン駆動設計 勉強会 〜 ドメインサービス編 〜 / 2024-03-05
tamago3keran
0
120
ドメイン駆動設計 勉強会 〜 エンティティ編 〜 / 2024-02-20
tamago3keran
0
130
ドメイン駆動設計 勉強会 〜 値オブジェクト編 〜 / 2024-02-06
tamago3keran
1
2.2k
スカウト返信率を倍にするためにやったこと / 2024-01-29
tamago3keran
3
1.1k
Rails 経験者が FastAPI 本を読んで感じたこと / 2023-11-28
tamago3keran
0
2.1k
アウトプットのモチベーションはみんな違ってみんな良い! / 2023-10-06
tamago3keran
0
1.6k
PC が変わっても使い慣れた Neovim で すぐに開発を始める仕組み / 2023-07-25
tamago3keran
1
1.3k
Other Decks in Programming
See All in Programming
依存関係から依存物へ―Dependencyという言葉の歴史をひも解く
j_lee
0
130
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
4.3k
技術記事、 専門家としてのプログラマ、 言語化
mizchi
13
6.3k
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
890
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
400
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
170
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
550
エージェンティックRAGにAWSで入門しよう!
har1101
8
1.7k
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
110
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.7k
Webフレームワークの ベンチマークについて
yusukebe
0
170
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
570
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
WCS-LA-2024
lcolladotor
0
650
GraphQLとの向き合い方2022年版
quramy
50
15k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
How to build a perfect <img>
jonoalderson
1
5.7k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
Ruling the World: When Life Gets Gamed
codingconduct
0
260
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
390
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
320
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
250
Transcript
υϝΠϯۦಈઃܭ ษڧձ Takuma Yamamoto ʙ ϦϙδτϦฤ ʙ
BIOGRAPHY ͋ͳͨ୭Ͱ͔͢ʁ 5BLVNB:BNBNPUP 8PSLBUTOBQNF 'SPN.JZB[BLJ 4/4 झຯ ɾɹɹIUUQTHJUIVCDPNUBNBHPLFSBO ɾɹɹIUUQTUXJUUFSDPNZBNBUBLV ɾɹɹIUUQTRJJUBDPNUBNBHPLFSBO
ɾɹɹIUUQT[FOOEFWUBNBHPLFSBO ɾ͓ͭ ɾαφ ɾΞχϝ ɾɹɹIUUQTOPUFDPNUBNBHPLFSBO ࠷͍ۙͬͯΔ͜ͱ ɾΤϯδχΞ࠾༻શൠ ɾ-BNCEBΛͬͨ$3.ͷ࣮
INTRODUCTION Ҿ͖ଓ͖͜ͷຊΛࢀߟʹ͍ͯ͠·͢ ࠳ંͨ͠%%%Λࠓ͔ͦͬ͜͠ΓֶͿͨΊɺ։ൃऀʹͱͬͯ༏͍͠ೖॻͰ͋ΔʮυϝΠϯۦಈ ઃܭೖʯΛҾ͖ଓ͖ࢀߟʹ͍ͯ͠·͢ɻ
INTRODUCTION υϝΠϯϞσϧ͔Β࣮ʹམͱ͠ࠐΉ෦ʹϑΥʔΧε վΊͯͷઆ໌ʹͳΓ·͕͢ɺ͜ͷษڧձͰ։ൃऀʹͱͬͯཧղ͍͢͠lϞσϦϯάͨ֓͠೦Λ࣮ ʹམͱ͠ࠐΉͨΊͷύλʔϯzʹϑΥʔΧε͍ͯ͠·͢ɻ αϯϓϧίʔυͳͲҰॹʹڞ༗͠ͳ͕ΒਐΊΔͷͰɺͥͻΠϝʔδΛΒ·ͤͯɺۀʹ׆͔ͤͦ͏ ͳ෦Λ୳͍͚ͯͨͩ͠Εͱࢥ͍·͢ʂ υϝΠϯͷ֓೦ υϝΠϯϞσϧ υϝΠϯ ΦϒδΣΫτ
͜͜ʹूத
INTRODUCTION υϝΠϯͷࣝΛ࣮ʹམͱ͠ࠐΉํ๏Λֶͼ·ͨ͠ ͜Ε·ͰυϝΠϯͷࣝΛͲͷΑ͏ʹ࣮ͯ͠ɺυϝΠϯΦϒδΣΫτʹམͱ͠ࠐΉͷ͔ɺͦͷ࣮ ํ๏ʹ͍ͭͯϑΥʔΧεֶͯ͠ΜͰ͖·ͨ͠ɻ υϝΠϯͷ֓೦ υϝΠϯϞσϧ υϝΠϯ ΦϒδΣΫτ ΦϒδΣΫτ ΤϯςΟςΟ
υϝΠϯαʔϏε
INTRODUCTION ࠓճֶͿͷυϝΠϯΦϒδΣΫτͰ͋Γ·ͤΜʂ ࠓճొ͢ΔΦϒδΣΫτɺυϝΠϯΦϒδΣΫτ͕ΑΓυϝΠϯࣝͷදݱʹప͢Δ͜ͱ͕Ͱ͖ ΔΑ͏ɺυϝΠϯΦϒδΣΫτΛࡍཱͨͤΔׂΛ୲͍·͢ɻ υϝΠϯΦϒδΣΫτ ✨ ࠓճͷΦϒδΣΫτ
INTRODUCTION ࠓճͷࡐ “ϦϙδτϦ” Ͱ͢ υϝΠϯΦϒδΣΫτΛ࣮͢ΔͱɺυϝΠϯࣝͱؔͷͳ͍ίʔυ͕ඞཁʹͳΔέʔε͕͋Γ ·͢ɻ͔Γ͍͢ྫͱͯ͠ڍ͛ΒΕΔͷ͕ɺσʔλͷอଘ෮ݩͷॲཧͰ͢ɻ υϝΠϯ ΦϒδΣΫτ ϦϙδτϦ σʔλετΞ
ࠓճֶͿlϦϙδτϦzɺ্هͷΑ͏ʹσʔλΛӬଓԽͨ͠Γɺ࠶ߏஙͨ͠Γ͢ΔॲཧΛυϝΠϯ ΦϒδΣΫτ͔ΒΓ͢͜ͱΛతͱͨ͠ΦϒδΣΫτͰ͢ɻ
Example code ۩ମతʹͲ͏͍ͬͨίʔυͳͷ͔ʁ
LESSON ۩ମྫ1: Ϣʔβʔ࡞ॲཧ ϢʔβʔΛ࡞͢Δॲཧ͕ɺҎԼͷΑ͏ͳίʔυͰ࣮͞Ε͍ͯΔͱ͠·͢ɻ ಉ໊͡લͷϢʔβʔΛ࡞͢Δ͜ͱ͕Ͱ͖ͳ͍ͱ͍͏ϩδοΫΘ͔Γ·͕͢ɺͦΕҎ߱ͷॲཧ͕Կ Λ͓͜ͳ͍ͬͯΔͷ͔ɺύοͱݟͨײ͡Θ͔ΓͮΒ͘ͳ͍Ͱ͠ΐ͏͔ʁ
LESSON ۩ମྫ2: Ϣʔβʔͷॏෳ֬ೝॲཧ ·ͨҰํͰϢʔβʔͷॏෳΛνΣοΫ͢ΔॲཧɺҎԼͷΑ͏ʹ࣮͞Ε͍ͯΔͱ͠·͢ɻ ίʔυΛͬ͘͡ΓಡΊɺࢦఆ໊ͨ͠લͷϢʔβʔΛσʔλετΞͰݕࡧ͠ɺଘࡏͷ༗ແΛ5SVF 'BMTFͰฦ͍ͯ͠Δ͜ͱΛཧղͰ͖·͕͢ɺ͜Εύοͱݟ͔ͯΓͮΒ͍Ͱ͢ΑͶɻɻɻ
LESSON σʔλपΓͷॲཧυϝΠϯࣝΛݟ͑ʹ͘͘͢Δ ͜Ε·ͰυϝΠϯࣝΛίʔυͱͯ͠མͱ͠ࠐΉͨΊʹɺυϝΠϯΦϒδΣΫτΛֶΜͰ͖·ͨ͠ɻ Ͱ͕͢ɺઌड़ͨ͠ίʔυͷσʔλετΞؔ࿈ͷॲཧɺՌͨͯ͠υϝΠϯࣝͳͷͰ͠ΐ͏͔ʁ ͑/PͰ͋Γɺ͜͏͍ͬͨυϝΠϯࣝͱؔͷͳ͍ίʔυ͕هࡌ͞ΕΔ͜ͱͰɺυϝΠϯΦ ϒδΣΫτ͕ݟ͑ͮΒͯ͘͠͠·͍·͢ɻ υϝΠϯΦϒδΣΫτ
How do we use Repository? ͲͷΑ͏ʹϦϙδτϦΛར༻͢Δͷ͔ʁ
˞!BCTUSBDUNFUIPEΛద༻͢Δ͜ͱͰɺੜΫϥε͕ಛఆͷϝιουΛ࣮͢Δ͜ͱΛڧ੍Ͱ͖Δ LESSON ·ͣΠϯλʔϑΣʔεΛ࣮͢Δ ·ͣϦϙδτϦͷΠϯλʔϑΣʔεΛ࣮͠ɺl;Δ·͍zΛఆٛ͠·͢ɻ͜ΕΛఆٛ͢Δ͜ͱͰɺ ։ൃن͕େ͖͘ͳΓɺશମ͕ݟ͑ͮΒ͘ͳͬͯɺԿΛ࣮͖͔͢Λ໌֬ʹѲͰ͖ΔͳͲͷϝ Ϧοτ͕͋ΔΑ͏Ͱ͢ɻ ͨͩ͠ɺ1ZUIPOͷݴޠઃܭʢμοΫλΠϐϯάಈతܕ͚ͳͲʣͩͱɺΠϯλʔϑΣʔεΛ༻͍ ࣮ͯ͢Δ͜ͱɺ੩తܕ͚ݴޠͳͲͱൺͯগͳ͍Α͏Ͱ͢ɻ
LESSON ΠϯλʔϑΣʔεΛܧঝ͠ɺ࠶ߏஙॲཧΛ࣮͢Δ ઌ΄Ͳ࡞ͨ͠*6TFS3FQPTJUPSZΠϯλʔϑΣʔεΛܧঝͯ͠ɺ6TFS.ZTRM3FQPTJUPSZͱ͍͏Ϧϙδ τϦΫϥεΛ࣮͠ɺͦ͜ʹσʔλͷ࠶ߏஙΛߦ͏ fi OEϝιουΛఆٛ͠·͢ɻ
LESSON ॏෳ֬ೝͷ༰͕ΑΓ͔Γ͘͢දݱ͞ΕΔ 6TFS.ZTRM3FQPTJUPSZͷ fi OEϝιουΛ༻ͯ͠ॏෳ֬ೝͷॲཧΛमਖ਼͢ΔͱɺҎԼͷΑ͏ʹίʔ υ͕εοΩϦ͠ɺԿΛߦ͍ͬͯΔॲཧͳͷ͔ύοͱཧղͰ͖ΔΑ͏ʹͳΓ·͢ɻ
LESSON ΠϯλʔϑΣʔεΛܧঝ͠ɺӬଓԽॲཧΛ࣮͢Δ ࣍ઌ΄Ͳ࡞ͨ͠6TFS.ZTRM3FQPTJUPSZΫϥεʹɺϢʔβʔσʔλͷӬଓԽΛߦ͏TBWFϝιου Λఆٛ͠·͢ɻ
LESSON Ϣʔβʔ࡞ॲཧͷ༰͕ΑΓ͔Γ͘͢දݱ͞ΕΔ 6TFS.ZTRM3FQPTJUPSZΛ༻ͯ͠ɺϢʔβʔ࡞ॲཧΛ࣮͢͠ͱɺҎԼͷΑ͏ʹίʔυ͕εοΩ Ϧ͠ɺԿΛߦ͍ͬͯΔॲཧͳͷ͔͕໌֬ʹѲͰ͖ΔΑ͏ʹͳΓ·͢ɻ
What are the bene fi ts of using a Repository?
ϦϙδτϦΛར༻͢ΔϝϦοτʁ
LESSON มߋʹ͏ӨڹൣғΛখ͘͞͠ɺ։ൃεϐʔυΛ؇Ίͳ͍ 42-จΛॻ͍࣮ͯ͠·͕ͨ͠ɺࠓޙ03.BQQFSΛ༻ͨ͠։ൃʹมߋ͢Δ͜ͱ༰қʹ ૾Ͱ͖·͢ɻͦͯ͠ɺطʹDSFBUF@VTFSϝιου͕ଟ͘ͷՕॴͰ༻͞Ε͍ͯͨͱ͠·͠ΐ͏ɻ 03.BQQFSΛ༻͢ΔϦϙδτϦΛผ్४උͯ͠͠·͑ɺ1SPHSBNΫϥε͕ΠϯελϯεԽ͞Ε Δॴ͝ͱʹ༻͢ΔϦϙδτϦΛมߋͰ͖ΔͷͰɺӨڹൣғΛݶఆ͠ͳ͕Β։ൃͰ͖·͢ɻ ίʔυ" ίʔυ# ίʔυ$
ίʔυ"͔Βঃʑʹ͍͛ͯ͘͜ͱ͕Մೳʂ
LESSON ςετ༻ϦϙδτϦΛ࡞Ε؆୯ʹςετͰ͖Δ ઌ΄Ͳ03.BQQFSΛ༻ͨ͠ϦϙδτϦΛผ్४උ͢ΔΛͨ͠௨Γɺςετ༻ͷϦϙδτϦ ࡞ͬͯ͠·͑ɺςετΛߦ͏͜ͱՄೳʹͳΓ·͢ɻ ϓϩμΫγϣϯίʔυ ςετίʔυ
Where do we use Repository? εφοΫϛʔͩͱɺͲ͜ͰϦϙδτϦΛར༻͍ͯ͠Δ͔ʁ
GitHub Ͱ୳ͯ͠Έ·͠ΐ͏ʂ
Summary ϦϙδτϦʹ͍ͭͯ·ͱΊΔͱ…
SUMMARY ϦϙδτϦʹֶ͍ͭͯΜͰΈͯ… ɾϦϙδτϦσʔλͷӬଓԽ࠶ߏஙͷॲཧΛΓͯ͘͠ΕΔΦϒδΣΫτ ɾυϝΠϯΦϒδΣΫτͰͳ͍͕ɺυϝΠϯࣝΛࡍཱͨͤΔॏཁͳׂΛ୲͏ ɾมߋʹ͏ӨڹൣғΛݶఆ͠ɺখ͘͞ૣ͍։ൃΛॿ͚ΔϝϦοτ͋Δ
Recruitment ΤϯδχΞืूதͰ͢ʂ
RECRUITMENT We are Hiring! εφοΫϛʔͰɺʮ͓ͭͱɺੈքΛ໘ന ͘ʯ͍ͯ͘͠ɺͦΜͳ׆ಈΛࣄͱͯ͠औΓ Έ͍ͨΤϯδχΞΛืू͍ͯ͠·͢ɻ IUUQTUFBNTOBRNFDPN εφοΫϛʔ࠾༻