Effective Java プログラミング言語ガイド

Effective Java プログラミング言語ガイド

Effective Java プログラミング言語ガイド

★★★★☆
java developer は読んでおくべき」という宣伝活動か?と思わせる盛り上がりをごく一部(?)で見せていたので購入。対象はプログラム初心者ではなく、ある程度開発をしてきた人向け。ただし、別の言語をある程度やっていた人が java での開発を始める際には最初に読んでおいた方が良いと思う。java ではこういうところに気をつけた方がいいのかぁという参考になる。
自分の開発スタイルと照らし合わせてみるとこれと言ってずれてるところはないなぁという印象だったけど、一つ「あぁ、これか」というのがあった。
Iterator は while で回すもんだ」という先入観。これどこで身につけんだろうなぁ・・・研修だったのかなぁ、ネットに出回ってるサンプルコードもだいたいこうだよなぁ。

Map map = new HashMap();
// ・・・
// 省略
// ・・・
Iterator iter = map.keySet().iterator();
while(iter.hasNext()) {
    System.out.println(map.get(iter.next()));
}

ここで問題なのが、iter は while 分を抜けると必要なくなるのに iter という変数はそのメソッドを抜けるまで影響しちゃうこと。
で、たまに連続で Iterator を回したくなると iter に別の Iterator を再代入したりとか iter2 を新たに宣言しちゃって・・・とかこれどうにかならんもんかなぁと思ってたんだけど、for を使えばいいんだという事が分かった。

for(Iterator i = map.keySet().iterator(); i.hasNext() ; ) {
    System.out.println(map.get(i.next()));
}

これなら変数が以降の領域を侵さないですむ。for に気がつかなかった自分乙 orz

この Effective Java が発売されたのが 2001/12/03。もう 7 年近く前だよ。これに続く第 2 版が 2008/05/09 に発売され、その日本語訳版の発売日がそろそろ決まるのかなぁというところ。

現在は、索引作りを行っており、この索引作りの作業を残すのみとなっています。翻訳作業で、大変なのはこの索引作りです。

柴田 芳樹

第1版の訳もされてるんですね、これは期待。

デザインパターンの本を再勉強しようかな。今なら理解が深まりそうな気がする。