Java&オブジェクト指向参考書リスト(2007年版)

http://d.hatena.ne.jp/JavaBlack/20050909/p1の改訂.*1基本的に改訂版への差し替えと一部の新刊の追加程度になっている.
お奨めのJavaオブジェクト指向プログラミング関連の書籍/参考文献リスト.初心者向け入門書や参考書から上級者向けの専門書まで,オブジェクト指向だとかJava言語とかの初心者〜中級者が学習をすすめる上での参考にすることを想定して作っている.

オブジェクト指向プログラミング

とりあえず初心者なら「オブジェクト指向プログラミング入門」「オブジェクト指向における再利用のためのデザインパターン」と,あと「リファクタリング―プログラムの体質改善テクニック (Object Technology Series)」くらいかな.ただしリファクタリングは最初は難しく感じるので,ある程度慣れてからの方が無難だろう.

追記:「C++ Coding Standards―101のルール、ガイドライン、ベストプラクティス (C++ in‐depth series)」も初心者向け良書で,特にC++の人なら必携だろう..Javaの人でも参考になるくらい.
他に「アジャイルソフトウェア開発の奥義」などもぜひ検討してもらいたい.


オブジェクト指向プログラミング入門

オブジェクト指向プログラミング入門

  • 作者: ティモシイ・A.バッド,Timothy A. Budd,羽部正義
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2002/12
  • メディア: 単行本
  • 購入: 3人 クリック: 195回
  • この商品を含むブログ (42件) を見る
Introduction to Object-Oriented Programming, An

Introduction to Object-Oriented Programming, An

OOPに関する良き解説書.日本語版は第二版.洋書は第三版.
通称「カモノハシ本」.まともなオブジェクト指向プログラミングをやっていれば,一度はお目にかかったことがあるだろう古典的名著の一つ.*2


オブジェクト指向入門 第2版 原則・コンセプト (IT Architect’Archive クラシックモダン・コンピューティング)

オブジェクト指向入門 第2版 原則・コンセプト (IT Architect’Archive クラシックモダン・コンピューティング)

オブジェクト指向入門 第2版 方法論・実践 (IT Architects' Archiveクラシックモダン・コンピューティング)

オブジェクト指向入門 第2版 方法論・実践 (IT Architects' Archiveクラシックモダン・コンピューティング)

Object-Oriented Software Construction (Book/CD-ROM) (Prentice-hall International Series in Computer Science)

Object-Oriented Software Construction (Book/CD-ROM) (Prentice-hall International Series in Computer Science)

OOPの原典.難しいので間違いなく中上級者向け.ただし多重継承の部分はちょっとね.ようやく日本語版も英語版においつきました.使用言語はEiffel*3長所短所はあれど,オブジェクト指向の専門家を自認するなら,一度は読んでおくべきだろう.


オブジェクト指向における再利用のためのデザインパターン

オブジェクト指向における再利用のためのデザインパターン

Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series)

Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series)

必携.いわゆる『GoFデザインパターン』.オブジェクト指向プログラミング言語を使う実践的開発者の必須科目.これを知らないOOP開発者はモグリだ*4.上記二つの書籍に比べて,遙かに実践的な書で,開発者にとっては今や必要不可欠.経験の少ない初心者には理解不能だけれど,一日も早く手にとってもらいたい本の一つ.
訳書改訂版と初版があるが,訳書改訂版にはパターン部分のHTMLとサンプルコードを収録したCDが付くので,訳書改訂版の方が絶対お勧め.


Head Firstデザインパターン ―頭とからだで覚えるデザインパターンの基本

Head Firstデザインパターン ―頭とからだで覚えるデザインパターンの基本

Head First Design Patterns: A Brain-Friendly Guide

Head First Design Patterns: A Brain-Friendly Guide

デザインパターンの入門書.パラパラとめくった感じでは,上記GoF本の副読本として良さそうな気がする*5.人を選ぶと思うので購入する時はそのつもりで.


リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

  • 作者: マーチンファウラー,Martin Fowler,児玉公信,平澤章,友野晶夫,梅沢真史
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/05
  • メディア: 単行本
  • 購入: 94人 クリック: 3,091回
  • この商品を含むブログ (312件) を見る
Refactoring: Improving the Design of Existing Code (Addison-Wesley Object Technology Series)

Refactoring: Improving the Design of Existing Code (Addison-Wesley Object Technology Series)

必携.これを知らない以下同文.外部仕様を変更せずに内部実装を洗練させる手法.OOPの基本である「カプセル化」や「仕様と実装の分離」を前提としているので,そういう実装になっていないコードをリファクタリングすることは不可能に近い.いかにリファクタリングでも「銀の弾丸」ではないのだ.


