【2021年】オブジェクト指向プログラミング本「最新・人気のおすすめの10冊」

現代のプログラミングでは欠かせない「オブジェクト指向プログラミング(OOP)」。

「オブジェクト指向」という概念はなんとなくはわかるものの、どういった粒度でクラス化するか、継承や委譲によるクラス設計をどうすべきか、クラス間関連を疎に保つには・・など、具体的な技術・考え方は学ばないとわからないもの。

こちらでは、オブジェクト指向プログラミングに関する人気の書籍を紹介していきます。

 
Kindle Paperwhite
発売日 2018/11/07
通常 13,980円
現在 13,980円

 

Contents

 

Kindle Unlimited 1ヶ月無料

kindle_unlimited_sale
 
  • 1ヶ月無料で読み放題
  • 1ヶ月以内でも解約可能
  • 解約後も1ヶ月まで利用可


    

オブジェクト指向プログラミングの参考書「人気ランキング 20冊」

オブジェクト指向プログラミングの今売れ筋本を人気ランキングで一覧したのが以下。

ランキングは日々更新されていますので、最新の人気が反映されています。

 

(2021/05/18 更新)
Rank製品評価
1
(5)
総評価数 2件
2
(4.4)
総評価数 79件
3
オブジェクト指向でなぜつくるのか 第2版
発売日 2014/03/05
通常    2,640円
単行本   2,640円 (+26pt)
Kindle   2,376円 (+24pt)
Kindle Unlimited(読み放題)
(4.5)
総評価数 129件
4
(4)
総評価数 44件
5
Java言語プログラミングレッスン 第3版(下) オブジェクト指向を始めよう...
発売日 2012/11/14
通常    2,640円
単行本   2,640円 (+37pt)
Kindle   1,320円 (+13pt)
(4.2)
総評価数 16件
6
PHP本格入門[上] ~プログラミングとオブジェクト指向の基礎からデータベース連携まで...
発売日 2020/08/03
通常    3,938円
単行本   3,938円 (+39pt)
Kindle   3,741円 (+66pt)
(4.1)
総評価数 12件
7
新わかりやすいJava オブジェクト指向徹底解説
発売日 2018/11/08
通常    3,278円
単行本   3,278円 (+33pt)
Kindle   2,950円 (+30pt)
(4.1)
総評価数 20件
8
(4.2)
総評価数 16件
9
新・明解C++で学ぶオブジェクト指向プログラミング
発売日 2018/09/15
通常    3,300円
単行本   3,300円 (+579pt)
Kindle   1,650円 (+17pt)
(3.9)
総評価数 8件
10
(3.7)
総評価数 4件
11
(4.3)
総評価数 38件
12
(3.8)
総評価数 44件
13
Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで...
発売日 2017/04/18
通常    3,278円
単行本   3,278円 (+33pt)
Kindle   3,278円 (+33pt)
(3.6)
総評価数 20件
14
オブジェクト指向のこころ (SOFTWARE PATTERNS SERIES)
発売日 2014/03/11
通常    4,180円
単行本   4,180円 (+42pt)
(4.3)
総評価数 32件
15
オブジェクト指向の考え方 5th Edition (impress top gear)
発売日 2020/10/23
通常    3,740円
単行本   3,740円 (+37pt)
Kindle   3,553円 (+65pt)
(2.4)
総評価数 3件
16
(3.8)
総評価数 6件
17
オブジェクト指向とエージェント―基礎と応用
発売日 2001/07/01
通常    4,730円
単行本   4,730円 (+47pt)
(0)
総評価数 0件
18
オブジェクト指向のこころ (SOFTWARE PATTERNS SERIES)
発売日 2005/09/16
通常    2,950円
単行本   2,410円
(4.2)
総評価数 29件
19
(4.5)
総評価数 4件
20
(4.5)
総評価数 9件

 

以降でおすすめ・注目の本をピックアップしていきまっす。

ちなみに、Kindle版のある本ならサンプル送信で試し読み可能。大概目次まで見れるので、内容の概要もつかめるので、サンプル試読おすすめです。

 

オブジェクト指向プログラミングの本 人気の参考書 5冊

以下が今人気(売れ筋)のオブジェクト指向プログラミング関連の本の5冊の詳細です。

(2021/05/18 更新)
Rank製品評価
1
(5)
総評価数 2件
2
(4.4)
総評価数 79件
3
オブジェクト指向でなぜつくるのか 第2版
発売日 2014/03/05
通常    2,640円
単行本   2,640円 (+26pt)
Kindle   2,376円 (+24pt)
Kindle Unlimited(読み放題)
(4.5)
総評価数 129件
4
(4)
総評価数 44件
5
Java言語プログラミングレッスン 第3版(下) オブジェクト指向を始めよう...
発売日 2012/11/14
通常    2,640円
単行本   2,640円 (+37pt)
Kindle   1,320円 (+13pt)
(4.2)
総評価数 16件

 

「オブジェクト指向でなぜつくるのか 第3版 知っておきたいOOP、設計、アジャイル開発の基礎知識」

『オブジェクト指向でなぜつくるのか』10年ぶり、待望の改訂第3版!

