思ったこと

UnitTestをしてコードを理解すること

 リファクタリングをしたり、自分でコードを書き直して理解するって言うのが多い。この場合、「途中で動かなくなっても構造が理解できればいい」と思って行う。僕もこれをやっている。

 今回すでにあるコードのUnitTestを書いて思ったことは、結局関数はブラックボックスにしたいのが目的名わけだから、書き直してまで処理の流れを理解しなくてもよいのでは?ということ。UnitTestは基本的にはブラックボックステストなので、入力と出力だけに集中できる。テストを書くために関数の中身を見ることもある。が、それよりUnitTestを書いて関数がブラックボックスであるということを意識したほうが僕にとってはよいと思った。

 というのは、僕はよく細部に注目しすぎて全体が見えなくなってしまうので。関数はブラックボックス。

UnitTestがしやすい構造はよい構造

 UnitTestがしやすい構造ということは、適切な分割、抽象化がなされているということ。関数がひとつのことしかやらなければUnitTestはとてもやりやすいし、それって普通はよい構造。テスト駆動開発をする場合でも、書いてからテストを書く場合でも、UnitTestをしやすいきちんと分割された構造を意識したいと思った。

ここまで書いて思うこと

 こういうことは実際にXPを実践している人にとっては自明なんだろうな。