アジャイルソフトウェア開発の奥義

アジャイルソフトウェア開発の奥義

アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技

アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技

Agile Software Development, Principles, Patterns, and Practices (Alan Apt Series)

Agile Software Development, Principles, Patterns, and Practices (Alan Apt Series)

アジャイル開発全体の入門書.プログラミングを知らない人には良さそう.*6


デザインパターンとともに学ぶオブジェクト指向のこころ (Software patterns series)

デザインパターンとともに学ぶオブジェクト指向のこころ (Software patterns series)

Design Patterns Explained: A New Perspective on Object-Oriented Design (Software Patterns Series)

Design Patterns Explained: A New Perspective on Object-Oriented Design (Software Patterns Series)

同じくOOPの入門書.良書の一つ.


オブジェクト指向開発の落とし穴

オブジェクト指向開発の落とし穴

  • 作者: ブルース・F.ウェブスター,Bruce F. Webster,細井拓史
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/04
  • メディア: 単行本
  • 購入: 2人 クリック: 37回
  • この商品を含むブログ (15件) を見る
Pitfalls of Object-Oriented Development

Pitfalls of Object-Oriented Development

オブジェクト指向開発や開発方法論の「べからず集」みたいなもん.少し古い本なのだが,未だに通用する部分があるのが悲しい現実だ.

基礎的なJava参考書

これは「プログラミング言語Java (The Java Series)」「Effective Java プログラミング言語ガイド」で決まりかな.

プログラミング言語Java (The Java Series)

プログラミング言語Java (The Java Series)

  • 作者: ケン・アーノルド,ジェームズゴスリン,デビッドホームズ,柴田芳樹
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2007/04
  • メディア: 単行本
  • 購入: 38人 クリック: 1,044回
  • この商品を含むブログ (71件) を見る
Java™ Programming Language, The (Java Series)

Java™ Programming Language, The (Java Series)

Javaの原典.CでいうK&Rアーキテクチャにおけるヘネシー&パターソン.Java言語を勉強するならこの本で決まり.Java5対応の第4版.
第3版はJava2ベースなので,古いアプリをメンテする時以外は使い道はないだろう.


Javaチュートリアル 第4版 (The Java Series)

Javaチュートリアル 第4版 (The Java Series)

  • 作者: シャロンザクァワ,ジャコブロイヤル,アイザックラビノビッチ,マークホーバ,トーマスリーサ,スコットホンメル,Sharon Zakhour,Isaac Rabinovitch,Thomas Risser,Jacob Royal,Scott Hommel,Mark Hoeber,安藤慶一
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2007/11
  • メディア: 単行本
  • 購入: 12人 クリック: 505回
  • この商品を含むブログ (8件) を見る
The Java Tutorial: A Short Course On The Basics (JavaSeries)

The Java Tutorial: A Short Course On The Basics (JavaSeries)

  • 作者: Sharon Hommel, Scott Royal, Jacob Rabinovitch, Isaac Risser, Tom Hoeber, Mark Zakhour
  • 出版社/メーカー: Prentice Hall
  • 発売日: 2006/09/29
  • メディア: ペーパーバック
  • 購入: 1人 クリック: 3回
  • この商品を含むブログ (2件) を見る


Head First Java 第2版 ―頭とからだで覚えるJavaの基本

Head First Java 第2版 ―頭とからだで覚えるJavaの基本

Head First Java: A Brain-Friendly Guide

Head First Java: A Brain-Friendly Guide

入門書.全部目を通したわけではないが,パラパラと見た感じでは他の入門書と違って「正しいことが書いてある」という感じだ*7.上記「プログラミング言語Java」の副読本という位置付けでなら良さそうに思える.人を選ぶと思うので,購入時はそのつもりで.
なおHead Firstシリーズは洋書でなら「Head First Servlets & Jsp: Passing the Sun Certified Web Component Developer Exam (A Brain Friendly Guide)」「Head First EJB: Passing the Sun Certified Business Component Developer Exam」など,多数出ているそうだ.洋書としてはこういう初心者向け入門書は珍しいのかも.


Java 2 Standard Edition 5.0 Tiger―拡張された言語仕様について

Java 2 Standard Edition 5.0 Tiger―拡張された言語仕様について

プログラミング言語Java第3版」のJava5のための補遺.良くも悪くも上記第4版の登場で価値は半減した.


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

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

Effective Java 第2版 (The Java Series)

Effective Java 第2版 (The Java Series)

Effective Java (Java Series)