「これからの10年も通用する基本」を、より多くの読者に身につけてもらうために改訂しました。

現在のソフトウエア開発技術の主役である、オブジェクト指向の全体像とそこに含まれる各技術を平易な文章で核心をズバリと解説します。
生産性のかぎを握るプログラム開発の主要技術をわかりやすく教えるという位置づけは変わりません。
そのうえで「今ドキのOOP」として人気言語(Java、Python、Ruby、JavaScrpit)の最新動向を新たに盛り込んでいます。
もちろん、すべての文章を細かく見直して現況に沿うよう更新しています。


本書の特徴
◆オブジェクト指向(OOP)の全体像と特徴がわかる
◆OOPのプログラムが動く仕組みが具体的にわかる
◆関数型言語の本質とOOPとの関係がわかる
◆アジャイル開発手法と実践手法がわかる

↓全て表示↑少なく表示
 
内容サンプル

(引用元Amazon)

 
内容サンプル

(引用元Amazon)

 
  

「オブジェクト指向UIデザイン──使いやすいソフトウェアの原理 (WEB+DB PRESS plusシリーズ)」

銀の弾丸、OOUI。操作性と開発効率の劇的な向上

オブジェクト指向ユーザーインターフェース(OOUI)とは、オブジェクト(もの、名詞)を起点としてUIを設計すること。タスク(やること、動詞)を起点としたUIに比べて、画面数が減って作業効率が高まり、また開発効率や拡張性も向上する、いわば「銀の弾丸」的な効果を持つ。ブログや雑誌記事などで大きな反響を得たこの設計手法について、前半部では理論やプロセスを詳説。そして後半部の「ワークアウト(実践演習)」では18の課題に読者がチャレンジ。実際に考え、手を動かし、試行錯誤をすることにより、OOUIの設計手法を体得できる。

↓全て表示↑少なく表示
 
内容サンプル

(引用元Amazon)

 
Users Voice
UIデザイナーです。友人たちが販売前からこぞって予約をしており、中身をみていませんでしたがものは試しに買ってみました。
今まで何となく感覚でわかっていたけど、言語化、構造化できなかったことがこれを見てものすごく納得!
また後半からは実際に手を動かすワークもあり、情報設計のプロセスを体系的に知ることができます。
設計段階から携わるポジションにいる全ての人に読んでほしい。 (参考:Amazon)

↓全て表示 ↑少なく表示
もの作りにおいて大事なことを再確認できました。 (参考:Amazon)

↓全て表示 ↑少なく表示
 
内容サンプル

(引用元Amazon)

 
  

「オブジェクト指向でなぜつくるのか 第2版」

●『オブジェクト指向でなぜつくるのか』7年ぶり、待望の改訂第2版!

現在のソフトウエア開発技術の主役である、オブジェクト指向の全体像とそこに含まれる各技術を
平易な文章で核心をズバリと解説します。

改訂第2版では、すべての文章を細かく見直して修正して、追加のトピックを記述したことに加えて、
多くの技術者の注目を集めている関数型言語の基本的な仕組みと思想を解説する
「第13章 関数型言語でなぜつくるのか」を新たに書き下ろしています。

◆オブジェクト指向の全体像を整理して解説
オブジェクト指向は、プログラミングをはじめ、フレームワーク、デザインパターン、UML、モデリング、
設計、アジャイル開発手法と、ソフトウエア開発全体を支える総合技術となっています。
本書では、オブジェクト指向の全体像とそこに含まれる各技術が何を目的として何を実現するのかを解説します。
併せて、混乱を避けるために全体を「プログラミング技術」と「汎用の整理術」の2つに分けて説明します。

◆OOPのプログラムが動く仕組みがわかる
OOPで書いたプログラムは、特有のメモリの使い方をします。
本書では静的領域、ヒープ領域、スタック領域に対して、クラスやインスタンスや変数がどのように配置され管理されて
いるのかを多数の図を使って説明します。これらを理解することで、自分の書いたプログラムがどのように
動いているのがイメージできるようになります。

◆関数型言語の本質がわかる
オブジェクト指向の「次」の技術として注目される関数型言語は、従来のプログラミング言語とは基本的な
仕組みや考え方が大きく異なっています。本書では関数型言語の仕組みを7つの特徴に分けて説明するとともに、
オブジェクト指向との関係についても述べます。

↓全て表示↑少なく表示
 
内容サンプル

(引用元Amazon)

 
Users Voice
グローバル変数の多用は予期せぬ変更で不具合を生む可能性が高い。
従来のプログラミングでは、グローバル変数が至るところから参照・変更されていた。
オブジェクト指向では、独立性の高い部品単位でプログラムを切り出しているのが特徴。
外部から参照・変更されないようにPrivateで隠したり、機能を共通化する継承や、外部からの利用され方を統一するポリモーフィズムという方法を採用し、影響範囲を限定・効率的な利用を促すことで、従来の課題に対する解決策としている。
また、オブジェクト指向を理解する上で必須のメモリ領域の仕組みやプログラムがどのようにして動作しているかの基本は非常に重要で、体系的に学べる良書であると感じた。

