Working Effectively with Legacy Code という本がある。 "Legacy Code" とは、この本では「テストコードが書かれていないコード」という定義だ。定義を聞いただけでなぜかもの悲しい気持ちになれる言葉というのもなかなかあるまい。*1 この本は、(他の人が書いたのか自分で書いたのかはおいといて)"Legacy Code" が目の前にあって、それに機能を追加しないといけない人のために、許される時間や対象コードのタイプなどに応じてどのような手法がありうるのかをカタログ化して列挙してくれている。 カタログといっても「手法のアルファベット順に列挙」のような血の通ってなさそうな代物ではなく、各章のタイトルは "I Need to Make a Change. What Methods Shoud I Test?" とか "I Need to Make a Cha