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
44
DIPのことを知っておこう
YasuhiroKimesawa
August 29, 2020
Tweet
Share
More Decks by YasuhiroKimesawa
See All by YasuhiroKimesawa
XP祭り2024 『アジャイルとは何か?なぜアジャイルなのか?』1年間のアジャイルコーチとの1on1を通してやっとわかったアジャイル
yasuhirokimesawa
0
550
VUCAの時代にプロダクト開発のためにできること
yasuhirokimesawa
1
490
ユニットテストとカバレッジの 本質をチーム内で共有する / Unit testing and coverage Share the essence within the team
yasuhirokimesawa
0
120
タスク管理術
yasuhirokimesawa
0
28
ドメイン駆動設計の実際(2020/4/20 DDD Online MeetUp)
yasuhirokimesawa
3
390
良いコードに正解はあるか
yasuhirokimesawa
0
480
数学とバッファ
yasuhirokimesawa
0
360
Other Decks in Programming
See All in Programming
20250628_非エンジニアがバイブコーディングしてみた
ponponmikankan
0
200
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
1
160
Claude Codeの使い方
ttnyt8701
1
130
ktr0731/go-mcpでMCPサーバー作ってみた
takak2166
0
170
git worktree × Claude Code × MCP ~生成AI時代の並列開発フロー~
hisuzuya
0
270
統一感のある Go コードを生成 AI の力で手にいれる
otakakot
1
3k
F#で自在につくる静的ブログサイト - 関数型まつり2025
pizzacat83
0
310
GraphRAGの仕組みまるわかり
tosuri13
7
470
AIエージェントはこう育てる - GitHub Copilot Agentとチームの共進化サイクル
koboriakira
0
230
技術同人誌をMCP Serverにしてみた
74th
0
150
イベントストーミングから始めるドメイン駆動設計
jgeem
4
870
FormFlow - Build Stunning Multistep Forms
yceruto
1
190
Featured
See All Featured
Balancing Empowerment & Direction
lara
1
350
The Cult of Friendly URLs
andyhume
79
6.4k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
The Invisible Side of Design
smashingmag
299
51k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Speed Design
sergeychernyshev
31
1k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Typedesign – Prime Four
hannesfritz
42
2.7k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.5k
Stop Working from a Prison Cell
hatefulcrawdad
270
20k
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 %#ૢ࡞ৄࡉ