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

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

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

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

 
Kindle Paperwhite
発売日 2018/11/07
(2021/09/17 15:15時点)

 

Contents

 

Kindle Unlimited 1ヶ月無料

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


 

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

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

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

 

(2021/09/17 12:04 更新)
Rank製品価格
1
UMLによる統一ソフトウェア開発プロセス―オブジェクト指向開発方法論 (Object oriented selection)...
発売日 1999/02/04
Jacobson, Ivar Booch, Grady Rumbaugh, James (Addison-Wesley Professional)
総合評価
2,786円
2
3,234円
3,072円
3,234円
3,234円
3
オブジェクト指向UIデザイン──使いやすいソフトウェアの原理 (WEB+DB PRESS plusシリーズ)...
発売日 2020/06/05
ソシオメディア株式会社, 上野 学, 藤井 幸多 (技術評論社)
総合評価
3,278円
3,114円
3,278円
3,278円
4
オブジェクト指向における再利用のためのデザインパターン...
ガンマ,エリック, ジョンソン,ラルフ, ヘルム,リチャード, ブリシディース,ジョン (ソフトバンククリエイティブ)
総合評価
5,280円
(+144pt)
5,280円
5,280円
5
2,640円
2,376円
2,640円
2,640円
6
7,920円
7,920円
7,920円
7
3,608円
3,608円
3,608円
3,608円
8
6,425円
2,860円
5,995円
9
オブジェクト指向でなぜつくるのか 第2版
発売日 2011/04/07
平澤 章 (日経BP)
Kindle Unlimited対象
総合評価
2,640円
(+290pt)
売り切れ
2,640円
2,640円
10
アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技...
発売日 2008/07/01
ロバート・C・マーチン (SBクリエイティブ)
総合評価
6,380円
6,380円
5,995円
11
やさしいJava オブジェクト指向編 (やさしいシリーズ)
発売日 2012/02/29
高橋 麻奈 (SBクリエイティブ)
総合評価
503円
3,080円
500円
12
2,860円
2,860円
2,860円
13
3,938円
3,741円
3,938円
3,938円
14
3,938円
3,741円
3,938円
3,938円
15
3,960円
3,960円
3,960円
16
新・明解C++で学ぶオブジェクト指向プログラミング
発売日 2018/09/15
柴田 望洋 (SBクリエイティブ)
総合評価
3,300円
3,135円
3,300円
3,300円
17
新わかりやすいJava オブジェクト指向徹底解説
発売日 2018/11/08
川場隆 (秀和システム)
総合評価
3,278円
2,950円
2,950円
3,278円
18
オブジェクト指向をきちんと使いたいあなたへ
発売日 2016/03/03
Software Design編集部 (技術評論社)
総合評価
2,035円
2,035円
2,035円
825円
19
2,530円
2,530円
2,530円
20
Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで...
発売日 2017/04/18
谷本 心, 阪本 雄一郎, 岡田 拓也, 秋葉 誠 (技術評論社)
総合評価
3,278円
3,278円
3,278円
3,278円

 

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

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

 

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

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

(2021/09/17 12:04 更新)
Rank製品価格
1
UMLによる統一ソフトウェア開発プロセス―オブジェクト指向開発方法論 (Object oriented selection)...
発売日 1999/02/04
Jacobson, Ivar Booch, Grady Rumbaugh, James (Addison-Wesley Professional)
総合評価
2,786円
2
3,234円
3,072円
3,234円
3,234円
3
オブジェクト指向UIデザイン──使いやすいソフトウェアの原理 (WEB+DB PRESS plusシリーズ)...
発売日 2020/06/05
ソシオメディア株式会社, 上野 学, 藤井 幸多 (技術評論社)
総合評価
3,278円
3,114円
3,278円
3,278円
4
オブジェクト指向における再利用のためのデザインパターン...
ガンマ,エリック, ジョンソン,ラルフ, ヘルム,リチャード, ブリシディース,ジョン (ソフトバンククリエイティブ)
総合評価
5,280円
(+144pt)
5,280円
5,280円
5
2,640円
2,376円
2,640円
2,640円

 

