KEIS BLOGは株式会社ケイズ・ソフトウェアが運営しています。

KEIS BLOG

エンジニアにおすすめしたい参考書籍: Effective Java 第2版


Java の参考書という事で言えばこの本は外せないと思います。

51E1m-weAXL

Effective Java 第2版

2001年に第1版が出版されましたが、2008年末に第2版の訳書が出版されています。
著者のジョシュア・ブロック (Joshua J. Bloch)は当時45歳。2004年から Google の
チーフアーキテクトとなり、2013年現在でもその立場にいるようです。
前職は Sun にて Core Java Platform Group のアーキテクトを務め、
多くの Java API、特にコレクション系パッケージ、Math パッケージのエンハンスを
行っていました。

Java 5 から導入された enum の仕様策定のリード、concurrent パッケージにも
関わっています。

本書の中に コレクション、enum、concurrent についての記載に詳しいのも
そのためでしょう。
いずれも Java という言語を使いこなすためには重要な位置にある機能で、
本書を読むことで「なぜこのような仕様となったのか?」
というレベルから理解する事ができると思います。
ジョシュアのインタビューを見ても、API デザインに並々ならぬこだわりを
持っているようですが、concurrent パッケージのデザインも個人的には
見事なものだと思います。

本書の特徴は、本書が単なる Java の言語仕様の説明や、サンプルコード集というレベルで書かれたものではなく、例外の扱い(※1)や、Interface 中のクラス宣言等について
「このように使うべき」、「このような使い方は間違っている」
といった、設計の範疇に含まれそうなことにまで口を出していることです。

「どうすれば動くか?」というレベルを超えた部分に興味が出てきたエンジニアには
ヒントになる事がたくさん書かれていると思います。

「このように利用される事を想定して私はこの API を実装した」という話は
とても興味が惹かれますよね。

本書は読者も多く、本書での主張が「常識」として現場で話されることもあります。
その点を考えても一読しておく方が良いと言えると思います。

※1 設計の範疇の話になるので、当然異論も多数あります。この本は「聖書」ではないので、「絶対的正しい主張」が記載されている訳ではない事に注意してください。
一例で言えば、Java の言語仕様で特徴的な「チェック済み例外」の扱いについては異論がかなりあります。


Javaの理論と実践: 例外をめぐる議論

が参考になるでしょう。 自分なりの意見を持って、ケースバイケースで解決にあたるのも
エンジニアの能力と考えたいですね。