【中間コード】
異なるマシンでも同じプログラムを実行できるようにするための仕組み。
LinuxやWindowsでも同じJavaアプリケーションが動くのは、JavaVMが中間コードを解釈しているから。
.NETの場合はCLR。

【3種類のメモリ領域】
ヒープ領域は静的領域、スタック領域と密接に連携しながらアプリケーションを動かしている。

・静的領域
グローバル変数や実行コードを格納する領域。
アプリケーションでまとめて1つ確保している。
ヒープ領域で作成されたインスタンスがメソッドを呼び出すと、静的領域に保存してある実行コード内のメソッドを参照する仕組み。

・ヒープ領域
アプリケーションでまとめて1つ確保している。
プログラム開始時に確保されるメモリ領域で、アプリケーションの必要に応じてメモリの割当て・開放を行う。
インスタンス変数はここに格納され、複数のスレッドから共用される。
オブジェクト指向プログラミングはこのヒープ領域を大量に使って動くため、メモリの管理であるGCが大事。
ガーベッジコレクション(GC)はヒープ領域内にある確保されたメモリをチェックし、不要と判断したら開放していく。
不要と判断する基準としては静的領域やスタック領域から参照されているかどうかを見ている。(ヒープ領域内で完全に独立 or 循環参照している)

・スタック領域
インスタンスがメソッドを実行する単位(スレッド単位)毎に確保される。
サブルーチン動作に必要なメモリである、ローカル変数、引数、戻り値を確保している。
メモリへの格納単位はサブルーチン毎になるが数が多い。そこで、後入れ先出し方式を採用して効率化を図っている。(スタック領域と呼ばれる由来) (参考:Amazon)

↓全て表示 ↑少なく表示
Cを勉強している身ですが、いつかjavaでもやろうと思って「オブジェクト指向」がどのようなものか知ってみることにし、この本を見つけました。読んでみてわかったことは「オブジェクト指向」というのは名前に過ぎないということです。なんか難しく聞こえるただの名前です。中身を1つひとつ読んでいけば構造がわかっていきました。
とりあえず、すぐにでもjavaを始めようと思います。
「オブジェクト指向」の言語や手法を知るには素晴らしい本です。初心者の目線で説明してくれて、専門用語や仕組みもしっかり記載してあります。引用文献までしっかりと記載してあって、かなり時間をかけて本を作ったのだということが分かりました。☆5でフィニッシュです。 (参考:Amazon)

↓全て表示 ↑少なく表示
 
内容サンプル

(引用元Amazon)

 
オブジェクト指向でなぜつくるのか 第2版
発売日 2014/03/05
通常 2,640円
現在 2,376円
264円(10%)OFF!!

  

「現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法」

「ソースがごちゃごちゃしていて、どこに何が書いてあるのか理解するまでがたいへん」「1つの修正のために、あっちもこっちも書きなおす必要がある」「ちょっとした変更のはずが、本来はありえない場所にまで影響して、大幅なやり直しになってしまった」といったトラブルが起こるのは、ソフトウェアの設計に問題があるから。日本最大級となる60万件以上の求人情報サイト「イーキャリアJobSearch」の主任設計者であり、システム設計のベテランである著者が、コードの具体例を示しながら、良い設計のやり方と考え方を解説します。

↓全て表示↑少なく表示
 
Users Voice
オブジェクト指向を活用したドメイン駆動設計(DDD)が丁寧に解説されています。本全体を通じて、オブジェクト指向の良さを生かし、「オブジェクト指向らしく」設計するためにはどうしたら良いか、が具体的な場面を想定して展開されていきます。

その中でも、3層アーキテクチャを例に、従来の手続き型の設計と対比させながら、業務の関心事を分離してドメインモデルを設計していく手法と、リファクタリングも含め、DDDに必要な要素を解説している4章は特に読み応えがありました。

対象としている読者層への配慮からだと思われますが、「オブジェクト指向らしく」が具体例を交えながら丁寧に解説されるため、冗長と感じてしまう部分はあるかもしれません。反面、プログラミングに十分習熟していない私でも理解できる程に噛み砕かれており、オブジェクト指向を少し学んだ初級者~中級者レベル向きだと感じました。良書だと思います。 (参考:Amazon)

↓全て表示 ↑少なく表示
ドメインオブジェクトにビジネスロジックを凝集したいという考えは良いと思った。
ただ、この開発手法を実践するためにはメンバーに思想を周知する必要があるし、継続的なリファクタリングが必須になる。
そのため自由がきいて、かつ少人数のプロジェクトでないと実践するのは難しいかな、という印象。
実践するとしても、すべての領域にドメインの考えを適用する必要があるかは考える余地がある。

こうした考えがあることを知っておけば活かせる局面もあるはずなので、ドメイン駆動設計ってなに? という私には価値のある本だった。 (参考:Amazon)

↓全て表示 ↑少なく表示
 
  

「Java言語プログラミングレッスン 第3版(下) オブジェクト指向を始めよう」

オブジェクト指向にチャレンジしよう。

