今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

Javaの格言―より良いオブジェクト設計のためのパターンと定石

この本は今まで読んだことがなかったけど、今さら買うのもどうかと思って、読む機会を失っていたが、昨日、図書館でたまたま発見したので借りてみた。で、今日の病院の待合室で半分くらい読んだ。
率直な感想は「古い」。出版が2000年。既に5年も前の書籍だし、原著はさらにそれ以前のなので、内容が古い。
出版された当時を考えると、これだけ Java に関する情報が充実した書籍は少なかったと思う。出版当時は、良書であったことは間違いない。
しかし、過去は真実だったことも、今では真実ではなくなってしまっている。「package private」のことを「パッケージローカル」と書いていたり(JDK1.1時代は呼び方が決まっていなかったから仕方ないんだけど)、Object#clone() の説明も部分的に間違っていたりする。意外と、間違った記述を散見する。
掲載されているサンプルも、どうかと思うのが多い。例えば、

public class Customer
{
    private Account account_;
        :
}

というサンプルがあるが、コード書式や変数の命名も標準的でないし、このサンプルでは顧客と口座の関係が逆だ。これでは顧客は複数の口座を持てない。口座に顧客情報を持たせるのが正しい。
かといって、悪い点ばかりではない。Java をよく知っている人が読めば新たな発見があるかもしれない。実際、半分までしか読んでないけど、テストの書き方やメソッドの宣言の仕方についてなど、いくつか今後のヒントになることがあった。
ただし、Java をよく知っている人にとっては、多少は読む価値があると思った。しかし、もはや初心者には薦められないと感じた。