log > レガシーコード改善ガイドを読んでいっている

読書

レガシーコード改善ガイドを読んでいっている。毎日一時間読書すればいいのだが、疲れ果てていると読んでも理解できない(というかゆっくり読まないと理解できないので効率悪い)ので、後回しにしてしまっている。だから、週末くらいは読書に割こうと思った。

とりあえず100ページ読んだが、遅いと思う。そりゃリーダブルコードなら一日あれば読めるのだけど、大きくてそれなりに難解な本はすらすら読めない。こういう本をすらすら読める頭のいい人がうらやましい。

肝心の内容は、「思ってたのとちがったけど、これはこれで役に立つ」だった。TDDというか、よくわからないプログラムに対するテストの作り方という点ですごく役に立つと思う。

前日まで古いプログラムを直していたが、今回は600行程度だったからよかったものの、これが10万行だったら完全にお手上げだった。しかし、本書の内容を実践すれば、10万行あっても何とかなりそうな気はした。

振る舞いを変えないようにテストを書いて、それからプログラムを少しずつ変えていく。機能を追加するときも、テストを書き、元のコードをコメントアウトし、同等のコードを追加して、テストが通ったら元のコードを削除する。という恐ろしく保守的なやりかたでやっているので、変化は微々たるものだが確実に前進するだろう。(もちろんこのやり方でも後退はするのだが、距離は少ないと思う。)

Javaで書かれているので脳内でPHPに置き換えるのが面倒だが、最近のPHPはいろいろできるので特に問題なく読めている。

唯一、テストハーネスって聞き慣れない言葉だし、説明を読んでもテスティングフレームワーク(xUnitとか)とどう違うのかよくわからなかった。それらをまとめた総称なんだろうけど、調べてもよくわからなかったので困りながら読んでる。