Effective Java (Java Series)

Javaプログラミングイディオムの名著.中級レベル以上向け.(Java5対応の)原著第二版(ISBN:0321356683)が今年中には出る予定.*8
この本の内容を理解してない人はJava開発者としては二流以下です.

追記:原書第二版も登場.差し替え.


Java Puzzlers 罠、落とし穴、コーナーケース

Java Puzzlers 罠、落とし穴、コーナーケース

Java™ Puzzlers: Traps, Pitfalls, and Corner Cases

Java™ Puzzlers: Traps, Pitfalls, and Corner Cases

Java言語の重箱の隅をつついて楽しむパズル.これは同時にべからず集でもある.


Java並行処理プログラミング ―その「基盤」と「最新API」を究める―

Java並行処理プログラミング ―その「基盤」と「最新API」を究める―

Java Concurrency in Practice

Java Concurrency in Practice

  • 作者: Brian Goetz,Tim Peierls,Joshua Bloch,Joseph Bowbeer,David Holmes,Doug Lea
  • 出版社/メーカー: Addison-Wesley Professional
  • 発売日: 2006/05/09
  • メディア: ペーパーバック
  • 購入: 7人 クリック: 14回
  • この商品を含むブログ (22件) を見る

Javaでのconcurrent and parallel programmingの良書.中級以上向け.Javaのマルチスレッドは原則concurrentなので,マルチスレッドプログラミングを行う者にとっては基礎知識.ただしこの本自体は扱っている内容もあって極めて難解で初心者向けではない.


Java言語仕様 第3版 (The Java Series)

Java言語仕様 第3版 (The Java Series)

The Java Language Specification (Java Series)

The Java Language Specification (Java Series)

言語仕様.Javaコンパイラ作成者,言語設計者以外では,パズラーを解く時くらいしか役にたつ時はない.


Java仮想マシン仕様 (The Java series)

Java仮想マシン仕様 (The Java series)

  • 作者: ティムリンドホルム,フランクイェリン,Tim Lindholm,Frank Yellin,村上雅章
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2001/05
  • メディア: 単行本
  • 購入: 5人 クリック: 98回
  • この商品を含むブログ (35件) を見る
Java™ Virtual Machine Specification, The (Java Series)

Java™ Virtual Machine Specification, The (Java Series)

VM仕様.以下同文.バイトコードやクラスローダなどの仕様もこれに含まれる.普通の開発者にとっては全くの無用の長物.


JavaWorldメモリアルDVD

JavaWorldメモリアルDVD

古いJavaWorldの全記事のPDFを収録したDVD.書籍はおまけ.

Java 応用/各種API

Java Cookbook

Java Cookbook

良くも悪くもサンプルコード集.ただしJava開発者必携.第二版がJava5対応.日本語版は初版しかない模様.Web上でもサンプルコードは転がっているが,残念なことに玉石混淆でJava5対応となるとかなり少ない.しかも悪貨が良貨を駆逐して久しい.今となっては,良いサンプルを探すのに非常に時間がかかるのだ.

Jakarta Commonsクックブック ―Javaプロジェクト必須のレシピ集

Jakarta Commonsクックブック ―Javaプロジェクト必須のレシピ集

以下同文.オライリーの原書には他にも様々なクックブックが出ているらしいので,自分の利用する分野のものは,前もって調べて揃えておくと良い.


Javaパフォーマンスチューニング 第2版

Javaパフォーマンスチューニング 第2版

よほど下手なコードを書かない限り滅多に必要とはならないが,教養としてもっておくべき.


JavaによるExtreme Programmingクックブック―アジャイル開発のためのレシピ集

JavaによるExtreme Programmingクックブック―アジャイル開発のためのレシピ集

各種ツールのテクニック等.


Core Servlets and JavaServer Pages: Volume 1: Core Technologies (Sun Core Series)

Core Servlets and JavaServer Pages: Volume 1: Core Technologies (Sun Core Series)

コア・サーブレット&JSP―Javaサーバ技術によるWeb開発

コア・サーブレット&JSP―Javaサーバ技術によるWeb開発

ServletJSP開発の良書.初級〜中級程度向け.初版なら日本語訳あり.Vol2はずっと前から近日出版予定のまま.*9今となっては利用する機会はあまりないかもしれないが,Servletの基本も知らずに行うWeb開発は危険だ.


WEB+DB PRESS 総集編 [Vol.1~36]

WEB+DB PRESS 総集編 [Vol.1~36]


STRUTS・イン・アクション

STRUTS・イン・アクション

Struts in Action: Building Web Applications With the Leading Java Framework

