give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

オブジェクト指向関連書籍リスト

自分はどれくらいオブジェクト指向について勉強してきたんだろう?というのを整理する意味で、これまでに読んできたオブジェクト指向関連の本をまとめてみます。


エンタープライズ アプリケーションアーキテクチャパターン (Object Oriented SELECTION)

エンタープライズ アプリケーションアーキテクチャパターン (Object Oriented SELECTION)

  • 作者: マーチン・ファウラー,長瀬嘉秀,株式会社テクノロジックアート
  • 出版社/メーカー: 翔泳社
  • 発売日: 2005/04/21
  • メディア: 大型本
  • 購入: 10人 クリック: 635回
  • この商品を含むブログ (143件) を見る
企業向けシステムをオブジェクト指向で設計するときに有用な本です。ドメインロジックの3パターンは必ず押さえておきたいですね。


実践UML 第3版 オブジェクト指向分析設計と反復型開発入門

実践UML 第3版 オブジェクト指向分析設計と反復型開発入門

  • 作者: クレーグ・ラーマン,依田智夫,今野睦,依田光江
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2007/11/12
  • メディア: 単行本(ソフトカバー)
  • 購入: 8人 クリック: 179回
  • この商品を含むブログ (29件) を見る
GRASPパターンなど、クラス設計時の有用なパターンが載っています。でも本全体としてはなんかわかりにくい気がします・・・。


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

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

パッケージ設計のルールを説明した本として有名。今は第2版が出ているようです。


UMLによるエンタープライズJava開発 (Object Oriented SELECTION)

UMLによるエンタープライズJava開発 (Object Oriented SELECTION)

  • 作者: 平澤章,笠充彦,船越隆行,早川秀利,C.T.アーリントン,C.T. Arrington,ウルシステムズ株式会社
  • 出版社/メーカー: 翔泳社
  • 発売日: 2002/03/20
  • メディア: 大型本
  • 購入: 2人 クリック: 31回
  • この商品を含むブログ (7件) を見る
サンプルプロジェクトを通じて設計から開発までを説明してくれるので、非常に具体的で分かりやすいです。ただし実装技術はかなり古く、現在では使えないでしょう。


入門 オブジェクト指向設計―変更に強く生産性が高いシステムを

入門 オブジェクト指向設計―変更に強く生産性が高いシステムを

これも具体的に設計方法を解説してくれる本です。読みやすいので初心者におすすめかもしれません。


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

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

  • 作者: エリックガンマ,ラルフジョンソン,リチャードヘルム,ジョンブリシディース,Erich Gamma,Ralph Johnson,Richard Helm,John Vlissides,本位田真一,吉田和樹
  • 出版社/メーカー: ソフトバンククリエイティブ
  • 発売日: 1999/10
  • メディア: 単行本
  • 購入: 21人 クリック: 711回
  • この商品を含むブログ (212件) を見る
いわゆるGoF本。しかしUMLを使っていなかったり、言語がC++だったりして、初心者には分かりにくいいと思います。


増補改訂版Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門

オリジナル本に比べてかなり分かりやすいと思うので、デザインパターンの入門者にはこっちの方がおすすめです。


増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編

増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編

マルチスレッドプログラミングに関するパターン本ですが、オブジェクトが協調し合う様子などはオブジェクト指向プログラミングを理解する上でも有用だと思います。


ソフトウェアアーキテクチャ―ソフトウェア開発のためのパターン体系

ソフトウェアアーキテクチャ―ソフトウェア開発のためのパターン体系

  • 作者: F.ブッシュマン,H.ローネルト,M.スタル,R.ムニエ,P.ゾンメルラード,Frank Buschmann,Hans Rohnert,Michael Stal,Regine Meunier,Peter Sommerlad,金沢典子,桜井麻里,千葉寛之,水野貴之,関富登志
  • 出版社/メーカー: 近代科学社
  • 発売日: 2000/12
  • メディア: 単行本
  • 購入: 15人 クリック: 448回
  • この商品を含むブログ (54件) を見る
レイヤーパターンとかMVCパターンとかが載っています。やはり外せない一冊なのでは?


アナリシスパターン―再利用可能なオブジェクトモデル (Object Technology Series)

