TDD Boot Camp 2020 Online #1 基調講演/ライブコーディング
2022/08 https://tddbc.connpass.com/event/183044/
スライドは https://speakerdeck.com/twada/tdd-live-and-workshop-2019-spring が近い
『テスト駆動開発(書籍)』
生み出した本人による著作
/iki-iki/ピアソンショックに言及
ほかに『リファクタリング』『エクストリームプログラミング』『達人プログラマー』
TDDのサイクル
ToDoリスト
実装モードに入ったときに思い出せる
重要なもの、かつ、テスト容易性が高いとできる
twadaさんとFizzBuzzでペアプロできる(0:41:55〜)
小さなお題にして何周もサイクルを回す様子を見せる
お題のFizzBuzzをTDDのTODOリストに変換(プログラミング開始より前)
TDD1周目(TDD Boot Camp 2020 Online #1):仮実装
TDD2周目(TDD Boot Camp 2020 Online #1):三角測量
TDD3周目(TDD Boot Camp 2020 Online #1)
4周目:明白な実装
5のケースを追加
3件成功・1件失敗 -> 予想通り!
状況はコントロールできている
コンディションがよい(不安がない・自信がある)
(『Clean Craftsmanship』のUncle Bobが上機嫌なのを思い出した)
前半デモのまとめ
問題を小さく分割する
歩幅を調整する
テスト -> 仮実装 -> 三角測量 -> 実装
テスト -> 仮実装 -> 実装(3の倍数)
テスト -> 明白な実装(5の倍数)
時間が経過して別の人がコードを読んだ
テストコードを読んでもわからないから実装を読む
ドキュメントとしてのテストコードになっていない(動作するドキュメントになっていない)
TODOリストに仕様があったが、コードに残らず、未来に伝わらなかった
TODO
正常系は補集合だった
動作するドキュメントとしてのツリー、かつ、メンテナンスコストが最小となるよう必要最小限
母語でテストを書くのをオススメ(日本語で情報共有してかまわない状況では)
JUnitのテストコードを動作するドキュメントにしている
テストコードは動く仕様書であってほしい
テストメソッド名や@displayNameで日本語化(2:09:00付近)
だんだんドキュメントに近づけていく
日本語テストメソッド
『実践テスト駆動開発』(質疑1:56:00)
受け入れテスト(粒度大きい)から粒度小さいへとテストを書いていくやり方
TDD Boot Camp 2020 Online #1 Pythonに関する補足
https://youtu.be/Q-FJ3XmFlT8