Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
TDDの練習 Coding Kata の実践
hakobe (Yohei Fushii)
April 19, 2014
Programming
0
1.3k
TDDの練習 Coding Kata の実践
hakobe (Yohei Fushii)
April 19, 2014
Tweet
Share
More Decks by hakobe (Yohei Fushii)
See All by hakobe (Yohei Fushii)
はてなにおけるプログラミング言語の歴史とこれから
hakobe
0
400
ざっとわかるPython
hakobe
4
6.6k
はてなで一人前のエンジニアになる方法
hakobe
4
6.3k
契約による設計の紹介
hakobe
6
19k
アクターによる 並行処理アプケーション アーキテクチャ
hakobe
4
3.1k
Scala In Perl Company
hakobe
11
11k
なめらかにGHEに移行する方法
hakobe
19
7.4k
開発フロー@はてなブックマーク
hakobe
0
120
Git on WebApp with Perl
hakobe
1
3.6k
Other Decks in Programming
See All in Programming
CDKでValidationする本当の方法 / cdk-validation
gotok365
1
230
和暦を正しく扱うための暦の話
nagise
10
6.6k
フロントエンドで 良いコードを書くために
t_keshi
3
1.6k
AWSにおける標的型Bot対策
hacomono
0
440
Milestoner
bkuhlmann
1
250
PHP でガチの電卓を作る
memory1994
PRO
2
150
TokyoR#103_DataProcessing
kilometer
0
540
What's new in Shopware 6.5
shyim
0
110
ECS Service Connectでマイクロサービスを繋いでみた
xblood
0
740
Findy - エンジニア向け会社紹介 / Findy Letter for Engineers
findyinc
2
42k
良質な技術記事を量産する秘訣 / #MeetsPro
jnchito
16
4.6k
フロントエンドで学んだことをデータ分析で使ってみた話
daichi_igarashi
0
190
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
34
1.5k
4 Signs Your Business is Dying
shpigford
171
20k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
101
6.2k
GraphQLの誤解/rethinking-graphql
sonatard
39
7.8k
Navigating Team Friction
lara
177
12k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
236
1.1M
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
227
16k
Designing Experiences People Love
moore
130
22k
Learning to Love Humans: Emotional Interface Design
aarron
263
38k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
657
120k
Facilitating Awesome Meetings
lara
33
4.6k
Reflections from 52 weeks, 52 projects
jeffersonlam
339
18k
Transcript
Coding Kata TDD practice with
hakobe hatena: id:hakobe932 twitter: @hakobe github: @hakobe
TDD Test Driven Developement
–Robert C. Martin “ཁ͢ΔʹTDDϓϩͷબͳͷͩɻ ࣮֬ੑɾܽؕࠞೖͷԼɾ༐ؾɾ υΩϡϝϯτɾઃܭΛଅਐ͢Δنͩɻ”
ϓϩͳΒTDDΛ͏
TDDͷࡾݪଇ 1. ࣦഊ͢ΔςετΛॻ͘·Ͱ ϓϩμΫγϣϯίʔυΛॻ͔ͳ͍ 2. ࣦഊͤ͞ΔతҎ֎ͰςετΛॻ͔ͳ͍ 3. ࣦഊ͢Δςετ͕ޭ͢Δ·Ͱ ଞͷϓϩμΫγϣϯίʔυΛॻ͔ͳ͍
Red Green Refactoring TDDͷ αΠΫϧ
࣮ફͰ͖ͯΔ? •͡ΊʹςετΛॻ͘บͰ͖ͯΔ? •͏·͘αΠΫϧΛ·ΘͤͯΔ? •ςετॻ͘ͷ͍͠෦ॻ͚Δ? •Fake It / Obvious Implementation /
Triangulation ͏·͘Ͱ͖ͯΔ?
࿅श
Coding Kata
Coding Kata ۭखͷܕʹͳͧΒ͑ͨɺϓϩάϥϛϯάͷ࿅शํ๏ɻ ! جຊతͳ՝Λ܁Γฦ͠࿅श͢Δ͜ͱͰɺ TDDͷΑ͏ͳنɺΤσΟλͷૢ࡞ํ๏ɺ Α͋͘ΔͷղܾखॱͳͲΛମʹછΈࠐ·ͤΔɻ
ϘϦϯάήʔϜ ‣10ϑϨʔϜ x ࠷େ 2 ͯ͠ 10 ݸͷϐϯΛ͢ ‣ετϥΠΫ Ϙʔφε:
࣍ͷ 2 ͷͨ͠ϐϯ ‣εϖΞ Ϙʔφε: ࣍ͷ 1 ͷͨ͠ϐϯ ‣10ϑϨʔϜ εϖΞ͔ετϥΠΫ͕ग़ͨΒ࠷େ3Ͱ͖Δ
ཁٻ༷ •roll(pins: Int) ϓϨΠϠʔ͕ϘʔϧΛ͛ͨ࣌ʹݺΕΔɻ Ҿͨ͠ϐϯɻ •score(): Int ͜ͷήʔϜͷείΞΛฦ͢ Game +
roll(pins: Int) + score(): Int
࣮ԋ Scala/spec2/IntelliJ/sbt
·ͱΊ • TDDϓϩͷश׳ • Coding KataͰ࿅शͯ͠ʹ͚ͭΑ͏ ࣮ࡍ͏·͍ͬͯ͘Δ? - TDDͷϦζϜ͕ʹͭ͘ -
։ൃڥྑ͘ͳΔ - ϓϩάϥϛϯάݴޠͷػೳΛֶΔ
ࢀߟจݙ • ΞδϟΠϧιϑτΣΞ։ൃͷԞٛ (ISBN: 978-4797347784) • εεϖοΫͷε ʲୈ 1 ճʳ
RSpec ͷ֓ཁ ͱɺRSpec on Rails (Ϟσϧฤ) ( http://magazine.rubyist.net/?0021-Rspec ) • ͜ͷൃදͷαϯϓϧίʔυ ( https:// github.com/hakobe/coding-kata-bowling )