オブジェクト指向言語としてのJavaの特徴を平易に解説。
クラス、例外、継承、スレッド、パッケージ、コレクションなど、
Javaをマスターする上で必須といわれるオブジェクト指向の基礎が、初心者でも簡単に理解できます。

「上巻」では、Javaの基本的な文法を解説しましたが、
この「下巻」では、オブジェクト指向言語としてのJavaの特徴を中心に説明しています。
オブジェクト指向は、初心者がJavaをマスターをする上で大きな難関と言われていますが、
本書では、たくさんの図表やサンプルプログラムを用いて、
どんな初心者でも理解できるように、かみ砕いて解説しています。

併せて、Java SE 7での新たな変更である「Project Coin」についても簡潔に紹介しています。
本書を読み通すことで、最新のJava言語の基礎を確実にマスターすることができます。

↓全て表示↑少なく表示
 
内容サンプル

(引用元Amazon)

 
Users Voice
上下巻の分冊、上巻でJavaの基本文法(型や制御構文など)を学んだ後に、下巻でオブジェクト指向に入っていくという構成。
前の版のコメントで「分かりにくい」という意見もありましたが、基本文法は理解できたという人がオブジェクト指向でつまづくというのはよくある光景。
むしろ、オブジェクト指向の説明としては、これ以上ないくらいの丁寧さで分かりやすく説明されています。
「クラスとインスタンス」「スーパークラスとサブクラス」などといった、どうしても概念的な説明が主軸になる章のあとで、
それらの具体例として「例外」の章をもってくるなど、初学者がオブジェクト指向を理解するのに適切な順序の構成となっています。
また、リフレクションやアノテーションなど初学者が無理に理解する必要ないものまで網羅することは行わず、それらはJava言語仕様などに譲っています。
初学者が理解すべき内容を適切な順序で説明している姿勢は版を変えても一貫しており、そこが本書の一貫した価値です。

本書(上下巻)の例題・練習問題をきちんとこなして、それでも本書の内容が理解できないのであればプログラミングの勉強をやめた方がいいでしょう。
おそらく、他の本でも理解できません。読解力や数理能力などプログラミング以前の基礎が足りないものと思われます。 (参考:Amazon)

↓全て表示 ↑少なく表示
勤め先でも関連会社でもこの本をテキストとしてJavaの講義をしています。
内容もサンプルコードも充実しており、しっかりと基礎が身につきます。 (参考:Amazon)

↓全て表示 ↑少なく表示
 
内容サンプル

(引用元Amazon)

 
  

 

   

オブジェクト指向プログラミングの本 高評価のおすすめの5冊

以下が高評価のおすすめのオブジェクト指向プログラミング関連の本の5冊の詳細です。

(2021/05/18 更新)
Rank製品評価
1
オブジェクト指向でなぜつくるのか 第2版
発売日 2014/03/05
通常    2,640円
単行本   2,640円 (+26pt)
Kindle   2,376円 (+24pt)
Kindle Unlimited(読み放題)
(4.5)
総評価数 129件
2
(4.4)
総評価数 79件
3
(4.3)
総評価数 38件
4
オブジェクト指向のこころ (SOFTWARE PATTERNS SERIES)
発売日 2014/03/11
通常    4,180円
単行本   4,180円 (+42pt)
(4.3)
総評価数 32件
5
新わかりやすいJava オブジェクト指向徹底解説
発売日 2018/11/08
通常    3,278円
単行本   3,278円 (+33pt)
Kindle   2,950円 (+30pt)
(4.1)
総評価数 20件

 

「オブジェクト指向でなぜつくるのか 第2版」

●『オブジェクト指向でなぜつくるのか』7年ぶり、待望の改訂第2版!

現在のソフトウエア開発技術の主役である、オブジェクト指向の全体像とそこに含まれる各技術を
平易な文章で核心をズバリと解説します。

改訂第2版では、すべての文章を細かく見直して修正して、追加のトピックを記述したことに加えて、
多くの技術者の注目を集めている関数型言語の基本的な仕組みと思想を解説する
「第13章 関数型言語でなぜつくるのか」を新たに書き下ろしています。

◆オブジェクト指向の全体像を整理して解説
オブジェクト指向は、プログラミングをはじめ、フレームワーク、デザインパターン、UML、モデリング、
設計、アジャイル開発手法と、ソフトウエア開発全体を支える総合技術となっています。
本書では、オブジェクト指向の全体像とそこに含まれる各技術が何を目的として何を実現するのかを解説します。
併せて、混乱を避けるために全体を「プログラミング技術」と「汎用の整理術」の2つに分けて説明します。

◆OOPのプログラムが動く仕組みがわかる
OOPで書いたプログラムは、特有のメモリの使い方をします。
本書では静的領域、ヒープ領域、スタック領域に対して、クラスやインスタンスや変数がどのように配置され管理されて
いるのかを多数の図を使って説明します。これらを理解することで、自分の書いたプログラムがどのように
動いているのがイメージできるようになります。

◆関数型言語の本質がわかる
オブジェクト指向の「次」の技術として注目される関数型言語は、従来のプログラミング言語とは基本的な
仕組みや考え方が大きく異なっています。本書では関数型言語の仕組みを7つの特徴に分けて説明するとともに、
オブジェクト指向との関係についても述べます。