アナリシスパターン―再利用可能なオブジェクトモデル (Object Technology Series)

  • 作者: マーチンファウラー,Martin Fowler,堀内一,友野晶夫,児玉公信,大脇文雄
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2002/04
  • メディア: 単行本
  • 購入: 7人 クリック: 89回
  • この商品を含むブログ (70件) を見る
ビジネスルールをクラス設計に変換する際に有用な本・・・のはずなんですが、非常に難解です。何度読んでもおいらは途中で挫折してしまいます。


アンチパターン―ソフトウェア危篤患者の救出

アンチパターン―ソフトウェア危篤患者の救出

  • 作者: W.J.ブラウン,3,Hays W. McCormick,Raphael C. Malveau,Thomas J. Mowbray,William J. Brown,岩谷宏
  • 出版社/メーカー: ソフトバンククリエイティブ
  • 発売日: 2002/07
  • メディア: 単行本
  • クリック: 35回
  • この商品を含むブログ (25件) を見る
ダメダメなクラス設計の例とかが載っています。


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

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

  • 作者: ブルース・F.ウェブスター,Bruce F. Webster,細井拓史
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/04
  • メディア: 単行本
  • 購入: 2人 クリック: 37回
  • この商品を含むブログ (15件) を見る
こっちもアンチパターン本の一種。オブジェクト指向プログラミングは銀の弾丸ではないということも理解しておきましょう。


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

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

  • 作者: マーチンファウラー,Martin Fowler,児玉公信,平澤章,友野晶夫,梅沢真史
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/05
  • メディア: 単行本
  • 購入: 94人 クリック: 3,091回
  • この商品を含むブログ (312件) を見る
ダメなクラスをどうやってキレイに仕立て直すのか?というパターンと具体例を勉強する事ができます。



正しく学ぶソフトウエア設計 ─オブジェクト指向分析/設計を根本から理解する (日経BPパソコンベストムック)

正しく学ぶソフトウエア設計 ─オブジェクト指向分析/設計を根本から理解する (日経BPパソコンベストムック)

  • 作者: 天野勝,平澤章,平鍋健児,矢沢久雄,山本啓二,日経ソフトウエア
  • 出版社/メーカー: 日経BP社
  • 発売日: 2005/10/07
  • メディア: ムック
  • 購入: 1人 クリック: 23回
  • この商品を含むブログ (15件) を見る
コンピュータ雑誌の特集記事を集めた本ですが、オブジェクト指向初心者向けの基本事項がうまくまとめられていると思います。


オブジェクト指向入門 (ASCII SOFTWARE SCIENCE Programming Paradigm)

オブジェクト指向入門 (ASCII SOFTWARE SCIENCE Programming Paradigm)

契約によるプログラミング、表明、事前条件、事後条件といった有名ネタが載っている本です。が、ほとんどの人はこの本の分厚さとEiffelという聞き慣れないプログラミング言語のせいで、読む気を失うでしょう・・・。
ちなみに現在は第2版が発行されています。


UMLによるJavaオブジェクト設計

UMLによるJavaオブジェクト設計

  • 作者: ピーターコード,マークメイフィールド,Peter Coad,Mark Mayfield,依田光江,依田智夫,今野睦
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/01
  • メディア: 単行本
  • クリック: 11回
  • この商品を含むブログ (12件) を見る
継承のチェックポイントのあたりは有用です。「オブジェクト指向 = 継承 」と勘違いして継承を乱用してしまいがちな人は多いので・・・。


オブジェクト脳のつくり方―Java・UML・EJBをマスターするための究極の基礎講座

オブジェクト脳のつくり方―Java・UML・EJBをマスターするための究極の基礎講座

賛否両論が分かれる本みたいですが、おいらは結構好きです。面白くて読みやすい本なので、初心者には良いのではないかと思います。ただし後半のEJBを使ったサンプルプロジェクトは突如難解になりますが・・・。


自由自在Squeakプログラミング

自由自在Squeakプログラミング

Smalltalkの勉強用に読んだ本ですが、この本を読んでSmalltalkが好きになりました。C言語ライクなJavaやC#とかと違って、純粋にオブジェクト指向向けに設計された言語なので、変な既成観念にとらわれずオブジェクト指向を勉強できます。特にオブジェクトにメッセージを送信するという感覚がSmalltalkを知って分かりやすくなりました。


Mac OS X Cocoaプログラミング

Mac OS X Cocoaプログラミング

