アジャイルソフトウェア開発の奥義 を今読んでいる。
この本の第 6 章でペアプログラミングについて書いており、テスト書きながら段々とコードをシンプルにしていく様が面白おかしく(?)書かれている。
そこではボウリングを題材にしているのだが・・・最終的に出来上がったコードが理解できなかった。
何度読み直しても firstThrowInFrame という変数の意味がわからなかった。章のはじめから読み直してもよくわからなかった。もう 1 度コード読んでもやっぱりわからなかった。
俺の頭が悪いんだろうかと悩みつつ、実際にコードを動かして、いじってみる。でもテストは緑バーのまま。やっぱりオカシイ・・・ firstThrowInFrame は一体何物なんだと。
で、google に聞いてみるとObject MentorのAn Extreme Programming Episodeに出てくるコードがオカシイ件で書いてる人がいた。ち、ちくしょう・・・やっぱりオカシイんじゃないか・・・。google:そこは既に我々が4000年前に通過した場所だ!とい言われたよーな気分。
この記事を書いた人の本当の狙いは、このことを読者に気づかせてリファクタリングをするように仕向け、ユニットテストがあることのありがたみを実感させることなのではないか・・・とかって勝手に深読みしてるw
この読みは意外と当たってるのでは。半日ウンウン唸ったあげく、コードいじっても緑バーになる事実に安堵してしまった俺がいるので。
そこそこ有名な本だしヘンテコリンなとこなんて無いだろう、なんて思っちゃダメなんだなぁ。
疑わしきは検証せよ。ってとこかなぁ。オカシイと感じたらちゃんと自分で試してみないとダメだね。