↓全て表示↑少なく表示
 
内容サンプル

(引用元Amazon)

 
Users Voice
グローバル変数の多用は予期せぬ変更で不具合を生む可能性が高い。
従来のプログラミングでは、グローバル変数が至るところから参照・変更されていた。
オブジェクト指向では、独立性の高い部品単位でプログラムを切り出しているのが特徴。
外部から参照・変更されないようにPrivateで隠したり、機能を共通化する継承や、外部からの利用され方を統一するポリモーフィズムという方法を採用し、影響範囲を限定・効率的な利用を促すことで、従来の課題に対する解決策としている。
また、オブジェクト指向を理解する上で必須のメモリ領域の仕組みやプログラムがどのようにして動作しているかの基本は非常に重要で、体系的に学べる良書であると感じた。

【中間コード】
異なるマシンでも同じプログラムを実行できるようにするための仕組み。
LinuxやWindowsでも同じJavaアプリケーションが動くのは、JavaVMが中間コードを解釈しているから。
.NETの場合はCLR。

【3種類のメモリ領域】
ヒープ領域は静的領域、スタック領域と密接に連携しながらアプリケーションを動かしている。

・静的領域
グローバル変数や実行コードを格納する領域。
アプリケーションでまとめて1つ確保している。
ヒープ領域で作成されたインスタンスがメソッドを呼び出すと、静的領域に保存してある実行コード内のメソッドを参照する仕組み。

・ヒープ領域
アプリケーションでまとめて1つ確保している。
プログラム開始時に確保されるメモリ領域で、アプリケーションの必要に応じてメモリの割当て・開放を行う。
インスタンス変数はここに格納され、複数のスレッドから共用される。
オブジェクト指向プログラミングはこのヒープ領域を大量に使って動くため、メモリの管理であるGCが大事。
ガーベッジコレクション(GC)はヒープ領域内にある確保されたメモリをチェックし、不要と判断したら開放していく。
不要と判断する基準としては静的領域やスタック領域から参照されているかどうかを見ている。(ヒープ領域内で完全に独立 or 循環参照している)

・スタック領域
インスタンスがメソッドを実行する単位(スレッド単位)毎に確保される。
サブルーチン動作に必要なメモリである、ローカル変数、引数、戻り値を確保している。
メモリへの格納単位はサブルーチン毎になるが数が多い。そこで、後入れ先出し方式を採用して効率化を図っている。(スタック領域と呼ばれる由来) (参考:Amazon)

↓全て表示 ↑少なく表示
Cを勉強している身ですが、いつかjavaでもやろうと思って「オブジェクト指向」がどのようなものか知ってみることにし、この本を見つけました。読んでみてわかったことは「オブジェクト指向」というのは名前に過ぎないということです。なんか難しく聞こえるただの名前です。中身を1つひとつ読んでいけば構造がわかっていきました。
とりあえず、すぐにでもjavaを始めようと思います。
「オブジェクト指向」の言語や手法を知るには素晴らしい本です。初心者の目線で説明してくれて、専門用語や仕組みもしっかり記載してあります。引用文献までしっかりと記載してあって、かなり時間をかけて本を作ったのだということが分かりました。☆5でフィニッシュです。 (参考:Amazon)

↓全て表示 ↑少なく表示
 
内容サンプル

(引用元Amazon)

 
オブジェクト指向でなぜつくるのか 第2版
発売日 2014/03/05
通常 2,640円
現在 2,376円
264円(10%)OFF!!

  

「オブジェクト指向UIデザイン──使いやすいソフトウェアの原理 (WEB+DB PRESS plusシリーズ)」

銀の弾丸、OOUI。操作性と開発効率の劇的な向上

オブジェクト指向ユーザーインターフェース(OOUI)とは、オブジェクト(もの、名詞)を起点としてUIを設計すること。タスク(やること、動詞)を起点としたUIに比べて、画面数が減って作業効率が高まり、また開発効率や拡張性も向上する、いわば「銀の弾丸」的な効果を持つ。ブログや雑誌記事などで大きな反響を得たこの設計手法について、前半部では理論やプロセスを詳説。そして後半部の「ワークアウト(実践演習)」では18の課題に読者がチャレンジ。実際に考え、手を動かし、試行錯誤をすることにより、OOUIの設計手法を体得できる。

↓全て表示↑少なく表示
 
内容サンプル

(引用元Amazon)

 
Users Voice
UIデザイナーです。友人たちが販売前からこぞって予約をしており、中身をみていませんでしたがものは試しに買ってみました。
今まで何となく感覚でわかっていたけど、言語化、構造化できなかったことがこれを見てものすごく納得!
また後半からは実際に手を動かすワークもあり、情報設計のプロセスを体系的に知ることができます。
設計段階から携わるポジションにいる全ての人に読んでほしい。 (参考:Amazon)

↓全て表示 ↑少なく表示
もの作りにおいて大事なことを再確認できました。 (参考:Amazon)

↓全て表示 ↑少なく表示
 
内容サンプル

