- 三本柱
#達人プログラマの白本のやつかな
バージョン管理
Subversion
Git/Mercurial
#バージョン絵巻物がすごい
テスティング
素早いフィードバック
自動化
- 黄金の回転
- 品質
品質保証はしない
品質向上はする (結果的に)
- TDDはテスト技法?いいえ、設計技法です。
- TDDのこころ
1つずつ少しずつ
複数を相手にしない。ひとりずつ対処する。(by 武蔵)
すばやくまわす
REPL (Read Eval Print Loop)
ruby なら irb
java なら IDE + JUnit
自分が最初のユーザ
eat your own dog food
テスト書く、という意味でのユーザ
TDD=設計手法であると主張してるポイント
不安をテストに
テストをいくつ書く?getter/setterにテスト書く? ということではない。
不安なところがあればテストを書く
勇気か蛮勇か
XPのcourage
正しい勇気を持つ=テストに裏付けられた勇気
脳を無駄なく
老人力
3ヶ月たったらコードは忘れる
代わりに外部のテストによって助けてもらう
ジャグリング=不安がいっぱい宙に浮いている
不安は少なくしよう
IDEをつかいこなせ
Eclipse/NetBeans
テストは人の為ならず
- TDDはじめの一歩
一人で始める
本
テスト駆動開発入門(ケント・ベック)
リファクタリング(マーチン・ファウラー)
Java言語で学ぶリファクタリング入門(結城浩)
写経
デスマの地獄から解脱する為にTDDを写経
小さく始める
末端クラスから
勉強会に行ってみる
- FAQ
テストのないコードがいっぱいある
レガシーコード=テストのないコード
デブザミでは大盛況
Working Effective with Legacy Code 嫁
夏までには邦訳がでそう
テストしにくいところは?
xUnit Test Patterns (Refactoring test code) 嫁
モック技法とかがカタログ形式で載っている
マルチスレッドとか
最終的に自動化がやりづらいエリアはある
そういう箇所にビジネス価値があることがおおい
人間にしかできないところに人間の手間を集中しよう
どこをテストすべき?
達人プログラマー白本 嫁
デバッガじゃだめなの?
プログラミング作法(カーニハン) 嫁
テスト、デバッガ、ロギングについてびっしり書いてある
デバッガって名前が悪い。デバッグ時にしか使わないように聞こえる。
トレーサとかならいいのに。
テストの単位
1クラスに1つ?1メソッドに1つ?
なれるまではそれでいい
が、拘る必要もない
DTOに対してテストがあっても意味ない
1クラスに対して複数テストがあってもいい
状況を単位
造語「テスティングコンテキスト」だっけ?
リファクタリングのやめどき
「きれい」は主観的価値感
時間とか自分でTodo管理が重要
これで終わり!という仕組みはまだない
- まとめ
テストは才能ですか?いいえ、スキルです
- 喀血本
テスト駆動開発入門(ケント・ベック)
プログラミング作法(カーニハン)
# テスト自体のリファクタリングの話を聞きたいな、と思った。
# 動くきれいなコードができたところで、テストのリファクタリングをする、みたいなやつ。
# 少しだけ話にあがった(ような気がした)んだけど、どうやら、
# xUnit Test Patterns (Refactoring test code) に書いてるらしい。
# しかも、読書会やるよ、とのこと。これは気になる・・・。