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
DIPのことを知っておこう
Search
YasuhiroKimesawa
August 29, 2020
Programming
0
19
DIPのことを知っておこう
YasuhiroKimesawa
August 29, 2020
Tweet
Share
More Decks by YasuhiroKimesawa
See All by YasuhiroKimesawa
VUCAの時代にプロダクト開発のためにできること
yasuhirokimesawa
1
380
ユニットテストとカバレッジの 本質をチーム内で共有する / Unit testing and coverage Share the essence within the team
yasuhirokimesawa
0
96
タスク管理術
yasuhirokimesawa
0
22
ドメイン駆動設計の実際(2020/4/20 DDD Online MeetUp)
yasuhirokimesawa
3
380
良いコードに正解はあるか
yasuhirokimesawa
0
390
数学とバッファ
yasuhirokimesawa
0
280
Other Decks in Programming
See All in Programming
Terraformテスト入門
msato
0
540
SDCon2024: Enabling DevOps and Team Topologies thru architecture: architecting for fast flow
cer
PRO
0
780
Product Management LT会_クアンド新家
shinshin
0
260
CSC307 Lecture 08
javiergs
PRO
0
330
Async Await: Mastering Python's Time-Bending Tricks - EuroPython2024
yanbo
1
290
Advanced App Shrinking Techniques
cbeyls
2
150
【Go言語】golangci-lintの使い方
tomo1227
0
280
DDDを志して3年経ったら「DDDの皮を被ったクリーンアーキテクチャ」になった話【デブサミ2024夏】
texmeijin
1
620
小さな開発会社を作った理由
polidog
0
1.9k
AWSでゲームサーバーを運用! Amazon GameLiftのお話
iriikeita
0
200
Introduction of Happy Eyeballs Version 2 (RFC8305) to the Socket library
coe401_
1
220
コード生成を伴うLLMエージェント - 2024.07.18 Tokyo AI
smiyawaki0820
11
4.1k
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
346
19k
Atom: Resistance is Futile
akmur
261
25k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
248
20k
Leading Effective Engineering Teams 2024
addyosmani
3
300
Facilitating Awesome Meetings
lara
46
5.8k
What's new in Ruby 2.0
geeforr
338
31k
GitHub's CSS Performance
jonrohan
1026
450k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
16
1.6k
Fontdeck: Realign not Redesign
paulrobertlloyd
79
5.1k
Designing with Data
zakiwarfel
96
5k
Imperfection Machines: The Place of Print at Facebook
scottboms
262
13k
Building a Modern Day E-commerce SEO Strategy
aleyda
25
6.7k
Transcript
%*1ͷ͜ͱΛ ͓ͬͯ͜͏ %FQFOEFODZ *OWFSTJPO 1SJODJQBM ґଘੑٯసͷ ๏ଇ
ࣗݾհɿ w גࣜձࣾ;0;0ςΫϊϩδʔζॴଐɹ ฐࣾαʔϏε'VMpMMNFOUCZ;0;0ઃܭओͷҰਓ w Ӭԕͷ̏̕ࡀ w ීஈόοΫΤϯυଆͷ։ൃ w ೝఆεΫϥϜϚελʔ
2JJUB!:BTVIJSP,JNFTBXB 5XJUUFSQJMHSJN@SFET #MPHIUUQTQJMHSJNMJGFTUZMFKQ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE IUUQTXXXZPVUVCFDPNXBUDI W":PJ6",H. ·ͣͪ͜ΒΛޚཡ͍ͩ͘͞
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ஊ͓͖ͯ͞ %*1Λཧղ͢ΔͨΊʹ͓͖͍ͬͯͨ͜ͱ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ҰൠతͳΞϓϦέʔγϣϯͷׂͱ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ܭࢉͱه
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ͨͱ͑ w ใΛ%#ʹอଘʢهʣ w Λݕࡧ͢Δʢه ͨ͠ͷΛऔΓग़͢ ʣ w ΛΧʔτʹೖΕΔʢߪೖՄೳ͔νΣοΫ͢Δʣ
ʢܭࢉʣ w ૹྉɾফඅ੫ͳͲΛߟྀ͠ߪೖֹۚΛܭࢉʢܭࢉʣ w ߪೖใΛ%#ʹอଘʢهʣ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ͜ͷΞϓϦέʔγϣϯΛͲ͏࡞Δ͔ʁ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ͜ͷॲཧͷྲྀΕʢϢʔεέʔεʣΛશͯಉ͡ϝιου ʹॻ͘ʹτϥϯβΫγϣϯεΫϦϓτ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ͜ͷॲཧͷྲྀΕʢϢʔεέʔεʣΛશͯಉ͡ϝιου ʹॻ͘ʹτϥϯβΫγϣϯεΫϦϓτ ґଘ̍̌̌ˋ ̍ͭͷमਖ਼͕ൃੜ͢Δͱશମͷݟ͕͠ඞཁ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ͜ͷॲཧͷྲྀΕʢϢʔεέʔεʣΛશͯϝιουʹ ׂʹʢมΘΒͣʣτϥϯβΫγϣϯεΫϦϓτ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ͜ͷॲཧͷྲྀΕʢϢʔεέʔεʣΛશͯϝιουʹ ׂʹʢมΘΒͣʣτϥϯβΫγϣϯεΫϦϓτ ґଘ̍̌̌ˋ ̍ͭͷमਖ਼͕ൃੜ͢Δͱશମͷݟ͕͠ඞཁ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ׂ͝ͱʹΫϥεٴͼύοέʔδ ʹΘ͚Δ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ͨͱ͑ w ใΛ%#ʹอଘʢهʣ w Λݕࡧ͢Δʢه ͨ͠ͷΛऔΓग़͢ ʣ w ΛΧʔτʹೖΕΔʢߪೖՄೳ͔νΣοΫ͢Δʣ
ʢܭࢉʣ w ૹྉɾফඅ੫ͳͲΛߟྀ͠ߪೖֹۚΛܭࢉʢܭࢉʣ w ߪೖใΛ%#ʹอଘʢهʣ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ׂΛྨͯ͠Έ͍ͯͩ͘͞
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE .P ߪೖใ ফඅ੫ ૹྉ .PEFM ใɾܭࢉ Λ%#ʹ อଘ͢Δ
Λݕࡧ͢ Δ ߪೖใΛ%# ʹอଘ͢Δ *OGSBTUSVDUVSF ه ˞ใଐੑɺܭࢉϝιου
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE .P ߪೖใ ফඅ੫ ૹྉ .PEFM ใɾܭࢉ Λ%#ʹ อଘ͢Δ
Λݕࡧ͢ Δ ߪೖใΛ%# ʹอଘ͢Δ *OGSBTUSVDUVSF ه ϢʔεέʔεΛ࣮ߦ͢Δ "QQMJDBUJPO Ϣʔεέʔε
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE .P ߪೖใ ফඅ੫ ૹྉ .PEFM ใɾܭࢉ Λ%#ʹ อଘ͢Δ
Λݕࡧ͢ Δ ߪೖใΛ%# ʹอଘ͢Δ *OGSBTUSVDUVSF ه ϢʔεέʔεΛ࣮ߦ͢Δ "QQMJDBUJPO Ϣʔεέʔε $POUSPMMFS 6* BQQMJDBUJPOͷೖΓޱ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE .PEFM ཁʂ w Ͳͷʹґଘ͍ͯ͠ͳ͍.PEFMҎ֎Ͱมߋ͕͋ͬͯؾʹ͠ͳ͘ ͍͍ͯ w ܭࢉʢʹϏδωεʣ͕Ұ൪ෳࡶͩ͠มߋ͕͋Δ w .PEFMͷґଘ͍͍ؔ͋ͬͯʹߏԽ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ਖ਼Ϟσϧ͕ಠཱͯ͠Ε ͦͦ͜͜ݎ࿚ͳΞϓϦέʔγϣϯ ࡞ΕΔ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ͱ͍͑ɺ ଞͷͩͬͯͦͦ͜͜ෳࡶ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ಛʹؒͷґଘؔʹ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ͨͱ͑ ϢʔεέʔεΛ࣮ߦ͢Δ "QQMJDBUJPO Ϣʔεέʔε Λ%#ʹ อଘ͢Δ Λݕࡧ͢ Δ ߪೖใΛ%#
ʹอଘ͢Δ *OGSBTUSVDUVSF ه .P ߪೖใ ফඅ੫ ૹྉ .PEFM ใɾܭࢉ "QQMJDBUJPO ৭ʑͳʹґଘ͍ͯ͠Δ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE Ϟσϧͱ͔͘ɺ *OGSBTUSVDUVSFͱ ͦͦԿͷؔ࿈ͳ͍ͷʹ ґଘ͍ͯ͠Δ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE *OGSBTUSVDUVSFʹ มߋ͕͋Ε "QQMJDBUJPO Өڹ͢ΔՄೳੑ͕͋Δɻ ґଘ͍ͯ͠Δ͔Βɻ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ͦ͜Ͱ%*1 %FQFOEFODZ *OWFSTJPO 1SJODJQBM ґଘੑٯసͷ ๏ଇ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE %FQFOEFODZ*OWFSTJPO1SJODJQBM ্ҐϞδϡʔϧԼҐϞδϡʔϧʹɺ ґଘͯ͠ͳΒͳ͍ɻ ্ҐϞδϡʔϧԼҐϞδϡʔϧɺ நʹґଘ͢Δ͖ɻ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ্ҐϞδϡʔϧԼҐϞδϡʔϧʹґଘͯ͠ͳΒͳ͍ ϢʔεέʔεΛ࣮ߦ͢Δ Λ%#ʹ อଘ͢Δ Λݕࡧ͢ Δ ߪೖใΛ%# ʹอଘ͢Δ *OGSBTUSVDUVSF
ه "QQMJDBUJPO Ϣʔεέʔε ্Ґ ԼҐ 9͜Ε͕ͩΊΑ9
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ্ҐϞδϡʔϧԼҐϞδϡʔϧʹґଘͯ͠ͳΒͳ͍ ϢʔεέʔεΛ࣮ߦ͢Δ Λ%#ʹ อଘ͢Δ Λݕࡧ͢ Δ ߪೖใΛ%# ʹอଘ͢Δ *OGSBTUSVDUVSF
ه "QQMJDBUJPO Ϣʔεέʔε ্Ґ ԼҐ 9͜Ε͕ͩΊΑ9 Ͳ͏ͬͯʁ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ্ҐϞδϡʔϧԼҐϞδϡʔϧநʹґଘ͖͢ ϢʔεέʔεΛ࣮ߦ͢Δ Λ%#ʹ อଘ͢Δ Λݕࡧ͢ Δ ߪೖใΛ%# ʹอଘ͢Δ *OGSBTUSVDUVSF
ه "QQMJDBUJPO Ϣʔεέʔε ্Ґ ԼҐ 9 ݕࡧ *OUFSGBDF
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ্ҐϞδϡʔϧԼҐϞδϡʔϧநʹґଘ͖͢ ϢʔεέʔεΛ࣮ߦ͢Δ Λ%#ʹ อଘ͢Δ Λݕࡧ͢ Δ ߪೖใΛ%# ʹอଘ͢Δ *OGSBTUSVDUVSF
ه "QQMJDBUJPO Ϣʔεέʔε ্Ґ ԼҐ 9 ݕࡧ *OUFSGBDF *OUFSGBDF நʣͷΈʹ ґଘ͍ͯ͠Δ͔ΒɺҾ ʹมߋ͕ͳ͍ݶΓ࣮ͷ ৄࡉʹมߋ্͕͋ͬͯ ҐϞδϡʔϧʹӨڹ͕ ͳ͍͜ͱΛ֬Ͱ͖Δɻ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ɿ*OUFSGBDFͲ͜ͷʹ͓͔͘ʁ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE *OUFSGBDFͲͷʹ͓͔͘ʁ ϢʔεέʔεΛ࣮ߦ͢Δ %#ૢ࡞ৄ ࡉ ߪೖใ%#ૢ ࡞ৄࡉ *OGSBTUSVDUVSF ه "QQMJDBUJPO
Ϣʔεέʔε ্Ґ ԼҐ 9 ه 3FQPTJUPSZ .PEFM ใɾܭࢉ Ϟδϡʔϧ Ͳ͏͍͏ϥΠϑαΠΫϧ ΛͨͲΔͷ͔ ੜɾӬଓԽɾ আɾมߋʣΛϞσϧͰදݱ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE .P ߪೖใ ফඅ੫ ૹྉ .PEFM ใɾܭࢉ Λ%#ʹ อଘ͢Δ
Λݕࡧ͢ Δ ߪೖใΛ%# ʹอଘ͢Δ *OGSBTUSVDUVSF ه ϢʔεέʔεΛ࣮ߦ͢Δ "QQMJDBUJPO Ϣʔεέʔε %*1ʹΑͬͯ͜Ε͕
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE .P ߪೖใ ফඅ੫ ૹྉ .PEFM ใɾܭࢉ *OGSBTUSVDUVSF ه
ϢʔεέʔεΛ࣮ߦ͢Δ "QQMJDBUJPO Ϣʔεέʔε ͜͏ͳΔ γϯϓϧͰཧత ͳߏ %#ૢ࡞ৄ ࡉ ߪೖใ%#ૢ ࡞ৄࡉ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ͏ͻͱͭ 0OF.PSF 5IJOH
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE "QQMJDBUJPOʹ*OGSBTUSBDUVSFͷ࣮୭͕Ͳ͏ͬ ͯ͢ͷʁ ϢʔεέʔεΛ࣮ߦ͢Δ *OGSBTUSVDUVSF ه "QQMJDBUJPO Ϣʔεέʔε ্Ґ ԼҐ
9 ݕࡧ *OUFSGBDF %#ૢ࡞ৄ ࡉ ߪೖใ%#ૢ ࡞ৄࡉ ݱ࣮తʹ "QQMJDBUJPOͰ ݕࡧΛ࣮ࡍʹ ͠ͳ͍ͱ͍͚ͳ͍
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE "QQMJDBUJPOʹ*OGSBTUSBDUVSFͷ࣮୭͕Ͳ͏ͬ ͯ͢ͷʁ Ҋ̍ɹ"QQMJDBUJPOͰ/FX͢Δ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE Ҋ̍ɹ"QQMJDBUJPOͰ/FX͢Δ ϢʔεέʔεΛ࣮ߦ͢Δ *OGSBTUSVDUVSF ه "QQMJDBUJPO Ϣʔεέʔε ্Ґ ԼҐ ݕࡧ
*OUFSGBDF ·ͨґଘͪ͠Ό͏ ͷͰ/( %#ૢ࡞ৄ ࡉ ߪೖใ%#ૢ ࡞ৄࡉ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE "QQMJDBUJPOʹ*OGSBTUSBDUVSFͷ࣮୭͕Ͳ͏ͬ ͯ͢ͷʁ Ҋ̎ɹ6*Ͱ/FXͯ͠"QQMJDBUJPOੜ ࣌ʹίϯετϥΫλͷҾͱͯ͢͠
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE Ҋ̎ɹ6*Ͱ/FXͯ͠"QQMJDBUJPOੜ࣌ʹίϯε τϥΫλͷҾͱͯ͢͠ ϢʔεέʔεΛ࣮ߦ͢Δ *OGSBTUSVDUVSF ه "QQMJDBUJPO Ϣʔεέʔε ݕࡧ *OUFSGBDF
$POUSPMMFS ࠓ$POUSPMMFS͕ ෳࡶʹͳͬͯ͠·͏ %#ૢ࡞ৄ ࡉ ߪೖใ%#ૢ ࡞ৄࡉ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE "QQMJDBUJPOʹ*OGSBTUSBDUVSFͷ࣮୭͕Ͳ͏ͬ ͯ͢ͷʁ %* %FQFOEFODZ*OKFDUJPO ͷग़൪ ґଘੑͷೖ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE "QQMJDBUJPOʹ*OGSBTUSBDUVSFͷ࣮୭͕Ͳ͏ͬ ͯ͢ͷʁ લఏɿ *OGSBTUSVDUVSFͷΫϥε ʢ$POUSPMMFS"QQMJDBUJPO͚ͩͲʣ ͳΜͯɺΞϓϦىಈ͔Βऴྃ·Ͱ̍ͭͷ Πϯελϯε͕͋Ε͍͍ɻ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE "QQMJDBUJPOʹ*OGSBTUSBDUVSFͷ࣮୭͕Ͳ͏ͬ ͯ͢ͷʁ Ҋ̏ɹΞϓϦέʔγϣϯͷىಈ࣌ʹΠϯ ελϯεΛ࡞ͬͯ͏ͱ͖ʹɺͦͷΠϯ ελϯεΛ͏Α͏ʹ͢Ε͍͍
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE Ҋ̏ɹΞϓϦέʔγϣϯͷىಈ࣌ʹΠϯελϯεΛ࡞ͬͯ ͏ͱ͖ʹɺͦͷΠϯελϯεΛ͏Α͏ʹ͢Ε͍͍ ϢʔεέʔεΛ࣮ߦ͢Δ *OGSBTUSVDUVSF ه "QQMJDBUJPO Ϣʔεέʔε $POUSPMMFS %#ૢ࡞ৄࡉ
ىಈϝιου %*ίϯςφʣ ੜ͢Δ ϢʔεέʔεΛ࣮ߦ͢Δʣ ੜ͢Δ ੜ͢Δ %#ૢ࡞ৄࡉ $POUSPMMFS࡞ಈ࣌ʹىಈ ࣌ʹ༧Ί࡞͓͍ͬͯͨΠϯ ελϯεΛ࣮ͬͯߦ͢ Δɻ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ࠷ऴతʹ͜͏ͳΔ ϢʔεέʔεΛ࣮ߦ͢Δ *OGSBTUSVDUVSF ه "QQMJDBUJPO Ϣʔεέʔε ݕࡧ *OUFSGBDF $POUSPMMFS
%#ૢ࡞ৄ ࡉ ߪೖใ%#ૢ ࡞ৄࡉ ͠ΜΔʂ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE %*1%*ΛͬͯมԽʹڧ͍ΞϓϦέʔ γϣϯΛ࡞Ζ͏ʂ
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ͓·͚
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE %*1%*Λ͏ͱςετ͍͢͠
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ຊ൪ ϢʔεέʔεΛ࣮ߦ͢Δ *OGSBTUSVDUVSF ه "QQMJDBUJPO Ϣʔεέʔε %#ૢ࡞ৄࡉ ىಈϝιου %*ίϯςφʣ
ੜ͢Δ ੜ͢Δ %#ૢ࡞ৄࡉ ݕࡧ *OUFSGBDF
$PQZSJHIU:BTVIJSP,JNFTBXB"MM3JHIUT3FTFSWFE ςετ ϢʔεέʔεΛ࣮ߦ͢Δ *OGSBTUSVDUVSF ه "QQMJDBUJPO Ϣʔεέʔε %#ૢ࡞ৄࡉ .PDL ςετ
ੜ͢Δ ੜ͢Δ %#ૢ࡞ৄࡉ.PDL ˣ ςετ ݕࡧ *OUFSGBDF %#ૢ࡞ৄࡉ