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.1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
新人さんでもテストを書くべきだっていう話
自分の経験談として、新人さんがテストを書くと割といいですよっていう話をしました。
初心者ほどテスト駆動開発の効果っていうのが高いなーって感じました
NIIKURA Ryota
October 31, 2018
More Decks by NIIKURA Ryota
See All by NIIKURA Ryota
SwooleでLaravelを高速化してみる
niisantokyo
0
5.2k
一次元畳み込みフィルターによる音声データのオートエンコーダ
niisantokyo
1
3.8k
タグ付けデプロイの話
niisantokyo
1
1.2k
TensorFlow.jsに保存機能が実装された件
niisantokyo
1
330
PHP-FPMのコンテナログ2重出力問題
niisantokyo
0
270
Laradockの紹介
niisantokyo
0
1.1k
deeplearnjsの紹介
niisantokyo
1
250
ひたすら楽して、PHPアプリをコンテナ運用の縮小版
niisantokyo
0
880
PHPでニューラルネットを作った話
niisantokyo
2
4k
Other Decks in Programming
See All in Programming
どこまでゆるくて許されるのか
tk3fftk
0
520
SLOをサービス品質の共通言語にするために 取り組んできたこと
wakana0222
0
540
The Bowling Game- From Imperative to Functional Programming - Part 1
philipschwarz
PRO
0
340
【やさしく解説 設計編 #0】DDDのコード、読めるのに分からない人へ
panda728
PRO
2
270
act2-costs.pdf
sumedhbala
0
120
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
610
SREの積み重ねがAI駆動開発のガードレールになった ― 7つの実践/SRE Guardrails The 7
tomoyakitaura
8
5.3k
Prismを使った型安全な暗号化_関数型まつり2026
_fhhmm
0
150
AI がコードを書く時代における新卒エンジニアの仕事風景 (2026) / New Graduate Engineers in the Era of AI Coding (2026)
sushichan044
0
230
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
160
AI時代の仕事技芸論〜ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ(スクフェス仙台 2026バージョン)
kuranuki
0
690
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
150
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
187
22k
Deep Space Network (abreviated)
tonyrice
0
230
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
410
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
370
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
390
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
180
Visualization
eitanlees
152
17k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
840
Building a Scalable Design System with Sketch
lauravandoore
463
34k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
280
Ruling the World: When Life Gets Gamed
codingconduct
0
290
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
420
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