「UMLによる統一ソフトウェア開発プロセス―オブジェクト指向開発方法論 (Object oriented selectio...」

This landmark book provides a thorough overview of the Unified Process for software development, with a practical focus on modeling using the Unified Modeling Language. The Unified Process goes beyond mere object-oriented analysis and design to spell out a proven family of techniques that supports the complete software development life cycle. The result is a component-based process that is use-case driven, architecture-centric, iterative, and incremental. The Unified Process takes full advantage of the industry-standard Unified Modeling Language. This book demonstrates how the notation and process complement one another, using UML models to illustrate the new process in action. The authors clearly describe the semantics and notation of the different higher-level constructs used in the models. Constructs such as use cases, actors, subsystems, classes, interfaces, active classes, processes, threads, nodes, and most relations are described in the context of a model. Object technology practitioners and software engineers familiar with the authors' past work will appreciate The Unified Software Development Process as a useful means of learning the current best practices in software development.


↓全て表示↑少なく表示
 
  

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

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

(引用元Amazon)

 
目次
1 小さくまとめてわかりやすくする
2 場合分けのロジックを整理する
3 業務ロジックをわかりやすく整理する
4 ドメインモデルの考え方で設計する
5 アプリケーション機能を組み立てる
6 データベースの設計とドメインオブジェクト
7 画面とドメインオブジェクトの設計を連動させる
8 アプリケーション間の連携
9 オブジェクト指向の開発プロセス
10 オブジェクト指向設計の学び方と教え方

↓全て表示↑少なく表示
Users Voice
内容が徐々にドメイン駆動設計に近づいていくので,「ドメイン駆動設計に興味があるけど,そもそも良い設計が何なのか知らない」みたいな人に特におすすめできる本だと思いました. 著者が Java の知見が深いのか,使用歴が長いのかわかりませんが,コードを用いた説明は Java ベースで書かれていました. 要所で Java のフレームワークについて述べているので,周辺知識を持っていると一層理解できると思います. ただし,思考が Java に傾きすぎてしまうので,現在 Web アプリのバックエンドでよく使われる言語で,書いてくれるともっとわかりやすいのにと思ってしまいました. あと,個人開発の範疇だと,設計を意識しなくても,実装できたり,拡張や運用保守などもできてしまうので,ある程度の大規模開発や実務による苦労した経験が必要に感じました, 「リーダブルコード」,「オブジェクト指向でなぜつくるのか」,「ドメイン駆動設計」を足して3で割ったような内容となっており,具体的な説明からとてもわかりやすい良書だと思います. 「クリーンアーキテクチャ」や「ドメイン駆動設計」などにも興味を持てるようになったので読んでみたいと思います. (参考:YahooShopping)

↓全て表示 ↑少なく表示
実践にそくして書いてあって、とても参考になりました。 (参考:YahooShopping)

↓全て表示 ↑少なく表示
# 書評☆3: 現場で役立つシステム設計の原則 | 失敗の原因はデータクラス/機能クラスによる手続き型設計
## 概要
- 書名: 現場で役立つシステム設計の原則
- 副題: 変更を楽で安全にするオブジェクト指向の実践技法
- 著者: 増田 亨
- 出版日: 2017-07-18
- 読了日: 2020-01-31 Fri
- 評価: ☆3
- URL: https://book.senooken.jp/post/2020/02/04/
## 評価
書名どおり,現場で役立つシステム設計の方法について書いてあった。いろんなところで参照されており,評判が高かったので興味を持って読んだ。
内容としては,プログラミング言語Javaを例としたオブジェクト指向設計について論じたものであり,リファクタリングやドメイン駆動設計やDB,Web APIとの連携の設計についても書いてあった。
一番印象に残っているのが,「Chapter 3 業務ロジックをわかりやすく整理する」だ。変更しにくく,似たような処理が至るところに記述される状態ができる原因として,データクラスと機能クラスを使った手続き型設計を指摘していた。これはたしかにそのとおりだと思った。
内容全体として,オブジェクト指向に沿った設計を行い,業務の関心事項の単位でクラスを作ることでうまく設計できるという話だった。
いろいろ書いてあったが,結局はオブジェクト指向を意識してやれば大丈夫という内容だった。
## 結論
既存コードの失敗例を上げながら,なぜダメなのかどうすればいいのかをオブジェクト指向に従った形で解説されていた。
オブジェクト指向を理解して実践できていれば,当然と思うような内容がやや多かった。リファクタリングなどの話も交えていて,まあまあよかった。
ただ,巷での前評判が高かったので,それと比べるとやや過大評価に感じた。
あくまで著者が考える方法のひとつであり完璧とも思わない。それに,知っていても実際に自分の場面で適用できるかどうかはある程度経験が必要になる。
そういう意味で,普段の開発に問題を抱えている人が読むと参考になるだろうと感じた。 (参考:honto)

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

(引用元Amazon)

 
著者略歴
増田亨(マスダトオル)
有限会社システム設計代表。ギルドワークス株式会社取締役。業務アプリケーションのアーキテクト。日本最大級の60万件以上の求人情報サイト「イーキャリアJobSearch」の主任設計者。非同期メッセージング/API/クラウド技術を組み合わせた、柔軟で発展性に優れた疎結合のシステム間連携方式でサービスを支える(本データはこの書籍が刊行された当時に掲載されていたものです)

  

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

オブジェクト指向UIデザイン──使いやすいソフトウェアの原理 (WEB+DB PRESS plusシリーズ)
(著)ソシオメディア株式会社, 上野 学, 藤井 幸多
発売日 2020/06/05
総合評価
(2021/09/17 12:04時点)
銀の弾丸、OOUI。操作性と開発効率の劇的な向上

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

(引用元Amazon)

 
目次
はじめに
■1 オブジェクト指向UIとは何か
1-1 目当ての現し
 ユーザー要求とタスク
 目当て=オブジェクト
1-2 お金が先か、商品が先か
 明らかにおかしなUI
 テストするまでもない問題
1-3 オブジェクト指向UI
 オブジェクト指向UIの原則
 オブジェクトを知覚でき直接的に働きかけられる
 オブジェクトは自身の性質と状態を体現する
 オブジェクト選択→アクション選択の操作順序
 すべてのオブジェクトが互いに協調しながらUIを構成する
1-4 オブジェクト指向か? タスク指向か?
 対象オブジェクトを選ぶところから操作が始まる
 タスク指向UIの問題
 オブジェクト指向UIとタスク指向UIの対比
 タスク指向UIを改善する ビデオカメラ画面
 タスク指向UIを改善する フードデリバリーサービス
 オブジェクトを前面に出す
1-5 UIがタスク指向になってしまう背景
 業務分析では「やること」がまとめられる
 利用手続きをデザインしようとする
 タスクに必要な情報オブジェクトを定義する
■2 オブジェクト指向UIの設計プロセス
2-1 デザインプロセスのミッシングリンクをつなぐ
2-2 アプリケーションの手掛かり
 タスクを手掛かりにすると
 オブジェクトを手掛かりにする
2-3 ユーザー、タスク、オブジェクトの関係
2-4 ソフトウェアデザインのレイヤー
 UIは複数のオブジェクトを構造的に表象した合成物
 モデル ユーザーの関心対象の模式
 インタラクション 構造と機能
 プレゼンテーション スタイルやレイアウト
2-5 デザインの究極の目的は形である
 デザイナーのアブダクション
 一貫して作用する「原理」を備える
 道具の抽象性
2-6 オブジェクト指向UI設計の基本ステップ
 ステップ1. オブジェクトの抽出
 ステップ2. ビューとナビゲーションの検討
 ステップ3. レイアウトパターンの適用
■3 オブジェクト指向UI設計の実践
3-1 オブジェクト指向UIの設計ステップ
3-2 本章でデザインするものの全体像
3-3 ステップ1. オブジェクトの抽出
 「名詞」を抽出する
 「名詞」とそれらの関係を抽出する
 「名詞」を汎化し、粒度を揃える
 「名詞」の関係性をつなげ、オブジェクトを特定する
 オブジェクトの中で「メインオブジェクト」になるものを特定する
 メインオブジェクトの多重性を特定する
 メインオブジェクトに付随するオブジェクトをプロパティとする
  コラム メインオブジェクト選びのポイント
 タスクからアクションを見つける
  コラム タスク、オブジェクト、プロパティ、アクション
3-4 ステップ2. ビューとナビゲーションの検討
 基本のビュー形式
 メインオブジェクトに「コレクション」と「シングル」のビューを与える
  コラム シングルビューとコレクションビューの省略
 コレクションビューとシングルビューの呼び出し関係を検討する
 メインオブジェクトの中からルートナビゲーション項目を選定する
  コラム ルートナビゲーションの項目、アイコン、ラベリング
3-5 ステップ3. レイアウトパターンの適用
 ルートナビゲーションの配置パターン
 ビューの配置パターン
 メインオブジェクト同士の参照関係を踏まえて配置パターンを適用する
  コラム ビューの配置パターン適用のポイント
 コレクションビューの表示形式のパターン
  コラム オブジェクトへのフォーカスとコレクションビュー
 コレクションの性質や用途に合わせて表示形式を決定する
 コレクションのフィルタリングのパターン
 シングルビューの表示形式のパターン
  コラム シングルビューの表示内容
 シングルビューの性質や用途に合わせて表示形式を決定する
 アクションの性質や用途に合わせて表示形式を決定する
 Create(作成)アクションのパターン
 Delete(削除)アクションのパターン
 Update(更新)アクションのパターン
 ビジュアルデザイン
3-6 タスクをどう扱うか
 タスクの特徴
 タスクはどこへ行くのか?
■4 ワークアウト:基礎編
進め方
レベル1 メモアプリケーション
 ヒント・チャレンジ
 解説
レベル2 社員名簿アプリケーション
 ヒント・チャレンジ
 解説
レベル3 イベント店舗管理アプリケーション
 ヒント・チャレンジ
 解説
レベル4 会議室予約アプリケーション
 ヒント・チャレンジ
 解説
レベル5 家族で遊べる場所を探すアプリケーション
 ヒント・チャレンジ
 解説
レベル6 商品管理アプリケーション
 ヒント・チャレンジ
 解説
レベル7 商品管理アプリケーション
 ヒント・チャレンジ
 解説
レベル8 商品管理アプリケーション
 ヒント
 解説
レベル9 商品管理アプリケーション
 ヒント
 解説
■5 ワークアウト:応用編
進め方
レベル10 スマートフォン用の営業支援アプリケーション
 ヒント
 解説
レベル11 イベント管理アプリケーション
 ヒント
 解説
レベル12 保険契約の顧客管理アプリケーション
 ヒント
 解説
レベル13 アセット管理アプリケーション
 ヒント
 解説
レベル14 サイト管理アプリケーション
 ヒント
 解説
レベル15 出張申請・精算アプリケーション
 ヒント
 解説
レベル16 契約管理アプリケーション
 ヒント
 解説
レベル17 通貨換算アプリケーション
 ヒント
 解説
レベル18 販売実績照会アプリケーション
 ヒント
 解説
■6 オブジェクト指向UIのフィロソフィー
6-1 オブジェクトの原義
6-2 オブジェクト指向
 クラスとインスタンス
 イデア論
 GUIにおけるオブジェクト
 プログラミングにおける記述法
6-3 GUI
 マン ? マシン インターフェースからユーザーインターフェースへ
 インターフェースはユーザーとオブジェクトを接着する
 Whirlwind GUIという発想の原型
 SAGE 防空システムに組み込まれた最初期のGUI
 Sketchpad グラフィック言語による対話型コンピューター
 NLS 知的生産活動のためのコンピューター
 Smalltalk 誰もが使えるパーソナルコンピューター
 TUI テキストベースのUI
 Star GUIベースのビジネス用ワークステーション
 Macintosh 商業的に成功した最初のGUIシステム
 iPhone パーソナルコンピューターの新しいフォームファクター
 メタメディアとしてのオブジェクト指向UI
6-4 モードレス
 モードレスネスを信奉しなさい
 ラリー・テスラー テキスト編集のモードレス化
 ドナルド・ノーマン モードエラーの分析
 ジェフ・ラスキン モードレスにすることで劇的に使いやすくなる
 モードレスにする方法
6-5 オブジェクト指向UIについての文献
 『Object-Oriented User Interfaces and Object-Oriented Languages』
 『Object-Oriented Interface Design』
 『Designing Object-Oriented User Interfaces』
 『The Elements of User Interface Design』
 『Designing for the User with OVID』
おわりに
参考文献
索引
あとがき

↓全て表示↑少なく表示
Users Voice
ここ10年くらいで一気に普及した UI・UXという概念は、一部では未だに蔑ろにされています。 お役所のホームページなどはその最たる例で、 「一体だれがこれを使いやすい(わかりやすい)と思ったのか」と 呆れることも少なくありません。プロが作ったはずなのに。 曖昧な要求で技術者を振り回す発注者や、 駆け出しのエンジニアさん達には、ためになりそうです。 直観的に使いやすいメニューやナビゲーション構成というのは 出来る人は自然とそう設計できるものだったりもしますが、 こうして半ば無理やりに言語化して教わらないと身に着けられない人も多く、 その観点で、とても意味のある本だと感じました。 (参考:YahooShopping)

↓全て表示 ↑少なく表示
人気の書籍ということで、学びのために購入してみました。なかなかのボリュームなので、しっかり読み込んで理解していこうと思います。大切な分野です。 (参考:YahooShopping)

↓全て表示 ↑少なく表示
もっと実例に沿って解説してくれると思っていたのですが、目新しいことはあまり載っていなかったです。 うーん、いまひとつ。残念。 (参考:YahooShopping)

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

(引用元Amazon)

 
著者略歴

著監:上野 学
デザインコンサルタント/デザイナー。各種ビジネスアプリケーション、ウェブ/モバイル/デスクトップアプリケーション、その他の様々なインタラクティブメディアのヒューマンインターフェース設計およびユーザビリティ評価に従事。ソシオメディアにおいてデザインメソッド開発を担う。執筆、講演など多数。 Twitter:@manabuueno

著:藤井 幸多
ソシオメディア株式会社ユーザーインターフェースデザイナー。各種ビジネスアプリケーションをはじめさまざまなアプリケーションのデザインコンサルティングを経験。UI設計、ユーザビリティテスト、デザインガイドライン策定、デザイン評価、OOUI メソッドとトレーニングプログラムの開発/実施などを通して、デザイン組織への支援を行う。 Twitter:@ atochotto


↓全て表示↑少なく表示

  

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

オブジェクト指向における再利用のためのデザインパターン
(著)ガンマ,エリック, ジョンソン,ラルフ, ヘルム,リチャード, ブリシディース,ジョン
総合評価
(2021/09/17 12:01時点)
オブジェクト指向ソフトウェア設計の際に繰り返し現れる重要な部品をデザインパターンとして記録し、カタログ化。改訂版ではこれにCD−ROMを添付、現場でブラウザを通して即利用できるパターンカタログデジタル版を収録。特別付録として、原書にはないJavaのサンプルコードを追加。
【技術書翻訳名著シリーズ】
ソフトウェア開発のバイブル群! 弊社がこれまでに刊行した翻訳技術書の中から、長年読者から支持され続けている名著を厳選したのが、本シリーズです。移り変わりの激しいコンピュータ業界で、普遍性を保ち続ける定番をお届けします。ソフトウェア開発の上流から下流まで、入門書からエキスパート向けまで、技術者に求められる選りすぐりの情報がここにあります。
 
内容サンプル

(引用元Amazon)

 
目次
概論
事例ードキュメントエディタの設計
デザインパターン・カタログ(生成に関するパターン
構造に関するパターン
振る舞いに関するパターン)
終わりに
Users Voice
もともと知っているものもあって、当然パターンかされているのでほっとする。
もともと知らなかったパターンもあった。参考に覚えておく。そして、
自分が無意識で作成したプログラムに、あっこれはこのパターンだと後で気がつく。自然と使えるようになっている自分に驚く。そのようになるための本。 (参考:honto)

↓全て表示 ↑少なく表示
オブジェクト指向ソフトウェア設計の際に繰り返し現れる重要な部品をデザインパターンとして記録し、カタログ化。改訂版ではこれにCD−ROMを添付、現場でブラウザを通して即利用できるパターンカタログデジタル版を収録。
特別付録として、原書にはないJavaのサンプルコードを追加。 (参考:honto)

↓全て表示 ↑少なく表示
本書は、エリック・ガンマ、ラルフ・ジョンソン、リチャード・ヘルム、ジョン・ブリシディースの所謂、オブジェクト指向の4人組(Gof, Gang of four)の共著です。
デザインパターンとは、型紙のことです。
上着を作りたければ、上着の型紙が必要です。
上着の型紙は1種類とは限りません。
デザイン(設計)に応じて、数種類から数千種類の型紙から選ぶ必要があります。
10や20の型紙を知っているだけで、使いこなしていると勘違いすることがないように、本書をじっくり読みましょう。
デザインパターンのことをよく知らないで、既存のソフトを修正してプログラムを作っているという場合もしばしばあります。
本書は、そのままデザインパターンのことをよくしらないまま使いつづけるのにも役立ちます。
デザインパターンの使い方を覚えるのにも役立つと思います。
建築物でも、類似の建物を建てる場合には、設計を再利用することがある。
ソフトウェア開発でも、対象が似ていれば、ソフトウェアも似ていていいかもしれない。
オブジェクト指向とは、物(オブジェクト)思考なのだから、その設計(デザイン)も、似ていて当然かもしれない。
設計の再利用は自然の流れである。
課題てゃ、再利用する設計が、抽象的すぎることかもしれない。
もっと、具体的な会計システムのような厳密に定義できるものだとよかったかもしれない。
デザインパターンという設計の基本的な例題を使うという視点では、 結城さんが書いた「java言語で学ぶデザインパターン入門」「java言語で学ぶデザインパターン入門マルチスレッド編」を合わせて読むとよいかもしれません。 結城さんは、長年、マニュアル本をたくさん書かれているので、さまざまな情報源から情報を収集し、体系的に説明するのに長けていると思います。 (参考:honto)

↓全て表示 ↑少なく表示

  

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

『オブジェクト指向でなぜつくるのか』10年ぶり、待望の改訂第3版!
これからの10年も通用する基本」を、より多くの読者に身につけてもらうために改訂しました。

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

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


【目次】
第1章   オブジェクト指向はソフトウエア開発を楽にする技術
今ドキのOOP:とっつきやすくて、奥の深いPython
第2章   オブジェクト指向と現実世界は似て非なるもの
オブジェクトの向こう側:バズワードになったオブジェクト指向
第3章   OOPを理解する近道はプログラミング言語の歴史にあり
プログラミング昔話: COBOL コンパイラのニワトリとタマゴの話
第4章   OOPは無駄を省いて整理整頓するプログラミング技術
今ドキのOOP:ホームページツールから進化したPHP
第5章   メモリの仕組みの理解はプログラマのたしなみ
プログラミング昔話: OOPはダンプが見づらい?
第6章   OOPがもたらしたソフトウエアとアイデアの再利用
今ドキのOOP: Rails フレームワークでブレークしたRuby
第7章   汎用の整理術に化けたオブジェクト指向
オブジェクト指向の向こう側:言語が先か、コンセプトが先か
第8章   UMLは形のないソフトウエアを見る道具
第9章   現実世界とソフトウエアのギャップを埋めるモデリング
第10章   擬人化して役割分担させるオブジェクト指向設計
今ドキのOOP:クラスに縛られずに動くJavaScript
第11章   オブジェクト指向から生まれたアジャイル開発
プログラミング昔話:昔は許されなかったXP
第12章   オブジェクト指向を使いこなそう
補章   関数型言語でなぜつくるのか
今ドキのOOP:関数型言語の箱庭を用意したJava

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

(引用元Amazon)

 
目次

【目次】
第1章 オブジェクト指向はソフトウエア開発を楽にする技術
今ドキのOOP:とっつきやすくて、奥の深いPython
第2章 オブジェクト指向と現実世界は似て非なるもの
オブジェクトの向こう側:バズワードになったオブジェクト指向
第3章 OOPを理解する近道はプログラミング言語の歴史にあり
プログラミング昔話: COBOL コンパイラのニワトリとタマゴの話
第4章 OOPは無駄を省いて整理整頓するプログラミング技術
今ドキのOOP:ホームページツールから進化したPHP
第5章 メモリの仕組みの理解はプログラマのたしなみ
プログラミング昔話: OOPはダンプが見づらい?
第6章 OOPがもたらしたソフトウエアとアイデアの再利用
今ドキのOOP:Rails フレームワークでブレークしたRuby
第7章 汎用の整理術に化けたオブジェクト指向
オブジェクト指向の向こう側:言語が先か、コンセプトが先か
第8章 UMLは形のないソフトウエアを見る道具
第9章 現実世界とソフトウエアのギャップを埋めるモデリング
第10章 擬人化して役割分担させるオブジェクト指向設計
今ドキのOOP:クラスに縛られずに動くJavaScript
第11章 オブジェクト指向から生まれたアジャイル開発
プログラミング昔話:昔は許されなかったXP
第12章 オブジェクト指向を使いこなそう
補章 関数型言語でなぜつくるのか
今ドキのOOP:関数型言語の箱庭を用意したJava

↓全て表示↑少なく表示
Users Voice
タイトルから,オブジェクト指向言語の使い方についての HowTo 本だと思いましたが違いました。 なぜ,オブジェクト指向が現代において普及しているのかを,歴史を追って説明し,とても簡単に理解しやすい内容となっています.最初の方は,「コーディングを支える技術」と似通った内容になっているので,読んだことがある人は読み飛ばすことができます. 基本的な解説は Java を用いていますが,Java を知らなくても理解できる切り口となっています. オブジェクト指向の解説が書籍の9割です。 個人的には,「デザインパターンを比喩で説明されてもあまりよくわからなかったので,オブジェクト指向は比喩を使って説明されがちだからわかりづらくなっている,あくまでプログラミング技術の一つ」,のような考え方がとてもしっくりきました. 最後に関数型プログラミングについての説明があります。 プログラミングの整理術から上流工程のモデリング手法まで使われるようになったオブジェクト指向の全体感を,オブジェクト指向に詳しくなくても理解できるので,オブジェクト指向を使うプログラミングを習った早い段階で読むと,良いと思いました. (参考:YahooShopping)

↓全て表示 ↑少なく表示
どの本を読んでわからなかったオブジェクト指向のキモの部分を詳細に分かりやすく解説している本です。 少しボリュームが多いので根気強く読むことをオススメします。 (参考:YahooShopping)

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

(引用元Amazon)

 
著者略歴

著:平澤 章
ウルシステムズ株式会社所属。 メインフレームによる金融システムからマイクロコンピュータを使った制御系システムまで、いくつかのシステム開発を経験した後、30代前半でオブジェクト指向モデリングとSmalltalk、(Observerパターンの)MVCフレームワークに出会い、衝撃を受ける。その後、技術コンサルティングの仕事を経て、2001年にウルシステムズのスタートアップに参画し、現在に至る。 著書/翻訳書:『UMLモデリングレッスン』(著、日経BP)、『リファクタリング 第2版』(共訳、オーム社)、『レガシーコード改善ガイド』(共訳、翔泳社) ほか


↓全て表示↑少なく表示

  

 

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

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

(2021/09/17 12:04 更新)
Rank製品価格
1
オブジェクト指向UIデザイン──使いやすいソフトウェアの原理 (WEB+DB PRESS plusシリーズ)...
発売日 2020/06/05
ソシオメディア株式会社, 上野 学, 藤井 幸多 (技術評論社)
総合評価
3,278円
3,114円
3,278円
3,278円
2
2,640円
2,376円
2,640円
2,640円
3
3,608円
3,608円
3,608円
3,608円
4
オブジェクト指向のこころ (SOFTWARE PATTERNS SERIES)
発売日 2014/03/11
アラン・シャロウェイ, ジェームズ・R・トロット (丸善出版)
総合評価
4,180円
4,180円
4,180円
5
3,234円
3,072円
3,234円
3,234円

 

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

オブジェクト指向UIデザイン──使いやすいソフトウェアの原理 (WEB+DB PRESS plusシリーズ)
(著)ソシオメディア株式会社, 上野 学, 藤井 幸多
発売日 2020/06/05
総合評価
(2021/09/17 12:04時点)
銀の弾丸、OOUI。操作性と開発効率の劇的な向上

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

(引用元Amazon)

 
目次
はじめに
■1 オブジェクト指向UIとは何か
1-1 目当ての現し
 ユーザー要求とタスク
 目当て=オブジェクト
1-2 お金が先か、商品が先か
 明らかにおかしなUI
 テストするまでもない問題
1-3 オブジェクト指向UI
 オブジェクト指向UIの原則
 オブジェクトを知覚でき直接的に働きかけられる
 オブジェクトは自身の性質と状態を体現する
 オブジェクト選択→アクション選択の操作順序
 すべてのオブジェクトが互いに協調しながらUIを構成する
1-4 オブジェクト指向か? タスク指向か?
 対象オブジェクトを選ぶところから操作が始まる
 タスク指向UIの問題
 オブジェクト指向UIとタスク指向UIの対比
 タスク指向UIを改善する ビデオカメラ画面
 タスク指向UIを改善する フードデリバリーサービス
 オブジェクトを前面に出す
1-5 UIがタスク指向になってしまう背景
 業務分析では「やること」がまとめられる
 利用手続きをデザインしようとする
 タスクに必要な情報オブジェクトを定義する
■2 オブジェクト指向UIの設計プロセス
2-1 デザインプロセスのミッシングリンクをつなぐ
2-2 アプリケーションの手掛かり
 タスクを手掛かりにすると
 オブジェクトを手掛かりにする
2-3 ユーザー、タスク、オブジェクトの関係
2-4 ソフトウェアデザインのレイヤー
 UIは複数のオブジェクトを構造的に表象した合成物
 モデル ユーザーの関心対象の模式
 インタラクション 構造と機能
 プレゼンテーション スタイルやレイアウト
2-5 デザインの究極の目的は形である
 デザイナーのアブダクション
 一貫して作用する「原理」を備える
 道具の抽象性
2-6 オブジェクト指向UI設計の基本ステップ
 ステップ1. オブジェクトの抽出
 ステップ2. ビューとナビゲーションの検討
 ステップ3. レイアウトパターンの適用
■3 オブジェクト指向UI設計の実践
3-1 オブジェクト指向UIの設計ステップ
3-2 本章でデザインするものの全体像
3-3 ステップ1. オブジェクトの抽出
 「名詞」を抽出する
 「名詞」とそれらの関係を抽出する
 「名詞」を汎化し、粒度を揃える
 「名詞」の関係性をつなげ、オブジェクトを特定する
 オブジェクトの中で「メインオブジェクト」になるものを特定する
 メインオブジェクトの多重性を特定する
 メインオブジェクトに付随するオブジェクトをプロパティとする
  コラム メインオブジェクト選びのポイント
 タスクからアクションを見つける
  コラム タスク、オブジェクト、プロパティ、アクション
3-4 ステップ2. ビューとナビゲーションの検討
 基本のビュー形式
 メインオブジェクトに「コレクション」と「シングル」のビューを与える
  コラム シングルビューとコレクションビューの省略
 コレクションビューとシングルビューの呼び出し関係を検討する
 メインオブジェクトの中からルートナビゲーション項目を選定する
  コラム ルートナビゲーションの項目、アイコン、ラベリング
3-5 ステップ3. レイアウトパターンの適用
 ルートナビゲーションの配置パターン
 ビューの配置パターン
 メインオブジェクト同士の参照関係を踏まえて配置パターンを適用する
  コラム ビューの配置パターン適用のポイント
 コレクションビューの表示形式のパターン
  コラム オブジェクトへのフォーカスとコレクションビュー
 コレクションの性質や用途に合わせて表示形式を決定する
 コレクションのフィルタリングのパターン
 シングルビューの表示形式のパターン
  コラム シングルビューの表示内容
 シングルビューの性質や用途に合わせて表示形式を決定する
 アクションの性質や用途に合わせて表示形式を決定する
 Create(作成)アクションのパターン
 Delete(削除)アクションのパターン
 Update(更新)アクションのパターン
 ビジュアルデザイン
3-6 タスクをどう扱うか
 タスクの特徴
 タスクはどこへ行くのか?
■4 ワークアウト:基礎編
進め方
レベル1 メモアプリケーション
 ヒント・チャレンジ
 解説
レベル2 社員名簿アプリケーション
 ヒント・チャレンジ
 解説
レベル3 イベント店舗管理アプリケーション
 ヒント・チャレンジ
 解説
レベル4 会議室予約アプリケーション
 ヒント・チャレンジ
 解説
レベル5 家族で遊べる場所を探すアプリケーション
 ヒント・チャレンジ
 解説
レベル6 商品管理アプリケーション
 ヒント・チャレンジ
 解説
レベル7 商品管理アプリケーション
 ヒント・チャレンジ
 解説
レベル8 商品管理アプリケーション
 ヒント
 解説
レベル9 商品管理アプリケーション
 ヒント
 解説
■5 ワークアウト:応用編
進め方
レベル10 スマートフォン用の営業支援アプリケーション
 ヒント
 解説
レベル11 イベント管理アプリケーション
 ヒント
 解説
レベル12 保険契約の顧客管理アプリケーション
 ヒント
 解説
レベル13 アセット管理アプリケーション
 ヒント
 解説
レベル14 サイト管理アプリケーション
 ヒント
 解説
レベル15 出張申請・精算アプリケーション
 ヒント
 解説
レベル16 契約管理アプリケーション
 ヒント
 解説
レベル17 通貨換算アプリケーション
 ヒント
 解説
レベル18 販売実績照会アプリケーション
 ヒント
 解説
■6 オブジェクト指向UIのフィロソフィー
6-1 オブジェクトの原義
6-2 オブジェクト指向
 クラスとインスタンス
 イデア論
 GUIにおけるオブジェクト
 プログラミングにおける記述法
6-3 GUI
 マン ? マシン インターフェースからユーザーインターフェースへ
 インターフェースはユーザーとオブジェクトを接着する
 Whirlwind GUIという発想の原型
 SAGE 防空システムに組み込まれた最初期のGUI
 Sketchpad グラフィック言語による対話型コンピューター
 NLS 知的生産活動のためのコンピューター
 Smalltalk 誰もが使えるパーソナルコンピューター
 TUI テキストベースのUI
 Star GUIベースのビジネス用ワークステーション
 Macintosh 商業的に成功した最初のGUIシステム
 iPhone パーソナルコンピューターの新しいフォームファクター
 メタメディアとしてのオブジェクト指向UI
6-4 モードレス
 モードレスネスを信奉しなさい
 ラリー・テスラー テキスト編集のモードレス化
 ドナルド・ノーマン モードエラーの分析
 ジェフ・ラスキン モードレスにすることで劇的に使いやすくなる
 モードレスにする方法
6-5 オブジェクト指向UIについての文献
 『Object-Oriented User Interfaces and Object-Oriented Languages』
 『Object-Oriented Interface Design』
 『Designing Object-Oriented User Interfaces』
 『The Elements of User Interface Design』
 『Designing for the User with OVID』
おわりに
参考文献
索引
あとがき

↓全て表示↑少なく表示
Users Voice
ここ10年くらいで一気に普及した UI・UXという概念は、一部では未だに蔑ろにされています。 お役所のホームページなどはその最たる例で、 「一体だれがこれを使いやすい(わかりやすい)と思ったのか」と 呆れることも少なくありません。プロが作ったはずなのに。 曖昧な要求で技術者を振り回す発注者や、 駆け出しのエンジニアさん達には、ためになりそうです。 直観的に使いやすいメニューやナビゲーション構成というのは 出来る人は自然とそう設計できるものだったりもしますが、 こうして半ば無理やりに言語化して教わらないと身に着けられない人も多く、 その観点で、とても意味のある本だと感じました。 (参考:YahooShopping)

↓全て表示 ↑少なく表示
人気の書籍ということで、学びのために購入してみました。なかなかのボリュームなので、しっかり読み込んで理解していこうと思います。大切な分野です。 (参考:YahooShopping)

↓全て表示 ↑少なく表示
もっと実例に沿って解説してくれると思っていたのですが、目新しいことはあまり載っていなかったです。 うーん、いまひとつ。残念。 (参考:YahooShopping)

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

(引用元Amazon)

 
著者略歴

著監:上野 学
デザインコンサルタント/デザイナー。各種ビジネスアプリケーション、ウェブ/モバイル/デスクトップアプリケーション、その他の様々なインタラクティブメディアのヒューマンインターフェース設計およびユーザビリティ評価に従事。ソシオメディアにおいてデザインメソッド開発を担う。執筆、講演など多数。 Twitter:@manabuueno

著:藤井 幸多
ソシオメディア株式会社ユーザーインターフェースデザイナー。各種ビジネスアプリケーションをはじめさまざまなアプリケーションのデザインコンサルティングを経験。UI設計、ユーザビリティテスト、デザインガイドライン策定、デザイン評価、OOUI メソッドとトレーニングプログラムの開発/実施などを通して、デザイン組織への支援を行う。 Twitter:@ atochotto


↓全て表示↑少なく表示

  

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

『オブジェクト指向でなぜつくるのか』10年ぶり、待望の改訂第3版!
これからの10年も通用する基本」を、より多くの読者に身につけてもらうために改訂しました。

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

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


【目次】
第1章   オブジェクト指向はソフトウエア開発を楽にする技術
今ドキのOOP:とっつきやすくて、奥の深いPython
第2章   オブジェクト指向と現実世界は似て非なるもの
オブジェクトの向こう側:バズワードになったオブジェクト指向
第3章   OOPを理解する近道はプログラミング言語の歴史にあり
プログラミング昔話: COBOL コンパイラのニワトリとタマゴの話
第4章   OOPは無駄を省いて整理整頓するプログラミング技術
今ドキのOOP:ホームページツールから進化したPHP
第5章   メモリの仕組みの理解はプログラマのたしなみ
プログラミング昔話: OOPはダンプが見づらい?
第6章   OOPがもたらしたソフトウエアとアイデアの再利用
今ドキのOOP: Rails フレームワークでブレークしたRuby
第7章   汎用の整理術に化けたオブジェクト指向
オブジェクト指向の向こう側:言語が先か、コンセプトが先か
第8章   UMLは形のないソフトウエアを見る道具
第9章   現実世界とソフトウエアのギャップを埋めるモデリング
第10章   擬人化して役割分担させるオブジェクト指向設計
今ドキのOOP:クラスに縛られずに動くJavaScript
第11章   オブジェクト指向から生まれたアジャイル開発
プログラミング昔話:昔は許されなかったXP
第12章   オブジェクト指向を使いこなそう
補章   関数型言語でなぜつくるのか
今ドキのOOP:関数型言語の箱庭を用意したJava

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

(引用元Amazon)

 
目次

【目次】
第1章 オブジェクト指向はソフトウエア開発を楽にする技術
今ドキのOOP:とっつきやすくて、奥の深いPython
第2章 オブジェクト指向と現実世界は似て非なるもの
オブジェクトの向こう側:バズワードになったオブジェクト指向
第3章 OOPを理解する近道はプログラミング言語の歴史にあり
プログラミング昔話: COBOL コンパイラのニワトリとタマゴの話
第4章 OOPは無駄を省いて整理整頓するプログラミング技術
今ドキのOOP:ホームページツールから進化したPHP
第5章 メモリの仕組みの理解はプログラマのたしなみ
プログラミング昔話: OOPはダンプが見づらい?
第6章 OOPがもたらしたソフトウエアとアイデアの再利用
今ドキのOOP:Rails フレームワークでブレークしたRuby
第7章 汎用の整理術に化けたオブジェクト指向
オブジェクト指向の向こう側:言語が先か、コンセプトが先か
第8章 UMLは形のないソフトウエアを見る道具
第9章 現実世界とソフトウエアのギャップを埋めるモデリング
第10章 擬人化して役割分担させるオブジェクト指向設計
今ドキのOOP:クラスに縛られずに動くJavaScript
第11章 オブジェクト指向から生まれたアジャイル開発
プログラミング昔話:昔は許されなかったXP
第12章 オブジェクト指向を使いこなそう
補章 関数型言語でなぜつくるのか
今ドキのOOP:関数型言語の箱庭を用意したJava

↓全て表示↑少なく表示
Users Voice
タイトルから,オブジェクト指向言語の使い方についての HowTo 本だと思いましたが違いました。 なぜ,オブジェクト指向が現代において普及しているのかを,歴史を追って説明し,とても簡単に理解しやすい内容となっています.最初の方は,「コーディングを支える技術」と似通った内容になっているので,読んだことがある人は読み飛ばすことができます. 基本的な解説は Java を用いていますが,Java を知らなくても理解できる切り口となっています. オブジェクト指向の解説が書籍の9割です。 個人的には,「デザインパターンを比喩で説明されてもあまりよくわからなかったので,オブジェクト指向は比喩を使って説明されがちだからわかりづらくなっている,あくまでプログラミング技術の一つ」,のような考え方がとてもしっくりきました. 最後に関数型プログラミングについての説明があります。 プログラミングの整理術から上流工程のモデリング手法まで使われるようになったオブジェクト指向の全体感を,オブジェクト指向に詳しくなくても理解できるので,オブジェクト指向を使うプログラミングを習った早い段階で読むと,良いと思いました. (参考:YahooShopping)

↓全て表示 ↑少なく表示
どの本を読んでわからなかったオブジェクト指向のキモの部分を詳細に分かりやすく解説している本です。 少しボリュームが多いので根気強く読むことをオススメします。 (参考:YahooShopping)

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

(引用元Amazon)

 
著者略歴

著:平澤 章
ウルシステムズ株式会社所属。 メインフレームによる金融システムからマイクロコンピュータを使った制御系システムまで、いくつかのシステム開発を経験した後、30代前半でオブジェクト指向モデリングとSmalltalk、(Observerパターンの)MVCフレームワークに出会い、衝撃を受ける。その後、技術コンサルティングの仕事を経て、2001年にウルシステムズのスタートアップに参画し、現在に至る。 著書/翻訳書:『UMLモデリングレッスン』(著、日経BP)、『リファクタリング 第2版』(共訳、オーム社)、『レガシーコード改善ガイド』(共訳、翔泳社) ほか


↓全て表示↑少なく表示

  

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

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

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

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

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

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

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

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

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

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

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

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

↓全て表示↑少なく表示
 
目次
第1章 オブジェクト指向設計
第2章 単一責任のクラスを設計する
第3章 依存関係を管理する
第4章 柔軟なインターフェースをつくる
第5章 ダックタイピングでコストを削減する
第6章 継承によって振る舞いを獲得する
第7章 モジュールでロールの振る舞いを共有する
第8章 コンポジションでオブジェクトを組み合わせる
第9章 費用対効果の高いテストを設計する

↓全て表示↑少なく表示
Users Voice
普段はC,C++を使っています。 Ruby未経験ですが、本書はRubyでの記載でした。 但し、少し推測でよんでいますが、オブジェクト指向がわかっている人なら読むことは可能です。 内容は、今までにはなかった本でして依存関係に関して詳しく書いています。買ってよかったです。ステップアップしたい人は一回は読むべきです。 できれば、脳内変換が無駄な気がするのため、C++やJava版も欲しかった。。。 (参考:YahooShopping)

↓全て表示 ↑少なく表示
『オブジェクト指向設計実践ガイド』
ソフトウェア・アーキテクトとして30年以上の経験を持つSandi Mets 氏の著書です。
「オブジェクト指向」って、プログラミングの世界では普通に使われている言葉なんですが、プログラミング初心者の私には全然その姿が見えませんでした。
学生時代に勉強したプログラミング言語のBasic、FORTRANは手続き型言語でしたし、趣味でいじっていたEXCELマクロのVBAも小さいものばかりだったので必要としませんでした。
今回、RubyやRuby on Railsを真剣に取り組み始めて、他人のコードを見て???となるばかり。
そこで評判も良く、Rubyを使って説明している本書に挑戦してみることにしました。
【本書で学べること・考えること】
・オブジェクト指向プログラミングの利点
・単一責任のクラスの決定
・不必要な依存の断ち切り
・柔軟なインターフェイスの定め方
・ダックタイピング
・上手な振る舞いの適用
・コンポジションによるオブジェクト作成
・費用対効果の高いテスト設計
読んでみての感想です。
元の説明が冗長的な上に直訳的な日本語訳なので、なかなか読解が難しい本です。
絶対の正解があるわけでなく、概念的な内容なので、より難解です。
ただ、説明がRubyのコードで書かれているので、コードを読めば内容が理解できる点も良かったです。
今の自分のスキル、知識では、全部を理解することはできませんでした。
ただ、読む前と読んだ後では、確実にコードの見方や書き方が変わったと思います。
(Rubocopがメソッドの行数が多いと注意してくる理由が分かりました。)
自分の理解した内容としては、以下の通りです。
・オブジェクト指向の目的
 SOLID、DRY、デメテルの法則としった原則に基き、将来的に変更や拡張のコストを下げる柔軟性の高いソフトウェア設計を行う
・注意点
 -クラスは単一責任
 -依存関係は疎結合に
 -パブリックインターフェイスを明示
・設計手法
 -ダックタイピング
 -継承 is-a関係
 -モジュール
 -コンポジション has-a関係
・テストコード
 -将来の変更に備えつつ不変的な単位でコードを書く
まだまだ理解は足りませんが、体系的に知識を得たので、必要に応じて戻ってこれると思います。
今のタイミングで読んでおいて良かったです。 (参考:honto)

↓全て表示 ↑少なく表示
Rails実務経験半年の頃に読んだが、オブジェクト指向について理解しているけれど実践できない自分にはとても勉強になる内容だった。
読んだら力になることは間違いないが、読むのにかなり気合いを要したので、「それなりに実務経験を積んでから読む」 or 「短期間で集中して読む」のがいいと思う。
自分は後者。
全て完璧に理解したとは言えないので、時間を見つけて読み返したい。 (参考:honto)

↓全て表示 ↑少なく表示
著者略歴
メッツ,サンディ(Metz,Sandi)
ソフトウェア・アーキテクトとして、デューク大学にて毎日コードを書いている。デューク大学のチームでは、15年以上進化しつづけてきた大規模なオブジェクト指向アプリケーションを抱える顧客の、実際の問題を一丸となって解決している。現在、ノースカロライナのダーラム在住

高山泰基(タカヤマタイキ)
株式会社Misoca勤務。西日暮里.rbのメンバー(本データはこの書籍が刊行された当時に掲載されていたものです)

↓全て表示↑少なく表示

  

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

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

↓全て表示↑少なく表示
 
Users Voice
■個々のデザインパターンを勉強するつもりで読み始めたが、デザインパターンの根底にある考え方を習得することができた。
■Q1. 従来のオブジェクト指向設計の限界とは?
従来のオブジェクト指向設計では、流動的要素に対して継承による特化という手法で対応していた。この手法は、必要以上の継承階層によって結合度が強まり、凝集度が低下するため、保守性と柔軟性の悪化を引き起こす。
CAD/CAMシステムの例では、フィーチャーとシステムという2種類の流動的要素に対して、フィーチャー数とシステム数を掛け合わせた数のクラスが必要になってしまう。これに対して、パターンに基づいたオブジェクト指向設計アプローチでは、流動的要素を個別のクラス内に保持(カプセル化)する。
■Q2. オブジェクトの新たな考え方とは?
従来は、データとデータを取り扱うための手続きという、実装の観点でしかオブジェクトを見ていなかった。これに対して、新たな考え方では、概念上の観点=責務に基づいてオブジェクトを捉え、責務を備えた実態として定義する。これにより、オブジェクトがどう実装されるのかではなく、何を実行するかに着目できるようになる。実装ではなく動機に着目するというのは、デザインパターンでよく出てくるスローガンである。
■Q3. カプセル化の新たな考え方とは?
従来は、カプセル化とはデータ隠蔽であると考えられていたが、これはカプセル化の限られた一面である。新たな考え方では、カプセル化とは、あらゆるものを隠蔽することである。データのほかに、実装、派生クラス、設計の詳細、実体化の規則を隠蔽することができる。派生クラスのカプセル化は、型のカプセル化とも言えるもので、抽象クラスを使用するクライアントは、派生クラスの存在を意識する必要がなくなる。
■Q4. 共通性/可変性分析とオブジェクト指向やデザインパターンの関係は?
共通性/可変性分析を用いて、オブジェクトを見つけ出す。共通性分析によって流動的要素をまとめる概念を定義し、抽象クラスを導き出す。可変性分析によって流動的要素を洗い出し、派生クラス(具象クラス)によって実装する。
☆図8.5+Fowlerの観点:
・オブジェクトの概念上の観点=責任
・オブジェクトの仕様上の観点=メソッド(振る舞い)
・オブジェクトの実装上の観点=コード、データ、演算処理
■Q5. パターンで考えるとはどういうことか?
問題領域からパターンを洗い出すことから始める(第3部の各章)。次に、洗い出したパターンの適用順序を決めて、各パターンの“canonical form”に当てはめる(第4部)。大枠から入ることによって、詳細に気を取られすぎることを回避できる。Alexanderのアプローチとも呼んでいる。
ただし、「パターンで考える」ことが有効となるケースは多くない。これに対して、共通性/可変性分析は大抵のケースで有効な方法である。
※問題領域:解決しようとしている問題そのもののこと。
■Q6. コンテキストからの設計原則とは?
コンテキストとは、あるオブジェクトが別のオブジェクトをどうやって使用するのかということ。コンテキ���トからの設計原則とは、オブジェクトにどのような要求があり、その要求に対してどのようなサービスを提供するのかという「サービス指向」を目指すことである。
コンテキストからの設計は、Alexanderの設計アプローチとも呼んでおり、以下のようなアプローチである。「パターンで考える」と同じことを言っている。
1.全体の概念を理解する。
2.パターンを洗い出す。
3.他のパターンのためのコンテキストを作り出すパターンから開始する。
4.コンテキスト内に向かって、パターンの適用と、新たなパターンの洗い出しを繰り返す
ほとんどのデザインパターンがこのアプローチに従っている。
※コンテキスト:何らかのものをその中に存在または発生させる、互いに関連しあう条件、すなわち環境や設定のこと。あるパターンは、他のパターンのためのコンテキストを提供する。
■Q7. 流動的要素のカプセル化原則とは?
流動的な振る舞いを有した派生クラスを、使用側から隠蔽すること。凝集度を高め、流動的要素間の結合度を低くするために、クラス内に複数の流動的要素を保持しないことが重要である。CAD/CAMシステムの例では、Bridge, Abstract Factory, Adaptor, Fecadeの各パターンにより、カプセル化する流動的要素を分けている。
■Q8. クラス継承よりオブジェクトの集約を多用するとはどういうことか?なぜか?
被使用側クラスの流動的要素に合わせて使用側クラスを派生(継承)させるのではなく、使用側クラスに被使用側クラスを保持させたうえで、汎用的なインタフェースを経由して呼び出すこと。被使用側クラスで流動的要素をカプセル化することにより、汎用的なインタフェースを提供できるようになる。
※Strategyパターンが一例。
■Q9. 開放/閉鎖原則とは?
ソフトウェアは変更することなく拡張できるように設計すべきという考え方。デザインパターンの根幹には開放/閉鎖原則がある。
■Q10. 共通性/可変性分析とは?
問題領域内に存在している概念(共通性)と具体的な実装(可変性)を洗い出すこと。システムの流動的要素を洗い出すことができる。以下のような、共通性/可変性分析テーブルを作りながら進める。
共通性 | 存在する流動的要素
概念1 | 具体的な実装1-A
| 具体的な実装1-B
概念2 | 具体的な実装2-A
| 具体的な実装2-B
| 具体的な実装2-C
… | …
流動的要素を洗い出した後は、デザインパターンの教訓(インタフェースを用いて設計を行い、集約を用いて流動的要素をカプセル化する)を活用できる。
デザインパターンによるアプローチ(コンテキストからの設計)とよく似ている。しかし、相互補完的な面もある。共通性/可変性分析によるアプローチは、抽象的側面の洗い出しに役立つ。デザインパターンによるアプローチは、抽象的側面間の関連に着目する。
■Q11. 分析マトリクスとは?
問題領域内に存在する流動的要素を明確にするためのテクニック。分析結果から、使用すべきパターンを洗い出すことができる。以下の表が分析マトリクスであり、概念が共通性を表し、機能が特定の共通性における流動的要素を表す���
| シナリオA | シナリオB |
概念1 | 機能1-A | 機能1-B |
概念2 | 機能2-A | 機能2-B |
… | … | … |
分析マトリクスにより、要求の抜け漏れに気づくことができる。また、数多くの特殊ケースが存在し、全体像が見えない場合の整理に有効である。
■Q12. 共通性/可変性分析と分析マトリクスの関係は?
分析マトリクスは、共通性と流動的要素の整理により、複雑な問題領域の理解に役立つ。
■Q13. 有効で汎用的な設計アプローチとは?
デザインパターンから得られた以下の教訓のこと。どのような設計にも適用可能である。これは、Alexanderのコンテキストからの設計に従ったアプローチである。
・共通性/可変性分析を用いて、システムの流動的要素を洗い出す。
・流動的要素を洗い出した後、デザインパターンの教訓(インタフェースを用いて設計を行い、集約を用いて流動的要素をカプセル化する)に従う。 (参考:honto)

↓全て表示 ↑少なく表示
Gofの幾つかのデザインパターンをオブジェクト指向設計の考え方に沿って導出することでオブジェクト指向について理解を深める本。
体系だってオブジェクト指向を学んだことがなかったので,オブジェクト指向での重要な,ポリモーフィズム,カプセル化,結合度,凝集度等の概念が馴染みやすいものになったのは収穫。
これから設計を行う際の一つの指針として有効活用できる感触は得られた。
説明も適度に抽象化されており,応用可能なしっかりとした知識を得られると思う。 (参考:honto)

↓全て表示 ↑少なく表示

  

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

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

(引用元Amazon)

 
目次
1 小さくまとめてわかりやすくする
2 場合分けのロジックを整理する
3 業務ロジックをわかりやすく整理する
4 ドメインモデルの考え方で設計する
5 アプリケーション機能を組み立てる
6 データベースの設計とドメインオブジェクト
7 画面とドメインオブジェクトの設計を連動させる
8 アプリケーション間の連携
9 オブジェクト指向の開発プロセス
10 オブジェクト指向設計の学び方と教え方

↓全て表示↑少なく表示
Users Voice
内容が徐々にドメイン駆動設計に近づいていくので,「ドメイン駆動設計に興味があるけど,そもそも良い設計が何なのか知らない」みたいな人に特におすすめできる本だと思いました. 著者が Java の知見が深いのか,使用歴が長いのかわかりませんが,コードを用いた説明は Java ベースで書かれていました. 要所で Java のフレームワークについて述べているので,周辺知識を持っていると一層理解できると思います. ただし,思考が Java に傾きすぎてしまうので,現在 Web アプリのバックエンドでよく使われる言語で,書いてくれるともっとわかりやすいのにと思ってしまいました. あと,個人開発の範疇だと,設計を意識しなくても,実装できたり,拡張や運用保守などもできてしまうので,ある程度の大規模開発や実務による苦労した経験が必要に感じました, 「リーダブルコード」,「オブジェクト指向でなぜつくるのか」,「ドメイン駆動設計」を足して3で割ったような内容となっており,具体的な説明からとてもわかりやすい良書だと思います. 「クリーンアーキテクチャ」や「ドメイン駆動設計」などにも興味を持てるようになったので読んでみたいと思います. (参考:YahooShopping)

↓全て表示 ↑少なく表示
実践にそくして書いてあって、とても参考になりました。 (参考:YahooShopping)

↓全て表示 ↑少なく表示
# 書評☆3: 現場で役立つシステム設計の原則 | 失敗の原因はデータクラス/機能クラスによる手続き型設計
## 概要
- 書名: 現場で役立つシステム設計の原則
- 副題: 変更を楽で安全にするオブジェクト指向の実践技法
- 著者: 増田 亨
- 出版日: 2017-07-18
- 読了日: 2020-01-31 Fri
- 評価: ☆3
- URL: https://book.senooken.jp/post/2020/02/04/
## 評価
書名どおり,現場で役立つシステム設計の方法について書いてあった。いろんなところで参照されており,評判が高かったので興味を持って読んだ。
内容としては,プログラミング言語Javaを例としたオブジェクト指向設計について論じたものであり,リファクタリングやドメイン駆動設計やDB,Web APIとの連携の設計についても書いてあった。
一番印象に残っているのが,「Chapter 3 業務ロジックをわかりやすく整理する」だ。変更しにくく,似たような処理が至るところに記述される状態ができる原因として,データクラスと機能クラスを使った手続き型設計を指摘していた。これはたしかにそのとおりだと思った。
内容全体として,オブジェクト指向に沿った設計を行い,業務の関心事項の単位でクラスを作ることでうまく設計できるという話だった。
いろいろ書いてあったが,結局はオブジェクト指向を意識してやれば大丈夫という内容だった。
## 結論
既存コードの失敗例を上げながら,なぜダメなのかどうすればいいのかをオブジェクト指向に従った形で解説されていた。
オブジェクト指向を理解して実践できていれば,当然と思うような内容がやや多かった。リファクタリングなどの話も交えていて,まあまあよかった。
ただ,巷での前評判が高かったので,それと比べるとやや過大評価に感じた。
あくまで著者が考える方法のひとつであり完璧とも思わない。それに,知っていても実際に自分の場面で適用できるかどうかはある程度経験が必要になる。
そういう意味で,普段の開発に問題を抱えている人が読むと参考になるだろうと感じた。 (参考:honto)

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

(引用元Amazon)

 
著者略歴
増田亨(マスダトオル)
有限会社システム設計代表。ギルドワークス株式会社取締役。業務アプリケーションのアーキテクト。日本最大級の60万件以上の求人情報サイト「イーキャリアJobSearch」の主任設計者。非同期メッセージング/API/クラウド技術を組み合わせた、柔軟で発展性に優れた疎結合のシステム間連携方式でサービスを支える(本データはこの書籍が刊行された当時に掲載されていたものです)

  

 

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

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

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

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

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

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

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

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

(2021/09/17 12:04 更新)
Rank製品価格
1
800円
2
新入社員のためのJavaプログラミングテキスト オブジェクト指向編...
発売日 2014/06/14
遠藤 正隆 (株式会社アテニューム)
Kindle Unlimited対象
総合評価
1,250円
3
269円
4
99円
5
400円
6
250円
7
99円
8
99円
9
600円
10
オブジェクト指向の第一歩
発売日 2014/11/10
高橋 潤
Kindle Unlimited対象
総合評価
540円

 

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

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

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

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

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

 

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

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

いじょうでっす。

コメント

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