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
0
21
ドメイン駆動設計 勉強会 〜 リポジトリ編 〜 / 2024-04-23
Takuma Yamamoto
April 23, 2024
Tweet
Share
More Decks by Takuma Yamamoto
See All by Takuma Yamamoto
スナックミーの開発はワクワクだらけ! / 2024-04-05
tamago3keran
0
70
アウトプットのハードルを下げた! / 2024-03-25
tamago3keran
0
260
ドメイン駆動設計 勉強会 〜 ドメインサービス編 〜 / 2024-03-05
tamago3keran
0
33
ドメイン駆動設計 勉強会 〜 エンティティ編 〜 / 2024-02-20
tamago3keran
0
43
ドメイン駆動設計 勉強会 〜 値オブジェクト編 〜 / 2024-02-06
tamago3keran
1
590
スカウト返信率を倍にするためにやったこと / 2024-01-29
tamago3keran
2
770
Rails 経験者が FastAPI 本を読んで感じたこと / 2023-11-28
tamago3keran
0
580
アウトプットのモチベーションはみんな違ってみんな良い! / 2023-10-06
tamago3keran
0
870
PC が変わっても使い慣れた Neovim で すぐに開発を始める仕組み / 2023-07-25
tamago3keran
1
910
Other Decks in Programming
See All in Programming
Java 22 Overview
kishida
1
190
#phpcon_odawara オープン・クローズドなテストフィクスチャを求めて / open closed test fixtures
77web
3
240
Hanami and htmx
bkuhlmann
0
220
"config" ってなんだ? / What is "config"?
okashoi
0
320
Goのエラースタックトレースの歴史と今後
sonatard
10
1.8k
Snowflakeで眠ったデータを起こそう!
estie
0
140
Going beyond Apache Parquet's default settings
xhochy
0
130
Polars入門
daikikatsuragawa
1
170
Apache Hive 4 on Treasure Data
ryukobayashi
1
420
GitLab CI/CD で C#/WPFアプリケーションのテストとインストーラーのビルド・デプロイを自動化する
hacarus
0
280
Git Rebase
bkuhlmann
11
1.6k
スクラムガイドのスプリントレトロスペクティブを改めて読みかえしてみた / Re-reading the Sprint Retrospective Section in the Scrum Guide
mackey0225
3
480
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
7
3.4k
The Invisible Customer
myddelton
114
12k
The Mythical Team-Month
searls
216
42k
[RailsConf 2023] Rails as a piece of cake
palkan
27
4k
Fireside Chat
paigeccino
22
2.6k
Into the Great Unknown - MozCon
thekraken
14
1k
The Cult of Friendly URLs
andyhume
74
5.7k
Web development in the modern age
philhawksworth
203
10k
Design by the Numbers
sachag
274
18k
From Idea to $5000 a Month in 5 Months
shpigford
378
45k
What's new in Ruby 2.0
geeforr
337
31k
Designing for humans not robots
tammielis
247
25k
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 εφοΫϛʔ࠾༻