今日TDDベースのモブプロイベントに参加してきた。 軽く用語の説明からする。
TDDとは
テスト駆動開発(test-driven development)の略。
先にテストコードを書いて、そのテストが通るようにプロダクションコードを書く。 テストが通ったらより良いコードにするべくリファクタリングを行い、 その後テストコードを追加して、またそのテストが通るように…と繰り返すことでコードを完成させていく。
モブプロとは
モブプログラミングの略。
複数人で一つのコードを書く。 一人はドライバーとなりコードを実際に記述し、 その他はナビゲーターとなりドライバーが書くコードを見ながら、アドバイスや提案を行う。
感想
オフラインイベントでみんなであーだこーだいいながらモブプロするのはとても楽しかった。 私は昔々、TDDをやったことがあった。しかし、今改めてやるとまた色々考えることがあってよかった。 TDDは慣れないとなかなか難しい。今回感じたコツは以下のような感じ。
- なるべく具体を現したコードから、徐々に抽象的なコードに書き換えるアプローチをする
- テストケースはなるべく小さく書く
テストコードを小さくというのは、assert文が1テストあたり1つだけにするとかそういう感じ。 あとはここで書くテストコードは「プロダクションでの品質を保証するようなテストコードではない」ことを意識すると、 より理解しやすいと思った。
主催の先輩が「TDDは筋トレ」と表現していたのも、実際やってみることで実感した。 具体的にはテストしやすいコードの書き方を意識するようになるとか、 抽象と具体を行ったり来たりする力が身につくとかそんな感じ。 もちろん使用している言語にも詳しくなっていく。 そうそう。書いたことがない言語を習得するために、モブプロするのは良いなと思った。 その時は一人はその言語が得意な人がいると効果的かもしれない。
またTDDモブプロしたいな〜