Coding KataTDD practice with
View Slide
hakobehatena: id:hakobe932twitter: @hakobegithub: @hakobe
TDDTest Driven Developement
–Robert C. Martin“ཁ͢ΔʹTDDϓϩͷબͳͷͩɻ࣮֬ੑɾܽؕࠞೖͷԼɾ༐ؾɾ υΩϡϝϯτɾઃܭΛଅਐ͢Δنͩɻ”
ϓϩͳΒTDDΛ͏
TDDͷࡾݪଇ1. ࣦഊ͢ΔςετΛॻ͘·Ͱ ϓϩμΫγϣϯίʔυΛॻ͔ͳ͍2. ࣦഊͤ͞ΔతҎ֎ͰςετΛॻ͔ͳ͍3. ࣦഊ͢Δςετ͕ޭ͢Δ·Ͱ ଞͷϓϩμΫγϣϯίʔυΛॻ͔ͳ͍
RedGreenRefactoringTDDͷαΠΫϧ
࣮ફͰ͖ͯΔ?•͡ΊʹςετΛॻ͘บͰ͖ͯΔ?•͏·͘αΠΫϧΛ·ΘͤͯΔ?•ςετॻ͘ͷ͍͠෦ॻ͚Δ?•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 )