iPhoneアプリ開発で最近有名になってきたObjective-Cという言語を使ってMacアプリを開発しています。Objective-CはC言語の拡張版でありながら、Smalltalkの影響を強く受けている点が興味深いです。


JavaScript

JavaScript

  • 作者: デイビッドフラナガン,David Flanagan,村上列,垰井正雄,安藤進
  • 出版社/メーカー: オライリー・ジャパン
  • 発売日: 2000/12
  • メディア: 単行本
  • 購入: 2人 クリック: 60回
  • この商品を含むブログ (102件) を見る
Java Scriptでオブジェクト指向プログラミングができることを学んだ本です。またJavaやC#のインタフェースでやろうとしていることはスクリプト言語の動的なメソッド解決とイコールなんだということも理解できました。ちなみに現在は第5版が発行されています。


プログラミングRuby―達人プログラマーガイド

プログラミングRuby―達人プログラマーガイド

  • 作者: デビットトーマス,アンドリューハント,まつもとゆきひろ,David Thomas,Andrew Hunt,田和勝
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2001/09/01
  • メディア: 単行本
  • 購入: 6人 クリック: 79回
  • この商品を含むブログ (92件) を見る
数値なんかも含めてすべてがオブジェクトになっている点やブロック、クロージャ、モジュールの存在などがRubyのユニークなところでしょうか。
C#やJavaも最近は似たような言語仕様を持ち始めたようですが。
この本も今は第2版が出ています。


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

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

RailsではMVCやActive Recordパターンを使って設計されています。オブジェクト指向設計を学ぶためにRailsを研究してみるのも良いかもしれません。


HIBERNATE イン アクション

HIBERNATE イン アクション

  • 作者: Christain Bauer,Gavin Ki,倉橋央,勝嶌和彦
  • 出版社/メーカー: ソフトバンク クリエイティブ
  • 発売日: 2005/12/28
  • メディア: 大型本
  • 購入: 3人 クリック: 109回
  • この商品を含むブログ (35件) を見る
O/Rマッピングツールの詳細な解説本ですが、いわゆる「インピーダンスミスマッチ問題」を理解するのにも役立つ一冊だと思います。


オブジェクト指向に特化した本ではありませんが、システムを正しく設計するためのノウハウはオブジェクト指向を使ったプログラムの土台として不可欠なはずです。
ここではVol.2を紹介していますが、Vol.2〜Vol.5のすべてを読む必要があります。


実践!ソフトウェアアーキテクチャ ~VisualStudioとASP.NETによる業務システム開発方法~ (.NET TECHNOLOGY)

実践!ソフトウェアアーキテクチャ ~VisualStudioとASP.NETによる業務システム開発方法~ (.NET TECHNOLOGY)

あえてオブジェクト指向を全面採用せず、テーブルモジュールパターンで実装しているシステムの構築例が載っています。これはこれで設計時のトレードオフを検討する際に役立つと思います。


その他ここでは具体的な書籍名はあげませんが、オブジェクト指向が使えるらしい、という噂を聞いて勉強したプログラミング言語を挙げておきます。

C++
必然性がないならC#やJavaを使いたいですね。言語仕様が豊富すぎたり、メモリ管理を明示的に行う必要があったりする点がしんどいかも。
Python
オブジェクト指向が使えるけどRubyほど徹底されていない気がしました。ただ正しいインデントを強制する言語仕様は好きかも。
VB.NET
文法はVBに似ていますが、従来のVBとは全く違っていますね。VBの皮をかぶった.NET言語といった感じです。昔のVBを知っている人間としては奇妙な感じがするのでむしろ使いたくないです。。。
Delphi (Object Pascal)
今となってはマイナーな言語ですが、VBとDelphi、どちらか選べといわれたらオブジェクト指向が使えるDelphiを選ぶかも。
PHP
クラスを定義するときの文法とかがなんかJavaっぽい、と思った以外あまり印象に残っていないかも。
Perl
言語仕様についてはまだあまり詳しく調べていませんが、Perlでガンガンがオブジェクト指向プログラミングする人って何割ぐらいいるんでしょう??
D言語
数年前に本を買って読みましたが、未だにあまり流行っている気がしませんね。本にも載っていた通り、色んな言語のいいとこどりをしようとした言語仕様だと思いました。