(引用元Amazon)

 
  

「オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方」

(概要)
オブジェクト指向設計の名著として名高い“Practical Object-Oriented Design in Ruby”,待望の翻訳版!使いこなせるようになるととても便利なオブジェクト指向ですが,「なんとなく」の理解で使っていると,大きな罠にかかってしまいます。本書は,保守性を上げて運用コストを下げるアプリケーションをつくるために,クラス設計から基本概念,継承のテクニック,ダックタイプ,そしてテスト設計まで,幅広くカバーしています。オブジェクト指向言語を使用するすべての人におすすめの1冊です。

(こんな方におすすめ)
・オブジェクト指向プログラミングをしたことがある人
・オブジェクト指向設計に悩んでいる人

(目次)
第1章 オブジェクト指向設計

第2章 単一責任のクラスを設計する

第3章 依存関係を管理する

第4章 柔軟なインターフェースをつくる

第5章 ダックタイピングでコストを削減する

第6章 継承によって振る舞いを獲得する

第7章 モジュールでロールの振る舞いを共有する

第8章 コンポジションでオブジェクトを組み合わせる

第9章 費用対効果の高いテストを設計する

↓全て表示↑少なく表示
 
Users Voice
・クラスの単一責任化(クラス間が疎結合なコードを書く)
- クラスにメソッドを追加する時にそのクラスが知るべき情報なのかを自問自答する。
- 疎結合にしておかないと、1つの修正が他のクラスへの影響し、ひいてはサービスの品質へと繋がる。
- 単一責任化することで、疎結合同士のクラスとなる。この情報はどのクラスに聞けばわかるか(クラス間の依存関係)容易になり、変更が容易なアプリケーションの土台へと繋がる。
・単一責任の考慮不足の場合に起こり得るアンチパターンとして、本当は他のクラスから聞き出せばいいのに、自身のクラス内に取り込んでしまう場合。その場合、メソッドの引数に知りたい情報を持っているオブジェクトを注入し、クラスが必要以上の情報を持たないよう疎結合な設計にする。

・修正が発生した際にコストを掛けずに改修したい
- 依存性の高い設計にしないこと。よくあるアンチパターンとして、is_a?、kind_of?、responds_to?、case文でオブジェクトの種類毎にロジックを分岐させている場合要注意
- 依存性を減らした設計ができないか(ダックタイピング)を検討し、各クラスに同じメソッドを実装、別クラスへの切り出し、ポリモーフィックの利用を考えてみる。

・継承先で継承元と疎結合になるよう適宜フックメッセージを使う
どんなプログラマーでもsuperの送り忘れはあり得る。superの利用忘れは継承元への依存が高いことを意味する。
そこで、継承元にフックメソッドを用意し、結合度を低減させ変更に強くする

・メソッド探査パスへの理解
extendしたメソッドとincludeしたモジュール群に定義されたメソッドの場合、extendした方が先に探査される。
また、includeされたモジュールが複数あった場合のメッソドの探査は最後にインクルードされたモジュールから探査される。

・継承とコンポジションの利用の判断
継承はメッセージの委譲コストが楽になるが、オブジェクト間の階層構造により依存関係を強く持つことになる。
コンポジションは小さなオブジェクト単位を作るため、責任範囲が明快。階層構造から独立しているので見通しが良くなる。 (参考:Amazon)

↓全て表示 ↑少なく表示
rubyはオブジェクト指向言語で、さらにrubyならではのオブジェクト指向的なプログラムの書き方、クラスオブジェクトの設計の仕方というがあります。

この本は「rubyでオブジェクト指向プログラミングをするならせめてこういう設計でやれ」という手法について教えてくれてます。

筆者は教えるのがとてもうまいです。自分を完璧の権化のように見せることなく、ごく平凡な発想で作ったクラスの例を出してから話を始めます。そしてそのように最初に設計してしまうのも、別に間違いではないと言うのです。必要な要素をすべて見越すことなどできないと言い切ります。

それからそうした設計の欠点がどういうふうに現れ出し、その結果どういう設計が求められ、それをrubyでやるならどうするか、という手順を踏んでプログラムの進化する様を見せてくれます。なので、とても腑に落ちて理解できました。

これを読まなくてもrubyのプログラムは、はっきり言って、できると思います。
でもこれを読んだ後なら「なぜそのようにクラスを書くのか」ということに対してベストプラクティスを基にした一定の根拠を持てるようになるでしょう。

ゆえにrubyを使ってプログラムを書くなら必読級の著作と思います。 (参考:Amazon)

↓全て表示 ↑少なく表示
 
  

「オブジェクト指向のこころ (SOFTWARE PATTERNS SERIES)」

オブジェクト指向のこころ (SOFTWARE PATTERNS SERIES)
(著)アラン・シャロウェイ, ジェームズ・R・トロット
発売日 2014/03/11
(4.3)

