Slide 1

Slide 1 text

Coding Kata TDD practice with

Slide 2

Slide 2 text

hakobe hatena: id:hakobe932 twitter: @hakobe github: @hakobe

Slide 3

Slide 3 text

TDD Test Driven Developement

Slide 4

Slide 4 text

–Robert C. Martin “ཁ͢ΔʹTDD͸ϓϩͷબ୒ͳͷͩɻ ࣮֬ੑɾܽؕࠞೖ཰ͷ௿Լɾ༐ؾɾ
 υΩϡϝϯτɾઃܭΛଅਐ͢Δن཯ͩɻ”

Slide 5

Slide 5 text

ϓϩͳΒ͹TDDΛ࢖͏

Slide 6

Slide 6 text

TDDͷࡾݪଇ 1. ࣦഊ͢ΔςετΛॻ͘·Ͱ
 ϓϩμΫγϣϯίʔυΛॻ͔ͳ͍ 2. ࣦഊͤ͞Δ໨తҎ֎ͰςετΛॻ͔ͳ͍ 3. ࣦഊ͢Δςετ͕੒ޭ͢Δ·Ͱ
 ଞͷϓϩμΫγϣϯίʔυΛॻ͔ͳ͍

Slide 7

Slide 7 text

Red Green Refactoring TDDͷ αΠΫϧ

Slide 8

Slide 8 text

࣮ફͰ͖ͯΔ? •͸͡ΊʹςετΛॻ͘บ͸Ͱ͖ͯΔ? •͏·͘αΠΫϧΛ·ΘͤͯΔ? •ςετॻ͘ͷ೉͍͠෦෼΋ॻ͚Δ? •Fake It / Obvious Implementation / Triangulation ͏·͘Ͱ͖ͯΔ?

Slide 9

Slide 9 text

࿅श

Slide 10

Slide 10 text

Coding Kata

Slide 11

Slide 11 text

Coding Kata ۭखͷܕʹͳͧΒ͑ͨɺϓϩάϥϛϯάͷ࿅शํ๏ɻ ! جຊతͳ՝୊Λ܁Γฦ͠࿅श͢Δ͜ͱͰɺ TDDͷΑ͏ͳن཯΍ɺΤσΟλͷૢ࡞ํ๏ɺ Α͋͘Δ໰୊ͷղܾखॱͳͲΛମʹછΈࠐ·ͤΔɻ

Slide 12

Slide 12 text

Ϙ΢ϦϯάήʔϜ ‣10ϑϨʔϜ x ࠷େ 2 ౤ͯ͠ 10 ݸͷϐϯΛ౗͢ ‣ετϥΠΫ Ϙʔφε: ࣍ͷ 2 ౤ͷ౗ͨ͠ϐϯ਺ ‣εϖΞ Ϙʔφε: ࣍ͷ 1 ౤ͷ౗ͨ͠ϐϯ਺ ‣10ϑϨʔϜ໨ εϖΞ͔ετϥΠΫ͕ग़ͨΒ࠷େ3౤Ͱ͖Δ

Slide 13

Slide 13 text

ཁٻ࢓༷ •roll(pins: Int) ϓϨΠϠʔ͕ϘʔϧΛ౤͛ͨ࣌ʹݺ͹ΕΔɻ
 Ҿ਺͸౗ͨ͠ϐϯ਺ɻ •score(): Int ͜ͷήʔϜͷείΞΛฦ͢ Game + roll(pins: Int) + score(): Int

Slide 14

Slide 14 text

࣮ԋ Scala/spec2/IntelliJ/sbt

Slide 15

Slide 15 text

·ͱΊ • TDD͸ϓϩͷश׳ • Coding KataͰ࿅शͯ͠਎ʹ͚ͭΑ͏ ࣮ࡍ͏·͍ͬͯ͘Δ? - TDDͷϦζϜ͕਎ʹͭ͘ - ։ൃ؀ڥྑ͘ͳΔ - ϓϩάϥϛϯάݴޠͷػೳΛֶ΂Δ

Slide 16

Slide 16 text

ࢀߟจݙ • ΞδϟΠϧιϑτ΢ΣΞ։ൃͷԞٛ
 (ISBN: 978-4797347784) • ε͸εϖοΫͷε ʲୈ 1 ճʳ RSpec ͷ֓ཁ ͱɺRSpec on Rails (Ϟσϧฤ)
 ( http://magazine.rubyist.net/?0021-Rspec ) • ͜ͷൃදͷαϯϓϧίʔυ ( https:// github.com/hakobe/coding-kata-bowling )