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
新人さんでもテストを書くべきだっていう話
Search
NIIKURA Ryota
October 31, 2018
Programming
1
800
新人さんでもテストを書くべきだっていう話
自分の経験談として、新人さんがテストを書くと割といいですよっていう話をしました。
初心者ほどテスト駆動開発の効果っていうのが高いなーって感じました
NIIKURA Ryota
October 31, 2018
Tweet
Share
More Decks by NIIKURA Ryota
See All by NIIKURA Ryota
SwooleでLaravelを高速化してみる
niisantokyo
0
4.4k
一次元畳み込みフィルターによる音声データのオートエンコーダ
niisantokyo
1
3k
タグ付けデプロイの話
niisantokyo
1
960
TensorFlow.jsに保存機能が実装された件
niisantokyo
1
270
PHP-FPMのコンテナログ2重出力問題
niisantokyo
0
210
Laradockの紹介
niisantokyo
0
960
deeplearnjsの紹介
niisantokyo
1
210
ひたすら楽して、PHPアプリをコンテナ運用の縮小版
niisantokyo
0
770
PHPでニューラルネットを作った話
niisantokyo
2
3.8k
Other Decks in Programming
See All in Programming
Rust.Nagoya #1
codemountains
0
170
コード生成を伴うLLMエージェント - 2024.07.18 Tokyo AI
smiyawaki0820
11
4.1k
初心者がおさえておきたいAWS CDKのベストプラクティス 2024
konokenj
15
7.3k
Product Management LT会_クアンド新家
shinshin
0
210
Microservices rules (July 2024) : what good looks like
cer
PRO
0
1.6k
わかりやすい正解を捨てて、コトに向き合う - スクラムフェス金沢2024 スポンサーセッション
yusukekokubo
0
170
feature環境をGitHub ActionsとCloudFormationでいい感じに管理する
nealle
2
310
유연한 Composable 설계
l2hyunwoo
0
380
Polarsの成長: v0.14からv1.0までの変遷と今後の展望
zerebom
1
350
Architectures with Lightweight Stores: New Rules and Options
manfredsteyer
PRO
0
100
Folding Cheat Sheet #7
philipschwarz
PRO
0
150
I/O Extended Android in Korea 2024 ~ Whats new in Android development tools
pluu
0
250
Featured
See All Featured
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
105
6.8k
Music & Morning Musume
bryan
43
5.9k
It's Worth the Effort
3n
181
27k
Creatively Recalculating Your Daily Design Routine
revolveconf
214
11k
Debugging Ruby Performance
tmm1
71
11k
Infographics Made Easy
chrislema
238
18k
10 Git Anti Patterns You Should be Aware of
lemiorhan
652
58k
Gamification - CAS2011
davidbonilla
78
4.9k
Scaling GitHub
holman
458
140k
StorybookのUI Testing Handbookを読んだ
zakiyama
15
4.9k
No one is an island. Learnings from fostering a developers community.
thoeni
17
2.8k
Building Better People: How to give real-time feedback that sticks.
wjessup
357
18k
Transcript
৽ਓ͞Μʹڭ͑Δͱ͖ɺ ͪΌΜͱςετॻ͍ͯΒ ͓͏ͱ͍͏ ୈճ1)1ษڧձ!(.0:PVST גࣜձࣾχδϘοΫε৽ྋଠ 1
ϫλγ 2 /BNF৽ྋଠ (JUIVCOJJTBOUPLZP 5XJUUFS!OJJTBOUPLZP 0UIFS*OGPSNBUJPO wχδϘοΫε wΤϯδχΞྺ1)1ྺ͘Β͍ ߨԋཤྺ w1)1ΧϯϑΝϨϯεؔ
w1)1ΧϯϑΝϨϯεؔ w1)1ΧϯϑΝϨϯε
എܠ w ݚम్தͰΓ্͛ͨɺۀະܦݧͷ৽ਓ͞Μ͕ࣗ ͷϓϩδΣΫτʹΤϯδχΞͱͯ͠+PJO͖ͯͨ͠ w ϓϩδΣΫτ-BSBWFMͰ࡞Δ༧ఆͰɺݚमͰ͍ͬͯ ͨΒ͍͚͠Ͳɺόʔδϣϯ͕ҧ͏ ݚम ϓϩδΣΫ τ
w ͡Ίͷ͏ͪɺϓϩάϥϜͷ࣮ࢪॱʹΜͰ͍ΔϨϕ ϧͰ͋ͬͨ 3
4
4 ཁ͢Δʹ
4 ཁ͢Δʹ 0+5
4 ཁ͢Δʹ 0+5 ͱ͍͏໊ͷ
4 ཁ͢Δʹ 0+5 ͱ͍͏໊ͷ ࣮ઓೖ
4 ཁ͢Δʹ 0+5 ͱ͍͏໊ͷ ࣮ઓೖ ͞Εͨ৽ਓ͞Μʹɺςετ·Ͱॻ͔ͤΔͱ͍͏εύϧλΛͨ͠ͱ͖ʹײͨ͡ ܦݧஊͰ͢
ҙ w ͦͦࣗಈςετ͕ಋೖ͞Ε͍ͯͳ͍γεςϜΛੈʹग़ ͢ͷɺਫ਼ਆӴੜతʹ͖͍ͭͷͰɺ͕ࣗܞΘΔϓϩδΣ ΫτͰɺ୭Ͱ͋ΕςετΛॻ͔ͳ͍ͱ͍͚·ͤΜɻ w ςετΛॻ͔ͳ͍ͱ͍͚ͳ͍ཧ༝ʹ͍ͭͯɺ৭ΜͳॴͰ ٞ͞Ε͍ͯΔͷͰɺল͖·͢ 5
ະܦݧͷ৽ਓ͞Μ๊͕͑ͯ ͍ͨ՝ΛѲͯ͠ΈΔ 6
7 ͦͦ৽ਓͱͲ͏͍͏ঢ়ଶͷਓ͔ ܦݧͱ͕ࣝΓͳ͍ͷͰɺ ͍͍ײ͡ͷίʔυ͕ॻ͚ͳ͍ɺ ࣮͕͘͠ਐ·ͳ͍ঢ়ଶͷਓ
ྫɿϒϩάهࣄ w هࣄͷҰཡΛ࡞Γ͍ͨ w Ұཡͷ֤هࣄʹهࣄΛॻ͍ͨϢʔβʔ໊͕΄͍͠ w Ұཡͷ֤هࣄͷίϝϯτҰॹʹද͍ࣔͨ͠ w ͦͷίϝϯτʹίϝϯτΛॻ͍ͨϢʔβʔ໊͕΄͍͠ 8
ྫ͑͜Μͳॻ͖ํ 9
͜ΕΛॻ͘ͷʹඞཁͳࣝ w ϝιουνΣʔϯ Βͳ͍ͱ͘͢͝ͼͬ͘Γ͢Δ w 3FMBUJPOͱ͍͏֓೦ ͜Ε͕ͳ͍ͱϚχϡΞϧʹͨͲΓண͚ͳ͍ w
&MPRVFOUʹ͓͚Δ3FMBUJPO ֮͑Δඞཁ͕͋Δ w &BHFSMPBEJOH / Λ͍ͬͯͳ͍ͱͨͲΓண͚ͳ͍͔
͡Ίଟ͜͏ͳΔ 11
৽ਓ͞Μ๊͕͍͑ͯͨ w ࣝͱܦݧ͕ઈରతʹΓͯͳ͍ͷͰɺ͍͍ײ͡ͷίʔυ ͕ॻ͚ͳ͍ w ͔͠͠ͳ͕Βɺۀʹೖͬͯ͠·ͬͨͷͰɺ࣭ͷ୲อΛ ͠ͳ͚ΕͳΒͳ͍ w ԿΛฉ͚͍͍ͷ͔Θ͔Βͳ͍ঢ়ଶʹΉ w
࣭ʹ͍ͭͯϫλγΜͩ 12
ͰͲ͏͢Ε͍͍ͷ͔ w ͙͢ʹ֮͑ΒΕͦ͏ͳͷ͔Βॻ͍ͯΒ͏͜ͱʹ͢Δ w ԿΛॻ͖͍ͨͷ͔Λ໌Β͔ʹͯ͠ɺదٓϖΞϓϩͰҰॹʹ ࣮ͯ͠ɺ࣮֬ʹ࣮ͷܦݧΛੵΜͰ͍ΈΔ w ͕͖ࣝͬͯͨΒɺϦϑΝΫλϦϯάΛ࣭ͯ͠Λվળ ͯ͠Β͏ 13
͜ΕΒΛղܾ͢Δͱ͍͏ ؍ͰςετΛݟͯΈΔ 14
ςετͷׂ w ͙͢ʹ֮͑ΒΕͦ͏ͳͷ͔Βॻ͍ͯΒ͏͜ͱʹ͢Δ w ԿΛॻ͖͍ͨͷ͔Λ໌Β͔ʹͯ͠ɺదٓϖΞϓϩͰҰॹʹ ࣮ͯ͠ɺ࣮֬ʹ࣮ͷܦݧΛੵΜͰ͍ΈΔ w ͕͖ࣝͬͯͨΒɺϦϑΝΫλϦϯάΛ࣭ͯ͠Λվળ ͯ͠Β͏ 15
ςετ͖ͬͱ͙͢ʹ֮͑ΒΕΔ
ςετͰ֮͑Δ͖͜ͱ 16 ͓͓ɾɾɾ͜Ε֮͑Δ༰͕ଟͦ͏͕ͩɾɾɾ
ςετͰ֮͑Δ͖͜ͱ w ςετͷཧతഎܠ ࠓͷॴ͍Βͳ͍ w ςετͷ࣮ߦํ๏ ͬͪ͜Ͱ༻ҙ͓ͯ͘͠WFOEPSCJOQIQVOJU w ςετʹ͑Δ๛ͳΞαʔγϣϯϝιουͳͲ BTTFSU&RVBMTͱ-BSBWFMͷΞαʔγϣϯͷҰ෦Ҏ֎Βͳ
͍͍ͯ͘ w ςετͷॻ͖ํ ͜Ε͚͓͚͍͍ͩͬͯʂ 17
ςετͷجຊܗ 18 -BSBWFMͰ୯७ͳܝࣔ൘Λ࡞Δͱ͖ͷςετྫ
ςετͷجຊܗ 18 -BSBWFMͰ୯७ͳܝࣔ൘Λ࡞Δͱ͖ͷςετྫ ςετͩΑʔͬͯએݴ
ςετͷجຊܗ 18 -BSBWFMͰ୯७ͳܝࣔ൘Λ࡞Δͱ͖ͷςετྫ ςετͩΑʔͬͯએݴ Կͷςετ͔
ςετͷجຊܗ 18 -BSBWFMͰ୯७ͳܝࣔ൘Λ࡞Δͱ͖ͷςετྫ ςετͩΑʔͬͯએݴ Կͷςετ͔ લఏ݅
ςετͷجຊܗ 18 -BSBWFMͰ୯७ͳܝࣔ൘Λ࡞Δͱ͖ͷςετྫ ςετͩΑʔͬͯએݴ Կͷςετ͔ લఏ݅ ը໘ΞΫηε
ςετͷجຊܗ 18 -BSBWFMͰ୯७ͳܝࣔ൘Λ࡞Δͱ͖ͷςετྫ ςετͩΑʔͬͯએݴ Կͷςετ͔ લఏ݅ ը໘ΞΫηε ͔֬Ί͍ͨ༰Λॻ͘
ςετΛॻ͘खॱ લఏ݅Λ࡞͢Δ σʔλϕʔεɺίϯϑΟάʹԾσʔ λΛೖΕΔ ϦΫΤετΛ͛Δ HFU QPTU
FUD Ϩεϙϯεͷ༰͕ظͨ͠ͱ͓Γ͔ɺ%#ʹظͨ͠ ͕ೖ͍ͬͯΔ͔ͳͲΛ֬ೝ͢Δ جຊతʹ͜Εͷ܁Γฦ͠ 19
ςετͰΔ͜ͱ ܾ·͍ͬͯΔ w ࣮ίʔυͰɺಉ͡Α͏ͳίʔυ͕ग़ݱ͢Δ͜ͱΛ͋ ·Γͳ͍ ͋ͬͯϦϑΝΫλϦϯά͞ΕΔ ͷͰύλʔ ϯΛ֮͑Δʹ͋Δఔͷܦݧ͕ඞཁ w ҰํͰɺςετͰΔ͜ͱܾ·͍ͬͯΔͷͰɺԿճಉ
͡Α͏ͳ͜ͱΛॻ͘͜ͱʹͳΓɺ͍֮͑͢ w GBDUPSZϦΫΤετͷγϛϡϨʔτɺΞαʔγϣϯ ΛɺϖΞϓϩͳͲͰҰॹʹॻ͖ͳ͕Βڭ͑Δͱॱ൪Λ֮͑ ͍ͯ͘ͷͰ͍͍Α͏ʹࢥ͏ 20
ςετͷׂ w ͙͢ʹ֮͑ΒΕͦ͏ͳͷ͔Βॻ͍ͯΒ͏͜ͱʹ͢Δ w ԿΛॻ͖͍ͨͷ͔Λ໌Β͔ʹͯ͠ɺదٓϖΞϓϩͰҰॹʹ ࣮ͯ͠ɺ࣮֬ʹ࣮ͷܦݧΛੵΜͰ͍ΈΔ w ͕͖ࣝͬͯͨΒɺϦϑΝΫλϦϯάΛ࣭ͯ͠Λվળ ͯ͠Β͏ 21
ςετ͖ͬͱ͙͢ʹ֮͑ΒΕΔ Կ͕ॻ͖͍ͨͷ͔Λςετʹॻ͍ͯΒ͏
͜Μͳঢ়گ 22 ༷ΛѲ͢Δ ॲཧΛ࣮͢Δ ݁ՌΛ͔֬ΊΔ
͜Μͳঢ়گ 22 ༷ΛѲ͢Δ ॲཧΛ࣮͢Δ ݁ՌΛ͔֬ΊΔ ͕͜͜Θ͔Βͳ͍ͷͰ࣮͕ਐ·ͳ͍
͜Μͳঢ়گ 22 ༷ΛѲ͢Δ ॲཧΛ࣮͢Δ ݁ՌΛ͔֬ΊΔ ͕͜͜Θ͔Βͳ͍ͷͰ࣮͕ਐ·ͳ͍ ࣮͕ਐ·ͳ͍ͷͰ͜͜ʹ౸ୡ͠ͳ͍
͜͏ͯ͋͛͠Δͱ͍͍ 23 ༷ΛѲ͢Δ ॲཧΛ࣮͢Δ ݁ՌΛ͔֬ΊΔ
͜͏ͯ͋͛͠Δͱ͍͍ 23 ༷ΛѲ͢Δ ॲཧΛ࣮͢Δ ݁ՌΛ͔֬ΊΔ ઌʹςετΛॻ͍͓͍͔ͯͯ֬Ί͍ͨ݁ ՌΛৗʹ໌֬ʹ͓ͯ͘͠
͜͏ͯ͋͛͠Δͱ͍͍ 23 ༷ΛѲ͢Δ ॲཧΛ࣮͢Δ ݁ՌΛ͔֬ΊΔ ͙͢ʹͰ͖ͳ͍ͷͰɺςετʹॻ ͍ͨ݁ՌΛ͔֬Ίͳ͕Βɺ ͬ͘͡Γ࣮ΛਐΊΔ ઌʹςετΛॻ͍͓͍͔ͯͯ֬Ί͍ͨ݁ ՌΛৗʹ໌֬ʹ͓ͯ͘͠
ͱΓ͋͑ͣςετॻ͚Δ 24
ͱΓ͋͑ͣςετॻ͚Δ 24 ͱΓ͋͑ͣɺ͜ͷϢʔβʔ͕ग़ͯ ͍ͯɺ͜ͷϢʔβʔ͕ग़͍ͯͳ͍ঢ়گ ͕΄͍͠Ͱ͢
ͱΓ͋͑ͣςετॻ͚Δ 24 ͓͚ͬʔ ΄ΜͳΒ͜Μͳ࣮Ͱߦ͚ͦ͏͡Όͳ͍ʁ ͱΓ͋͑ͣɺ͜ͷϢʔβʔ͕ग़ͯ ͍ͯɺ͜ͷϢʔβʔ͕ग़͍ͯͳ͍ঢ়گ ͕΄͍͠Ͱ͢
͓ʁ͜Εɾɾɾ 25
ςετۦಈ։ൃ w ςετΛઌʹॻ͘͜ͱͰɺ࣮͘͢͢͠Δख๏ w ಛผͳํ๏Ͱͳ͘ɺΉ͠Ζॳ৺ऀͦ͜ɺԸܙͷଟ͍։ൃ ख๏Ͱ͋Δͱߟ͍͑ͯΔ w ͋ΔఔܦݧΛੵΜͰ͍Δͱɺςετॻ͔ͳͯ͘ඪʹ ͚࣮͕ͨεϥεϥॻ͚ΔͷͰɺςετۦಈ։ൃ͕ԯ߷ ʹײ͡Δ͔͠Εͳ͍
26
ςετͷׂ w ͙͢ʹ֮͑ΒΕͦ͏ͳͷ͔Βॻ͍ͯΒ͏͜ͱʹ͢Δ w ԿΛॻ͖͍ͨͷ͔Λ໌Β͔ʹͯ͠ɺదٓϖΞϓϩͰҰॹʹ ࣮ͯ͠ɺ࣮֬ʹ࣮ͷܦݧΛੵΜͰ͍ΈΔ w ͕͖ࣝͬͯͨΒɺϦϑΝΫλϦϯάΛ࣭ͯ͠Λվળ ͯ͠Β͏ 27
ςετ͖ͬͱ͙͢ʹ֮͑ΒΕΔ ςετۦಈ։ൃऔΓೖΕΔ ςετೖ͍ͬͯΕɺϦϑΝΫλϦϯάزΒͰͰ͖Δ
͡Ί͜͏ͩͬͨͷ͕ 28
͜͏ͳͬͨΒؾ͍͍࣋ͪʂ 29 ͍ͭͰʹࣗϋοϐʔ ৽ਓ͞Μ΄ͲɺϦϑΝΫλϦϯάΛ࣮ײ͍͢͠
30 ςετ͕௨͍ͬͯΔ͜ͱΛ࣠ʹͯ͠ɺ࣮ͷमਖ਼Λ͢Δ͜ͱ ϦϑΝΫλϦϯά
࣮ײͱͯ͠ͷ ϦϑΝΫλϦϯά w ࣝܦݧ͕Γͳ͍ঢ়ଶͰɺίʔυ͕ͰՄಡੑͷ ѱ͍ͷʹͳΔ w ίʔυΛॻ͘ʹ࿈ΕͯɺԿΛͲ͏͔͚͍͍͔Θ͔ͬͯ͘ Δ w ੲॻ͍ͨͳίʔυΛϦϑΝΫλϦϯάͯ͠εοΩϦॻ
͚ΔΑ͏ʹͳͬͨ͜ͱΛ࣮ײ͢Δ 31
ڭ͑Δଆͷ͓ಘ͞ w ςετΛݟΔ͜ͱͰɺ৽ਓ͞Μͷ༷ͷѲ۩߹͕Θ͔Δ w ςετ͕ॻ͍ͯ͋ΔͷͰɺՄಡੑͷ͍ίʔυͰɺ༰ ͕͍͋ͬͯΔ͔Ͳ͏͔Θ͔Γ͍͢ w ςετͷࣦഊ͕͋ΕɺϚʔδ͠ͳ͍Α͏ʹ͓ͯ͘͜͠ͱ Ͱɺ·͍ͣίʔυ͕ฆΕࠐΉ͜ͱΛ͙͜ͱ͕Ͱ͖Δ w
ϦϑΝΫλϦϯάΛ௨ͯ͠৽ਓ͞Μͷ۩߹͕Θ͔Δ w ςετۦಈ։ൃͷϝϦοτΛ࣮ײͰ͖Δ͔͠Εͳ͍ 32
ͱ͍͏Θ͚Ͱ৽ਓ͞Μ͜ ͦςετॻ͘ͱ͍͍Ͱ͢Αʂ 33
ڭ͑Δଆ͕ ؾΛ͚ͭΔ͖͜ͱ 34
ใաଟʹؾΛ͚ͭΔ w ৽ਓ͞Μɺ΄ͱΜͲ͕ࣝͳ͍ͷͰɺҰؾʹେྔͷ͜ͱ Λڭ͑Δͱɺࠞཚͯ͠ٯޮՌʹؕΓ͍͢ ࣗͬͯ͠·͔ͬͨ w ςετίʔυαϯϓϧͱͳΔΑ͏ͳίʔυྫΛࣔͯ͋͠ ͛Δͱྑ͍ ίϐϖͰ࡞ͬͨͷΛɺςετ༰ʹ߹Θͤͯमਖ਼͢Δͩ
͚Ͱɺ݁ߏ֮͑ͪΌ͏ 35
ϨϏϡʔϖΞϓϩΛ͢Δ w ͍͠ͱͯ͠ɺϨϏϡʔϖΞϓϩʹੵۃతʹԠ͡Δ ͖ w ϨϏϡʔ͢Δͱ͖ɺେྔͷࣝܦݧΛඞཁͱ͢ΔՕ ॴʹ͍ͭͯ͋͑ͯमਖ਼͠ͳ͍ͰɺޙʑͷϦϑΝΫλϦϯ άͷ͜ͱ·Ͱߟ͓͑ͯ͘ͱϕλʔ w ϖΞϓϩ͢Δͱ͖ɺͳͥͦ͏͍͏࣮Λ͢Δͷ͔ޱʹग़
͠ͳ͕ΒΔͱ͍͍ͷͰͱࢥ͏ 36
ϖΞϓϩʹ͏πʔϧ 37 ͛͢ʔ͓͢͢Ί
38 (JUIVCΞΧϯτͰϩάΠϯͰ͖ΔͷͰɺ͓खܰͰ͢ʂ
ϨϏϡʔ 39 ී௨ʹ(JUIVCͷ13ͱ͔(JU-BCͷ.3ͱ͔͏ͰΑ͍͔ͱ $*Ͱςετճͯ͠ɺࣦഊͨ͠ ΒϚʔδͰ͖ͳ͍Α͏ʹͯ͠ ͍Δ ༻γεςϜͰɺສҰͷϛε Λͨ͘͠ͳ͍ͱ͖ʹอݥͱ ͯ͠ೖΕ͓ͯ͘ͱ͍͍
·ͱΊ w ৽ਓ͞ΜʹςετΛॻ͍ͯΒ͏ͱɺ͍͍͜ͱ͕ͨ͘͞Μ ͋Δ w ֮͑Δ͜ͱ͕ଟ͍தͰςετಉ͡Α͏ͳͷΛ܁Γฦ ͠ॻ͘͜ͱʹͳΔͷͰɺ͍֮͑͢ w ςετΛॻ͘͜ͱͰɺ৽ਓͷͱίʔυ࣭ͷվળΛ྆ ཱͤ͞Δ͜ͱ͕Ͱ͖ΔͷͰɺͥͻͱॻ͍ͯΒ͓͏ʂ
40
41 ৽ਓͰςετΛॻ͔ͳ͚ΕͳΒͳ͍
41 ৽ਓͰςετΛॻ͔ͳ͚ΕͳΒͳ͍
41 ৽ਓͰςετΛॻ͔ͳ͚ΕͳΒͳ͍
41 ৽ਓͰςετΛॻ͔ͳ͚ΕͳΒͳ͍ ৽ਓ͞Μ͕ςετΛॻ͘ͱɺͱ͓ͯಘ
͝ਗ਼ௌ͋Γ͕ͱ͏͟͝ ͍·͢ʂ 42