本書は、オブジェクト指向パラダイムを有効にするためのデザイ
ンパターンの中から、重要度の高いものを厳選し、解説しています。その際、要
求における流動的要素や、要求の変化という観点から、さまざまな事例につい
て丁寧な考察を行うことによって、デザインパターンそのものを導き出すという
ユニークなアプローチを採っています。
オブジェクト指向パラダイムのメリットを120% 引き出したいと考えている方
に、まず本書をお薦めすることができます。デザインパターンを考察することで
こそ、「オブジェクト指向の本当の姿」=「オブジェクト指向のこころ」
が理解できるようになるわけです。また、デザインパターンを勉強したことがな
い方、勉強はしたが日々の仕事に活用できないと悩んでおられる方にもお薦めで
す。本書で解説されている観点に立つことで、「時間軸を見渡した設計」とも言
える考え方を身につけることができ、設計・開発するシステムはひと味もふた
味も違ったものとなることでしょう。

↓全て表示↑少なく表示
 
Users Voice
あなたは以下のような謳い文句をどこかで聞いたことがありますか?

・オブジェクトとはデータと振る舞いを持った「もの」である

・カプセル化とはデータを隠蔽することである

・オブジェクト指向言語では継承を使用することによって再利用が促進される(差分プログラミング)

・オブジェクトとは現実世界における実体であるため、名詞と動詞を抽出することで適切なクラス設計を行うことができる

この本は本来あるべきオブジェクト指向設計においてはこれらが適切ではないということをデザインパターンを使って解説しています。

この本を以下の方に薦めます。

・デザインパターン本(GoF本を含む)を読んだがいまいち理解できなかった方(オブジェクト指向初級者)

この本はデザインパターンの解説だけではなく、その元となっているオブジェクト指向原則についても説明しています。そのため他のデザインパターン本よりも有益でありかつ理解しやすいものとなっています。

・オブジェクト指向はある程度理解していると考えている方(オブジェクト指向中級者)

オブジェクト指向原則やデザインパターンに対する知識の整理が可能となります。「それについては知っていた」という箇所が出てきた場合には自分を褒めましょう。(この逆は、「もしかしたら自分はオブジェクト指向初級者だったのかもしれない。」です。)

また、この本が他のデザインパターン本よりも理解しやすいのは以下の理由もあると思います。

・著者がデザインパターン講義を行っている講師である

理解するのが困難な箇所について何度も解説を行った経験があり、そのためその解説が洗練されている。

・翻訳がすばらしい

村上雅章さんの翻訳は本当にすばらしいです。

オブジェクト指向及びデザインパターンについて書かれた本を今までに多く読んできましたが、この本が一番分かりやすく有益であると思いました。 (参考:Amazon)

↓全て表示 ↑少なく表示
題名は少し原作と変わったが、デザインパターンについての解説書。

著者が過去に携わった業務における、著者の誤った設計を示し、
デザインパターンについて説明しながら、それを用いて
現在最善と思われる解決策を深い考察とともに説明している。
それでいて、理解しやすくオブジェクト指向の原則を説明しながら
しっかり各パターンについて説明している。

これは、よくある『わかりやすい、、、』『はじめての、、、』
のような誰でも書けそうな上から目線の書籍とは全く違う。
一流の設計者が自分の経験を基に最善の設計についての追求を
続けた過程が述べられており、より技術者好みの深い考察が多い。
(必然的に、リファレンスとしての用途では使えない。)

著者はおそらく、自分の過去の仕事に対する検討や反省を続けていた
のだろうという印象を受けた。このような書籍を多く読むことで、
設計に対する自分なりの哲学を身に着けることができるだろう。

特に秀逸だと思ったのは、Bridgeパターンの説明である。
今までピンとくる解説がなく曖昧に覚えていたものが、すっきりと
理解できた。他の方に説明するときは、この本の例を使うことにしている。
プロとして設計に携わっているならば必読だと思う。 (参考:Amazon)

↓全て表示 ↑少なく表示
 
オブジェクト指向のこころ (SOFTWARE PATTERNS SERIES)
発売日 2014/03/11
通常 4,180円
現在 4,180円

  

「新わかりやすいJava オブジェクト指向徹底解説」

あなたはオブジェクト指向を本当に理解できていますか? その問いに、誰もがイエスと答えられるように、本書を書き下ろしました。本書は、Javaのオブジェクト指向について、わかりやすい図版や先輩ネコと新人ネコの楽しい会話文でじっくり丁寧に解説したJavaオブジェクト指向徹底解説本です。Java8から新しく登場したラムダ式やストリーム処理についても解説しています。

※この商品は固定レイアウトで作成されており、タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。

↓全て表示↑少なく表示
 
内容サンプル

(引用元Amazon)

 
Users Voice
独学でプログラミングを学んでいる者です。
そして、私も、ご多分にもれず、オブジェクト指向のところつまづきました。
当時、なんとか理解したい一心で、オブジェクト指向を解説した参考書を
手当たりしだい読んでおりました。
もちろん、多くの書籍では簡潔かつ良質なテキストで説明がなされていました。
しかし、私があまりにも無知すぎるゆえに、それらの書籍では「なるほど」という理解を得ることができませんでした。
一方、本書では、そのような私でも「なるほど」という理解を得ることができました。
理解を得ることができた理由は、シンプルで、一般的なオブジェクト指向の参考書であれば、説明を省略してしまうであろう、基礎的な前提知識、観点、その界隈における慣習・常識などを、省略することなく、丁寧かつ、そして、まろやかな文体で、解説してくださっているためです。

