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
テスト駆動開発 輪読会 Vol.4
Search
K
August 05, 2020
Programming
0
140
テスト駆動開発 輪読会 Vol.4
This is a deck for Test-Driven Development reading session
K
August 05, 2020
Tweet
Share
More Decks by K
See All by K
Clean-Architecture-Session-12
kentaro555
0
200
Clean-Architecture-Session
kentaro555
0
140
My thought about what to create as a indie hacker
kentaro555
2
620
Other Decks in Programming
See All in Programming
Processing Gem ベースの、2D レトロゲームエンジンの開発
tokujiros
2
100
Kiroで始めるAI-DLC
kaonash
2
260
AHC051解法紹介
eijirou
0
640
CSC305 Summer Lecture 12
javiergs
PRO
0
130
go test -json そして testing.T.Attr / Kyoto.go #63
utgwkk
1
160
マイコンでもRustのtestがしたい その2/KernelVM Tokyo 18
tnishinaga
2
2.4k
AWS発のAIエディタKiroを使ってみた
iriikeita
1
110
LLMOpsのパフォーマンスを支える技術と現場で実践した改善
po3rin
8
990
DockerからECSへ 〜 AWSの海に出る前に知っておきたいこと 〜
ota1022
5
1.8k
開発チーム・開発組織の設計改善スキルの向上
masuda220
PRO
17
9.3k
私の後悔をAWS DMSで解決した話
hiramax
4
170
為你自己學 Python - 冷知識篇
eddie
1
300
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
830
Music & Morning Musume
bryan
46
6.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
790
Designing for humans not robots
tammielis
253
25k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
GitHub's CSS Performance
jonrohan
1032
460k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
How to Think Like a Performance Engineer
csswizardry
26
1.8k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Transcript
ςετۦಈ։ൃྠಡձ7PM ষʙষ ݄#Zೆ݈ଠ
લճ·Ͱͷ͓͞Β͍ɻ
લճ·Ͱͷ͓͞Β͍ɻ ɾઃܭ্ෳͷ௨՟Λѻ͍ͬͯΔͱ͍͏͜ͱΛ ҙࣝ͠ͳ͍ͰࡁΉΑ͏ʹ͍ͨ͠ɻ ɾ࣮ʹۙͮͨ͘Ίʹɺ࣌ʹ͘͏͔Θ͔Βͳ͍ςετΛ ॻ͘͜ͱඞཁɻ ɾςετͷதʹɺఆ͍ͯ͠Δಈ͖Λͯ͘͠ΕΔ͔Λ֬ೝ͢Δςετ ֶश༻ςετ ࣮ͷࡍʹߟྀ͞Ε͍ͯͳ͔ͬͨςετʢճؼςετʣ ͳͲ͕͋Δɻ
લճ·Ͱͷ͓͞Β͍ɻ ɾςετΛॻ͍͍ͯΔͱςετͷநΛམͱͯ͠ɺ۩ମతͳςετΛॻ͖ ண࣮ʹਐΉ࣌ͱɺίϯύΠϧΤϥʔΛ50%0ϦετΘΓʹ࣮͢Δ͕࣌͋ Δɻ ɾςετΛॻ࣌͘ɺςετΛಡΉଆʹςετΛॻ͍ͨਓͷҙਤ͕ΘΔΑ ͏ʹ͢Δ͕ඞཁɻ ɾ5%%ʮύϑΥʔϚϯεςετʯɺʮෛՙςετʯɺʮϢʔβϏϦςΟς ετʯͷସʹͳΒͳ͍ɻ
ୈষ Y6OJU͔͏খ͞ͳҰา
ୈষͷओͳ༰ ςετέʔεΛॻͨ͘Ίʹ͏ϑϨʔϜϫʔΫΛ࡞Γɻ ࡞ͬͨϑϨʔϜϫʔΫͷςετέʔεΛ࡞Δɻ ୈ̍̔ষͰɺςετ͕࣮ߦ͞Ε͔ͨͲ͏͔ͷϝιουΛ࡞Γɺ ࡞ͬͨϝιουͷςετέʔεΛॻ͘ͱ͍͏ͷɻ
ୈষͰग़͖ͯͨ༻ޠ ɾY6OJU ɾࣗݾݴٴϓϩάϥϛϯά ɾςετϝιου ɾϝιουͷநग़ ɾ1MVHHBCMF4FMFDUPSύλʔϯ
Y6OJUʹ͍ͭͯ ίϯϐϡʔλʔϓϩάϥϜͷ୯ମςετ Λߦ͏ͨΊͷςεςΟϯάϑϨʔϜϫʔΫͷ૯শɻ
ࣗݾݴٴϓϩάϥϛϯάʹ͍ͭͯ ࣗݾݴٴࣗવݴޠܗࣜݴޠͰจ͕ࣜ ͦΕࣗʹݴٴ͢Δ͜ͱ
ςετϝιουʹ͍ͭͯ ςετέʔε͕ఆٛ͞Εͨɺ UFTU͔Β࢝·Δϝιουͷ͜ͱɻ
ϝιουͷநग़ʹ͍ͭͯ ͍ϝιουͷҰ෦Λผͷϝιουʹͯ͠ɺ ͦͷϝιουΛݺͼग़͢Α͏ʹ͢Δํ๏ɻ
1MVHHBCMF4FMFDUPSύλʔϯ Πϯελϯε͝ͱʹҟͳΔৼΔ͍Λͤ͞ΔͨΊʹɺ ϝιου໊Λ֨ೲ͠ɺͦͷϝιουΛಈతʹىಈ͢Δ σβΠϯύλʔϯɻ
ୈষ લ४උ
ୈষͷओͳ༰ ςετΛॻ࣌͘ɺ"ͱݺΕΔجຊύλʔϯ͕͋Δɻ ςετΛ࡞͍ͯ͠Δ࣌ʮύϑΥʔϚϯεʯͱʮಠཱੑʯͷ ͭͷ੍͕ݱΕΔɻ
ୈষͰग़͖ͯͨ༻ޠ ɾ" ɾύϑΥʔϚϯεͱಠཱੑ ɾϑΟΫενϟʔ
"ʹ͍ͭͯ ४උ "SSBOHF ΦϒδΣΫτΛ࡞Δɻ ࣮ߦ "DU ͦͷΦϒδΣΫτʹରͯ͠ૢ࡞Λߦ͏ɻ Ξαʔτ "TTFSU ݁ՌͷݕূΛߦ͏ɻ
ύϑΥʔϚϯεͱಠཱੑʹ͍ͭͯ ύϑΥʔϚϯεςετՄೳͳݶΓૣ͘ಈ࡞ͯ͠΄͍͠ɻ ྫੜͨ͠ΦϒδΣΫτΛ͍·Θ͍ͨ͠ɻ ಠཱੑςετͷޭࣦഊ ଞͷςετͷ݁ՌʹӨڹͨ͠Γ͞ΕͨΓͯ͠΄͘͠ͳ͍ɻ ྫ͍·Θͨ͠ΦϒδΣΫτ͕มߋ͞ΕͨΒɺ ςετ݁Ռʹҧ͍͕ͰΔͳͲɻ
ςετઈରʹґଘؔΛ࡞ͬͯͳΒͳ͍ɻ ςετ͕ࣦͭഊͨ࣌͠ʹ͕ͭͭ͋Δͱɺ मਖ਼͕ࠔʹͳΔͨΊɻ
ϑΟΫενϟʔ ςετΛߦ͏࣌ʹ༻͢ΔΦϒδΣΫτͷݕূΛߦ͏ࡍʹɺ ΦϒδΣΫτͷݕূίʔυΑΓɺςετΛߦ͏ͨΊͷࣄલ ४උͷίʔυͷํ͕͘ͳΓɺॏෳͯ͠͠·͏͜ͱɻ
ϑΟΫενϟʔͷϝϦοτɾσϝϦοτ ϝϦοτɿͯ͢ͷςετ४උίʔυ͕ॻ͔Ε͍ͯΔ߹ɺ ςετΛ্͔ΒಡΊྑ͍ঢ়ଶʹͳΔɻ σϝϦοτɿॻ͘ͷʹ͕͔͔࣌ؒΓɺมߋ͕͋ͬͨ߹ෳ ͷՕॴΛมߋ͢Δඞཁ͕͋Δɻ
ϑΟΫενϟʔΛղܾ͢ΔͨΊʹɺڞ௨Խ͗͢͠Δͱɺ ςετΛߦ͍ͬͯΔ࣌ʹଞʹͲΜͳॲཧ͕ಈ͍͍ͯΔ͔ Ѳ͢Δඞཁ͕͋ΔͨΊɺྑ͍ԘകΛݟ͚ͭΔඞཁ͕͋Δɻ
ୈষ ޙย͚
ୈষͷओͳ༰ ςετϝιουͰɺUFBS%PXOϝιουͱݺΕΔͷ͕͋Δɻ TFU6QͰςετʹඞཁͳ֎෦ϦιʔεΛ४උ͠ɺUFBS%PXOͰ༻ҙ͠ ͨ֎෦ιʔεΛ։์͢Δɻ
ୈষͰग़͖ͯͨ༻ޠ ɾUFBS%PXOϝιου ɾ-PH4USJOHύλʔϯ ɾ໌നͳ࣮
UFBS%PXOϝιουʹ͍ͭͯ TFU6QϝιουͰׂΓͯΒΕͨ֎෦Ϧιʔε ϑΝΠϧ ιέοτͳͲ ߹ͷΈɺͦΕΒΛ։์͢ΔΛͭϝ ιουɻ
-PH4USJOHύλʔϯʹ͍ͭͯ ਖ਼͍͠ॱ൪Ͱϝιου͕ݺΕ͍ͯΔ͜ͱΛ ςετ͍ͨ͠߹ʹ༻͢Δɻ
໌നͳ࣮ʹ͍ͭͯ ͲΜͳ࣮Λ͢Δ͖͔طʹѲ͍ͯͯ͠ɺࡉ͔͍εςοϓ Ծ࣮ͳͲ Λ౿·ͣʹ࣮͢Δ͜ͱɻ
ୈষ ্͑͛ɻ
ୈষͷओͳ༰ ςετΛಈ͔ͨ࣌͠ʹɺʮSVO GBJMFEΤϥʔ༰dʯͱ͍͏Α͏ ʹදࣔ͞ΕΔͨΊʹɺ·͍ͣͭ͘ςετ͕͔ͬͨΛࣔ͢ϩάΛग़ ྗ͢ΔॲཧΛ࡞ɻ
ୈষ ࣦഊͷѻ͍ɻ
ୈষͷओͳ༰ ୈষͰߦͬͨॲཧͷଓ͖ɻ ষͰΤϥʔͷྫ֎ΛΩϟον͢ΔΈͳ͔͕ͬͨɺςετͷ தͰࣦഊϝιουͷݺͼग़͠ɺྫ֎ͷॱʹςετΛࡉ͔͘ߦ͍ςετ ʹࣦഊͨ͠߹ʮSVO GBJMFEʯͱ͍ͬͨܗͰදࣔ͞ΕΔΑ͏ʹ ࣮ɻ
ୈষ εΠʔτʹ·ͱΊΔɻ
ୈষͷओͳ༰ ࠓ·Ͱߦ͖ͬͯͨςετΛΒͤΔͨΊʹॻ͍ͨॲཧΛ 5FTU4VJUFʹ·ͱΊΔͱ͍͏ͷɻ
#FGPSF ষऴྃ࣌ͷίʔυɻ
"GUFS ষऴྃ࣌ͷίʔυɻ
ୈষͰग़͖ͯͨ༻ޠ ɾ5FTU4VJUF ɾ$PNQPTJUFύλʔϯ ɾ$PMMFDUJOH1BSBNFUFSύλʔϯ
5FTU4VJUFʹ͍ͭͯ ͋ΔϓϩάϥϜ͕ͭɺಛఆͷৼΔ͍Λ·ͱΊͨ ςετέʔεͷմͷ͜ͱɻ
$PNQPTJUFύλʔϯʹ͍ͭͯ ೖΕͱதͷͷΛಉҰͷͷͱଊ͑ͯɺ࠶ؼతͳߏ ͰॲཧΛ؆୯ʹ͢Δ͜ͱ͕Ͱ͖ΔσβΠϯύλʔϯɻ
࣮ࡍͷྫͱͯ͠ࢀߟʹͳΓͦ͏ͳͷɻ IUUQTXXXSJUPMBCDPNFOUSZ
֓ཁ $PNQPTJUFύλʔϯΛ༻͍ͯɺσΟϨΫτϦͷ߹ σΟϨΫτϦͱͦΕʹ࿈ͳΔϑΝΠϧදࣔɻ ϑΝΠϧͷΈͷ߹ɺϑΝΠϧͷΈͷදࣔΛग़͚͠ ͍ͯΔॲཧ͕ྫͱͯ͠ॻ͍ͯ͋Δɻ
$PMMFDUJOH1BSBNFUFSύλʔϯʹ͍ͭͯ ϝιουͷΓΛϕʔεʹσʔλΛ࡞͢ΔͷͰͳ ͘ɺҾʹͨ͠ΦϒδΣΫτʹσʔλΛੵ͍ͯ͘͠ σβΠϯύλʔϯɻ
#FGPSF $PMMFDUJOH1BSBNFUFSύλʔϯલͷίʔυɻ
"GUFS $PMMFDUJOH1BSBNFUFSύλʔϯޙͷίʔυɻ
ୈষ Y6OJUͷશମ;Γ͔͑Γ
ୈষͷओͳ༰ Y6OJUΛ࣮͢Δͭͷҙ͕ٛ͋Δɻ ̍ͭɺࣗࣗͰ࣮͢Δ͜ͱʹΑͬͯɺ͕ࣗҰ൪Α͍ͬͯ͘͠ Δಓ۩͕खʹೖΔͱ͍͏͜ͱɻ ख़ୡ ͏̍ͭɺY6OJUͷ࣮Λ௨ͯ͡৽͍͠ϓϩάϥϛϯάݴޠͰඞཁ ͳػೳΛཏ͢Δ͜ͱ͕Ͱ͖Δɻ
·ͱΊٴͼײ Y6OJUͬͯཪͰ͜͏͍͏෩ʹͳ͍ͬͯΔͷ͔ͱ͍ͬͨยྡྷΛΔ͜ͱ ͕Ͱ͖ͨɻ ·ͨɺ్தͷνϟϓλʔͰ͕͋ͬͨɺΑΓྑ͍ςετΛॻͨ͘Ίʹ ɺͱʹ͔͘ςετΛॻ͍ͯܦݧΛੵ͍ͯ͘͠ඞཁ͕͋Δͱ͍͏ ͜ͱΛ࣮ײͨ͠ɻ