Struts in Action: Building Web Applications With the Leading Java Framework

  • 作者: George Franciscus,Cedric Dumoulin,David Winterfeldt,Ted Husted
  • 出版社/メーカー: Manning Pubns Co
  • 発売日: 2002/11
  • メディア: ペーパーバック
  • 購入: 1人 クリック: 2回
  • この商品を含むブログ (1件) を見る


HIBERNATE イン アクション

HIBERNATE イン アクション

Hibernate in Action

Hibernate in Action


JUnitイン・アクション

JUnitイン・アクション

Junit in Action

Junit in Action

各種How to物."in Action"系の書籍は原書なら他にも多数出版されている.


オブジェクト指向プログラミング言語

Java以外のOOP言語を知ることも,オブジェクト指向プログラミングへの理解を深める上でとても重要です.

以下にあげる書籍の中でも,「C++ Coding Standards―101のルール、ガイドライン、ベストプラクティス (C++ in‐depth series)」はC++以外のOOP言語開発者も読んでおいて損はない良書です.

Ruby

プログラミングRuby 第2版 言語編

プログラミングRuby 第2版 言語編

プログラミングRuby 第2版 ライブラリ編

プログラミングRuby 第2版 ライブラリ編

Programming Ruby: The Pragmatic Programmer's Guide, Second Edition

Programming Ruby: The Pragmatic Programmer's Guide, Second Edition

Rubyの解説書.あんまり詳しくないのでコメントはパス.


RailsによるアジャイルWebアプリケーション開発 第2版

RailsによるアジャイルWebアプリケーション開発 第2版

Agile Web Development With Rails (Pragmatic Programmers)

Agile Web Development With Rails (Pragmatic Programmers)

同じくRuby on Rails本.洋書が第二版で和書が初版だったと思う.
追記:二版の和書も出ていたので差し替え.


