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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
200
アウトプットのハードルを下げた! / 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
AI時代の仕事技芸論 — ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ
kuranuki
1
650
New "Type" system on PicoRuby
pocke
1
810
3Dシーンの圧縮
fadis
1
690
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
210
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
3.6k
Copilot CLI の継戦能力を高める コンテキスト管理
nozomutu
1
1.2k
The Arts and Crafts of Work in the AI Era — Toward Mastery in Software Development
kuranuki
1
750
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
1.9k
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
530
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
320
CSC307 Lecture 17
javiergs
PRO
0
320
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
320
Featured
See All Featured
The Invisible Side of Design
smashingmag
302
52k
Embracing the Ebb and Flow
colly
88
5.1k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.6k
How to Talk to Developers About Accessibility
jct
2
230
My Coaching Mixtape
mlcsv
0
140
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Between Models and Reality
mayunak
4
330
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
440
Color Theory Basics | Prateek | Gurzu
gurzu
0
360
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
270
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Test your architecture with Archunit
thirion
1
2.3k
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 εφοΫϛʔ࠾༻