« 英語が下手だと人に言うのをやめる運動 | メイン | うまくいく人が実践する時間管理術 - 日本世相調査研究会 ☆ »

2007年12月 6日

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

?u?b?N?}?[?N???B???

Effective Javaのラストです。最後は例外・スレッド・直列化とかなりJavaっぽい内容です。それぞれ直感が効きにくい部分なので、丁寧なプログラミングが必要となる部分です。

Effective Java プログラミング言語ガイド
Effective Java プログラミング言語ガイド
Joshua Bloch (著)
ジョシュア・ブロック (著)
柴田 芳樹 (著)
¥ 2,730 (税込)



例外は「例外」として使え

例外の部分はある意味当たり前ともいえる「例外は例外の場合のみに使って、それ以外では使わない」というのが本質。実際、例外を特殊な使い方をしているコードを見ることもありますが、確かに何やっているか分かりにくいですしね。次にどこに行くかわからない、というのは、読みにくいしバグの元。

例外はやはり「例外」であるため、かなり丁寧な処理をしないと危ないですよ、ということ。

スレッドを安全に使う

スレッドの一番危ない部分は、「同期」の部分です。ではこの「同期」を安全に行うにはどうするか?一番はまず「同期を減らす」こと。まあ、当たり前といえば当たり前ですが、まずこの部分から考えるのが基本。

それができない部分に対しては注意深く、共有データを変更するコードを書きましょう。

直列化の移植性

直列化の一番の問題点は「移植性」。これはオブジェクトを一段低いデータであるバイトストリームに直すために起こります。本書では、Serializableを継承するのではなく、独自のカスタムシリアライズを提供する、ということまで言及されています。シリアライズはそれほど難しい、ということなのですね。

NEXT

未定です。どの本読もうかな。

  1. Effective Java プログラミング言語ガイド (1)
  2. Effective Java プログラミング言語ガイド (2)
  3. プログラミング言語Java (1)
  4. プログラミング言語Java (2)
  5. プログラミング言語Java (3)



トラックバック

このエントリーのトラックバックURL:
http://webcrawl.s288.xrea.com/mt/mt-tb.cgi/435

コメント (2)

まだ読まれていないのでしたら、『Effective Java』の著者Joshua Bloch氏とNeal Gafter氏の共著である『Java Puzzlers 罠、落とし穴、コーナーケース』をお勧めします。パズルを解きながら、Javaでプログラミングする際に注意すべきことを学んだり、言語仕様に関する認識を深めたり、時には、錯視図を楽しんだりすることができます。

makoto :

ありがとうございます。
今度本屋で探してみます。

コメントを投稿