新人がtddを学ぶ方法

28
(株)永和システムマネジメント 伊藤 邦彦 [email protected] 2012.04.06 TDD カンファレンス 2012 新人がTDDを 学ぶ方法

Upload: kunitoo

Post on 31-May-2015

912 views

Category:

Technology


3 download

DESCRIPTION

TDD カンファレンス2012 LT

TRANSCRIPT

Page 1: 新人がTDDを学ぶ方法

(株)永和システムマネジメント伊藤 邦彦

[email protected] カンファレンス 2012

新人がTDDを学ぶ方法

Page 2: 新人がTDDを学ぶ方法

@kunitoo

Page 3: 新人がTDDを学ぶ方法

フィードバック、ご意見感想、だめだしはこの後の懇親会または、@kunitoo でお待ちしています

Page 4: 新人がTDDを学ぶ方法

自己紹介•受託開発をしているJavaプログラマ• 新卒で入社して、TDDを初めて知った•オブジェクト指向が好き•意図の伝わるソースコードを書くことを大切にしている

Page 5: 新人がTDDを学ぶ方法

概要

•新人がTDDをどのように学んだか

•普段どのように考えてテストを書いているか

Page 6: 新人がTDDを学ぶ方法

新人がTDDをどのように学んだか

•師匠とペアプロ(ペア作業)•指示を貰いながらコードを書く

Page 7: 新人がTDDを学ぶ方法

プロダクトコードを

変更しようとすると

「まずテストから書こうか」

を繰返した

Page 8: 新人がTDDを学ぶ方法

繰返し言われることによって自然とテストから書くようになった

Page 9: 新人がTDDを学ぶ方法

テスト書くようになったはいいが、実際に一人で書こうとすると手が止まることが大かった

Page 10: 新人がTDDを学ぶ方法

なぜ手が止まるのか?

Page 11: 新人がTDDを学ぶ方法

あれも考慮しなきゃあ!そしてたらあっちもだ。じゃさっきのは大丈夫なのかな?

Page 12: 新人がTDDを学ぶ方法

師匠の教え

•余計なことは考えない。•今必要な一番簡単な例を一つだけ考えよう。

•不安、自信のないところのテストを書こう。

Page 13: 新人がTDDを学ぶ方法

必要なことを必要なときやる

•簡単な例を繰返し徐々に必要なプロダクトを組み立ていく

Page 14: 新人がTDDを学ぶ方法

普段どのようにテストを書いているか•ポーカーを題材に作成してみる•プレイヤーがワンペアかどうか判定するメソッドを作成* ワンペア:同一ランク(数字)のカード2枚のペア1セット(残り3枚は何でもよい)。

Page 15: 新人がTDDを学ぶ方法

isOnePairを作ろう!

•クラスを作る(Player)•テストクラスを作る(TestPlayer)

•手持ちカードの数字が1、1、2、3、4の時trueを返す

Page 16: 新人がTDDを学ぶ方法

isOnePairがtrueを返す

Page 17: 新人がTDDを学ぶ方法

手持ちカードの数字が1、1、2、3、4の時

Page 18: 新人がTDDを学ぶ方法

手持ちカードの数字が1、1、2、3、4の時

Page 19: 新人がTDDを学ぶ方法

手持ちカードの数字が1、1、2、3、4の時

Page 20: 新人がTDDを学ぶ方法

手持ちカードの数字が1、1、2、3、4の時

Page 21: 新人がTDDを学ぶ方法

isOnePairを作ろう!

•手持ちカードの数字が1、2、3、4、5の時falseを返す

Page 22: 新人がTDDを学ぶ方法

手持ちカードの数字が1、2、3、4、5の時falseを返す

Page 23: 新人がTDDを学ぶ方法

手持ちカードの数字が1、2、3、4、5の時falseを返す

Page 24: 新人がTDDを学ぶ方法

isOnePairは完成?

Page 25: 新人がTDDを学ぶ方法

isOnePairは完成?次のケースを考えないといけない。スート(絵柄)とかね

Page 26: 新人がTDDを学ぶ方法

まとめ

Page 27: 新人がTDDを学ぶ方法

余計なことを考えず小さく自分が考えやすいことからテストを作っていくことで徐々にコードを育てていくことができる。

Page 28: 新人がTDDを学ぶ方法

TDDのテストは具体な状況を考えやすい形で書いていくもの