おそらく、著者の川場先生は、私のような独学プログラミング初心者までも読者として想定し、本書のみで「オブジェクト指向の目的と基礎的なメカニズムを理解した上で、一応、実践で使える」というレベルに到達できるよう、熟考して、本書を執筆されているのでしょう。

そのため、説明文に簡潔さはありません。読む方によっては「そんな当たり前のこともいちいち書くのか」と、ややくどく感じられるかもしれませんが、その当たり前のこともよくわからない、私のような独学プログラミング初心者にとっては、本書はたいへん貴重な一冊だと思います。 (参考:Amazon)

↓全て表示 ↑少なく表示
今まで色々なJavaの入門書&学習書を読んできましたが、この本の内容はお世辞抜きで現時点で最高です!
以下、この書籍の優れている点を列挙します。

・題名の通り、Java8以降の重要な文法事項(NIOやラムダ式、ストリーム処理、マルチスレッド処理など)が漏れなく、詳細かつ極めて分かりやすく解説されている。

・全体を24の小単元に分け、説明の区切りごとの簡単な練習問題や各単元ごとの章末問題(プログラム作成を含む)が豊富に用意されており、これらの問題を解くことで、本文の説明文の理解度を着実にチェックしながら学習を進めていくことができる。

・今まで理解が曖昧なまま平気で当たり前のように使ってきたオブジェクト指向の基本事項(インスタンスやメンバ、コンストラクタの仕組みなど)が丁寧に説明されており、他の入門書だけでは気づかなかった箇所が多々あった。

・書籍専用のWebサイト(http://k-webs.jp/oop/index.html)が用意されており、内容が大変充実している上に、メンテナンスもきちんと行われている。本書のサンプルプログラム(Eclipseのプロジェクト形式のものと個別のファイル形式のもの)ももちろんアップされている。

なお、本書では、Java言語の学習事項のうち、GUI関係(SwingやJavaFX)、ネットワーク関係、データベース関係、Webアプリ関係は守備範囲外となっています。 (参考:Amazon)

↓全て表示 ↑少なく表示
 
内容サンプル

(引用元Amazon)

 
新わかりやすいJava オブジェクト指向徹底解説
発売日 2018/11/08
通常 3,278円
現在 2,950円
328円(10%)OFF!!

  

 

オブジェクト指向プログラミング本「Kindle Unlmited 読み放題 人気ランキング」

「Kindle Unlimited」は、Amazonの定額本読み放題サービス。

実はそこにオブジェクト指向プログラミングの本もそこそこあるんです。すなわち、定額で何冊も学習することも可能

Kindle Unlimitedの主な特徴としては、おおよそ以下の通り。

  • 雑誌がかなり充実
  • 豊富なKindle個人出版本がほとんど読み放題
  • 最近は出版社単行本も対応増加

個人的には雑誌が、IT系(CG WORLD等)、ガジェット系(Get Navi等)、ゲーム(ファミ通等)、など見たい雑誌が幅広く読めるのが大きな魅力。2冊以上読みたいものがあるだけで確実にお得です。

また、30日無料体験も可能なので、体験期間を利用して無料で学習してみるのもお得な学習法です。

以下がKindle Unlimited対応のオブジェクト指向プログラミング関係の本人気ランキングです。

(2021/05/18 更新)
Rank製品評価
1
オブジェクト指向でなぜつくるのか 第2版
発売日 2014/03/05
通常    2,640円
単行本   2,640円 (+26pt)
Kindle   2,376円 (+24pt)
Kindle Unlimited(読み放題)
(4.5)
総評価数 129件
2
速習 Python 3 中: オブジェクト指向編
発売日 2016/11/06
通常    800円
Kindle   800円 (+8pt)
Kindle Unlimited(読み放題)
(4)
総評価数 20件
3
(2.6)
総評価数 2件
4
(5)
総評価数 1件
5
(4.2)
総評価数 4件
6
(5)
総評価数 1件
7
(5)
総評価数 1件
8
(5)
総評価数 1件
9
(0)
総評価数 0件
10
(0)
総評価数 0件

 

   

関連:「デザインパターン」「リファクタリング」に関する書籍

オブジェクト指向プログラミングを学ぶことで、適切なクラス設計に基づくコーディング基礎知識が得られます。

加えて学びたいのが、汎用的で再利用可能な設計知識となる「デザインパターン」。少なくともプロのエンジニアなら主要パターンの知識は必須です。

また、設計とともに、コーディング自体の守るべき原則・アンチパターンなどのリファクタリング知識も知ることで、保守性・拡張性の高い実装が可能となります。

以下では「デザインパターン」「リファクタリング」に関する書籍を紹介しています、合わせてのぞいて見てください。

 

関連:最新おすすめのKindle端末

以下では最新のKindle端末について比較、おすすめ紹介しています、合わせてのぞいて見てください。

いじょうでっす。

コメント

タイトルとURLをコピーしました