Ruby Pocket Reference (Pocket Reference (O'Reilly))

Ruby Pocket Reference (Pocket Reference (O'Reilly))

C++

C++の設計と進化

C++の設計と進化


C++ Coding Standards―101のルール、ガイドライン、ベストプラクティス (C++ in‐depth series)

C++ Coding Standards―101のルール、ガイドライン、ベストプラクティス (C++ in‐depth series)

  • 作者: ハーブサッター,アンドレイアレキサンドレスク,浜田光之,Herb Sutter,Andrei Alexandrescu,浜田真理
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2005/10
  • メディア: 単行本
  • 購入: 20人 クリック: 383回
  • この商品を含むブログ (100件) を見る
C++ Coding Standards: 101 Rules, Guidelines, and Best Practices (C++ In-Depth Series)

C++ Coding Standards: 101 Rules, Guidelines, and Best Practices (C++ In-Depth Series)

C++のコーディングの基本.初級〜中級向けだが,上級者でも基本の再確認に有益.なかなかの良書で,OOPの入門としてもよくまとまっており,C++開発者以外にもお薦めできる*10


Effective C++ 原著第3版 (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)

Effective C++ 原著第3版 (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)

Effective C++: 55 Specific Ways to Improve Your Programs and Designs (Addison-Wesley Professional Computing Series)

Effective C++: 55 Specific Ways to Improve Your Programs and Designs (Addison-Wesley Professional Computing Series)

C++のべからず集.これを知らないC++開発者は論外と.


新訂版 More Effective C++ (AddisonーWesley professional co)

新訂版 More Effective C++ (AddisonーWesley professional co)

  • 作者: スコット・メイヤーズ,安村通晃,伊賀聡一郎,飯田朱美,永田周一
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2007/06/29
  • メディア: 単行本(ソフトカバー)
  • 購入: 8人 クリック: 129回
  • この商品を含むブログ (44件) を見る

More Effective C++―最新35のプログラミング技法 (ASCII Addison Wesley Programming Series)の改訂版らしいので差し替え.もちろん未読.


ケント・ベックのSmalltalkベストプラクティス・パターン―シンプル・デザインへの宝石集

ケント・ベックのSmalltalkベストプラクティス・パターン―シンプル・デザインへの宝石集

  • 作者: ケントベック,Kent Beck,梅沢真史,皆川誠,小黒直樹,森島みどり
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2003/03
  • メディア: 単行本
  • 購入: 7人 クリック: 94回
  • この商品を含むブログ (55件) を見る

プログラミング一般

プログラミング作法

プログラミング作法

Practice of Programming, The (Addison-Wesley Professional Computing Series)

Practice of Programming, The (Addison-Wesley Professional Computing Series)

名著.プログラミングそのものの入門書.普通はプログラミングを経験していれば誰でも知ってるはずのこと.これを知らない人にとっては目から鱗.まともな教育を受けてない人にとっては必読の書.


Code Reading―オープンソースから学ぶソフトウェア開発技法

Code Reading―オープンソースから学ぶソフトウェア開発技法

Code Quality ~コードリーディングによる非機能特性の識別技法~

Code Quality ~コードリーディングによる非機能特性の識別技法~

Write Great Code〈Vol.1〉ハードウェアを知り、ソフトウェアを書く

Write Great Code〈Vol.1〉ハードウェアを知り、ソフトウェアを書く

Write Great Code〈Vol.2〉低いレベルで考え高いレベルで書く

Write Great Code〈Vol.2〉低いレベルで考え高いレベルで書く

Code Craft ~エクセレントなコードを書くための実践的技法~

Code Craft ~エクセレントなコードを書くための実践的技法~


もしあなたがプログラミングの初心者であるというのならば,この他にも様々な言語を学習するのは意味のあることだ.ここに一例を挙げておく.*11

番外

この章だけ別にしても良い気がしてきた.

人月の神話―狼人間を撃つ銀の弾はない (Professional computing series (別巻3))

人月の神話―狼人間を撃つ銀の弾はない (Professional computing series (別巻3))

Mythical Man-Month, The: Essays on Software Engineering, Anniversary Edition

Mythical Man-Month, The: Essays on Software Engineering, Anniversary Edition

ソフトウエア開発やプロジェクトマネジメントの古典.「銀の弾丸はない」とか「ブルックスの法則」とか「ソフトウエアの持つ本質的な複雑さ」の元ネタのハズ.


Joel on Software

Joel on Software

関連:http://local.joelonsoftware.com/mediawiki/index.php/Japanese


ソフトウエア開発 55の真実と10のウソ

ソフトウエア開発 55の真実と10のウソ


UML モデリングのエッセンス 第3版 (Object Oriented SELECTION)

UML モデリングのエッセンス 第3版 (Object Oriented SELECTION)

UML Distilled: A Brief Guide to the Standard Object Modeling Language (Addison-Wesley Object Technology Series)

UML Distilled: A Brief Guide to the Standard Object Modeling Language (Addison-Wesley Object Technology Series)

マーティンファウラー御大によるUML入門書.UMLの欠点,UMLですべきでないことを知りたい人にお奨め.


ユースケース実践ガイド―効果的なユースケースの書き方 (OOP Foundations)

ユースケース実践ガイド―効果的なユースケースの書き方 (OOP Foundations)

Writing Effective Use Cases (Agile Software Development Series)

Writing Effective Use Cases (Agile Software Development Series)

あんまり詳しくないけど,ユースケースの名著らしい.


パターンハッチング―実践デザインパターン (Software patterns series)

パターンハッチング―実践デザインパターン (Software patterns series)

  • 作者: ジョンブリシデス,John Vlissides,永田渉,長瀬嘉秀
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 1999/11
  • メディア: 単行本
  • 購入: 1人 クリック: 5回
  • この商品を含むブログ (10件) を見る

ちょっと古いが,デザインパターンを誤解している人は必見.理解している人にとっては雑学.オブジェクト指向プログラミング的/デザインパターン的な考え方」といものが垣間見える良書.

関連:

*1:amazonアフィリエイト設定記念.:-)
Google Adsense設定記念でもある

*2:和書はAmazonで品切れになっていた.ひょっとしたら第三版が翻訳中かも?

*3:おそらく「エッフェル」と読む.エッフェル塔のエッフェル.

*4:理解さえしていればいいので,既にマスターした人ならば,必ずしもこの本を読む必要はない.復習がてらに目を通すべきだとはおもうけどね.

*5:GoF本は紛れもなく歴史的名著だが,初心者に理解しにくいのも事実なのだ.

*6:第2版登場.リンク追加.

*7:初心者向けの入門書では,分かりやすいようにかみ砕いて説明されてはいるものの,内容の記述が不正確なものが目立つ.

*8:去年も同じことを言ってたな.

*9:未確認だが,これは出たらしい.

*10:"coding standard"を「コーディング規約」と訳すこともあるようだが,私は賛成しかねる."coding convention"(しきたり,因習,協定)が「コーディング規約」,"coding standard"(標準規格,規範)は「コーディング標準」と使い分ける方が良いと思う.しかもこのstandardという単語は"level of quality"を意味するので,「単に標準的になっている」というよりは「広く一般的に受け入れられる(高い)品質レベル」と捕らえるべきものと思う.

*11:あくまで一例.