レバテックフリーランスのサイトに当サイトが紹介されました!

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

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

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

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

 

  1. オブジェクト指向プログラミングの本 人気ランキング/10冊詳細
    1. 現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法
    2. オブジェクト指向でなぜつくるのか 第3版 知っておきたいOOP、設計、アジャイル開発の基礎知識
    3. オブジェクト指向UIデザイン──使いやすいソフトウェアの原理 (WEB+DB PRESS plusシリーズ)
    4. オブジェクト指向における再利用のためのデザインパターン
    5. ちょうぜつソフトウェア設計――PHPで理解するオブジェクト指向の活用
    6. オブジェクト指向のこころ (SOFTWARE PATTERNS SERIES)
    7. テスト駆動開発による組み込みプログラミング ―C言語とオブジェクト指向で学ぶアジャイルな設計
    8. オブジェクト指向入門 第2版: 原則・コンセプト
    9. Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで
    10. わかりやすいJavaオブジェクト指向入門編
  2. オブジェクト指向プログラミングの本 最新・高評価のおすすめの5冊
    1. オブジェクト指向UIデザイン──使いやすいソフトウェアの原理 (WEB+DB PRESS plusシリーズ)
    2. ちょうぜつソフトウェア設計――PHPで理解するオブジェクト指向の活用
    3. オブジェクト指向のこころ (SOFTWARE PATTERNS SERIES)
    4. 現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法
    5. オブジェクト指向でなぜつくるのか 第3版 知っておきたいOOP、設計、アジャイル開発の基礎知識
  3. オブジェクト指向プログラミングの本「Kindle Unlimited 読み放題 人気本ランキング」
  4. オブジェクト指向プログラミング参考書「新書一覧(2021年、2022年刊行)」
  5. 関連:「デザインパターン」「リファクタリング」に関する書籍
 

Kindle Unlimited 1ヶ月無料

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


 

オブジェクト指向プログラミングの本 人気ランキング/10冊詳細

以下が「オブジェクト指向プログラミングの本」人気ランキングと人気の10冊詳細です。

ランキングはAmazonの書籍売上ランキングに基づき毎日更新されています。

(2024/04/19 12:08 更新)
Rank製品価格
1
3,234円
(+195pt)
3,169円
(+191pt)
3,234円
3,234円
2
2,640円
(+159pt)
2,376円
2,640円
2,640円
3
オブジェクト指向UIデザイン──使いやすいソフトウェアの原理 (WEB+DB PRESS plusシリーズ)...
発売日 2020/06/05
ソシオメディア株式会社, 上野 学, 藤井 幸多 (技術評論社)
総合評価
(4.5)
3,278円
(+197pt)
3,212円
(+142pt)
3,278円
3,278円
4
オブジェクト指向における再利用のためのデザインパターン...
Erich Gamma (ソフトバンククリエイティブ)
総合評価
(4.1)
5,280円
(+317pt)
5,280円
5,280円
5
ちょうぜつソフトウェア設計――PHPで理解するオブジェクト指向の活用...
発売日 2022/12/07
田中 ひさてる (技術評論社)
総合評価
(4.5)
3,080円
(+185pt)
3,018円
(+181pt)
3,080円
6
オブジェクト指向のこころ (SOFTWARE PATTERNS SERIES)
発売日 2014/03/11
アラン・シャロウェイ, ジェームズ・R・トロット (丸善出版)
総合評価
(4.5)
4,180円
4,180円
4,180円
7
3,960円
(+238pt)
3,960円
3,960円
8
オブジェクト指向入門 第2版: 原則・コンセプト
発売日 2007/01/01
バートランド メイヤー (翔泳社)
総合評価
(3.9)
7,920円
(+476pt)
7,920円
7,920円
9
Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで...
発売日 2017/04/18
谷本 心, 阪本 雄一郎, 岡田 拓也, 秋葉 誠 (技術評論社)
総合評価
(3.8)
3,278円
(+197pt)
3,278円
3,278円
3,278円
10
わかりやすいJavaオブジェクト指向入門編
発売日 2013/12/27
川場隆 (秀和システム)
総合評価
(3.5)
260円
1,287円
2,574円
894円
 

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

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

(引用元Amazon)

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

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

↓全て表示 ↑少なく表示
どのよう設計すればオブジェクト指向を使用し、理路整然としたシステムを構築できるかが説明されています。 ドメイン駆動設計やリファクタリングの詳細は本書でも紹介されている 他書を参考することをお勧めしますが、 要点がまとまっていて良い内容かと思いました。 (参考:YahooShopping)

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

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

(引用元Amazon)

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

  

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

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

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

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


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

(引用元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
この手の本を買った経験があまりなかったですが、良くも悪くも読みやすく、オブジェクト指向言語について理解させてくれます。 実践的なあれこれというよりは、開発の歴史を紐解くという感じだったと思います。 おすすめは、できます。 (参考:YahooShopping)

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

↓全て表示 ↑少なく表示
オブジェクト指向言語でおさえておくべきポイントが網羅的に解説されており、自らの知識の再整理には役立った。またUMLやアジャイル開発等、オブジェクト指向言語と親和性のある開発関連の手法等についても触れられており、現代の開発の全体像や概念の理解には役に立った。あとはリアルな開発の実践の中で、これらの手法や考え方とのリンケージをとりながら、自ら消化していくことが大事。今後そのような実践機会があれば、適宜手に取って復習するべき書籍となろう。 (参考:楽天)

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

(引用元Amazon)

 
著者略歴

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


↓全て表示↑少なく表示

  

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

オブジェクト指向UIデザイン──使いやすいソフトウェアの原理 (WEB+DB PRESS plusシリーズ)
(著)ソシオメディア株式会社, 上野 学, 藤井 幸多
発売日 2020/06/05
総合評価
(4.5)
(2024/04/19 12:08時点)
銀の弾丸、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


↓全て表示↑少なく表示

  

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

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

(引用元Amazon)

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

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

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

↓全て表示 ↑少なく表示
 
  

ちょうぜつソフトウェア設計――PHPで理解するオブジェクト指向の活用

こちらの書籍は 2023/01/12 紙版の2刷に対応するため更新をおこないました。
(概要)

人気のSoftwareDesign誌での連載とAdvenカレンダー2年分の原稿を描き直し再構成。正面からオブジェクト指向考え方の基礎から、UML記法、アジャイル開発など、モダンなソフトウェア開発のなかで、開発の現場で問題となるテーマを取り上げる。とくにデザインパターン、アンチパターンをテーマごとにイラスト解説し、現在主流になりつつある考え方まではばひろく解説していく。可愛らしいイラストによって楽しく学習することができます。


(こんな方におすすめ)

・プログラマー、情報科学科の学生


(目次)

第1章 クリーンアーキテクチャ

  1-1 ソフトウェアとアーキテクチャ

  1-2 アーキテクチャは動作に貢献しない

  1-3 汚い設計はなぜ生産性を落とすか

  1-4 凝集度

  1-5 依存の向きと安定度

  1-6 どうすればクリーンになるのか

  1-7 遍在するクリーンアーキテクチャ

第2章 パッケージ原則

  2-1 再利用リリース等価の原則

  2-2 全再利用の原則

  2-3 閉鎖性共通の原則

  2-4 非循環依存関係の原則

  2-5 安定依存の原則

  2-6 安定度抽象度等価の原則

  2-7 アーキテクチャの外側

第3章 オブジェクト指向

  3-1 オブジェクト指向の定義はない

  3-2 カプセル化

  3-3 多態性

  3-4 継承/汎化

  3-5 構造化プログラミングと何が違うのか

第4章 UML(統一モデリング言語)

  4-1 UML 概要

  4-2 パッケージ、クラス、インターフェース

  4-3 集約コンポジション

  4-4 インスタンス図とシーケンス図

  4-5 シーケンス図

  4-6 UMLはプログラミング言語ではない

第5章 オブジェクト指向原則 SOLID

  5-1 SOLID

  5-2 単一責任原則

  5-3 開放閉鎖原則

  5-4 リスコフの置換原則

  5-5 インターフェース分離原則

  5-6 依存性逆転原則

第6章 テスト駆動開発

  6-1 実際に動くプログラム

  6-2 単体テスト

  6-3 xUnit 実践

  6-4 オブジェクト指向との併用

  6-5 テスト駆動開発:振る舞いのためのTDD

  6-6 テスト駆動開発:設計のためのTDD

  6-7 テスト駆動の総括

第7章 依存性注入

  7-1 依存性注入とは

  7-2 DI コンテナ

  7-3 オートワイヤリング

第8章 デザインパターン

  8-1 原則の先へ

  8-2 名前を持つ概念

  8-3 多態性を設計する

  8-4 インスタンスを生成する

  8-5 オブジェクトで構造を作る

  8-6 構造のオブジェクト間にあるもの

  8-7 データモデルの構造

  8-8 クラスか高階関数か

  8-9 どこで生成されどこで振る舞うか

  8-10 「再利用可能なオブジェクト指向ソフトウェア」

第9章 アジャイル開発

  9-1 オブジェクトの分類

  9-2 ドメイン駆動設計

  9-3 アジャイル開発

  9-4 ウォーターフォールの幻影

  9-5 偽物のアジャイルにならないために

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

(引用元Amazon)

 
Users Voice
僕は実際のコーディングが出来るが、設計をした事がない。
かなりの制作物を作った自分としては、設計がしたいから、
何かいい設計の本が無いかと、本屋を探してて出会ったこの1冊。
==================================
最初絵がアニメっぽく子供っぽい印象でした。(好きですが)

本の内容を書いてる作者が、絵を描いてるらしく、プログラミング技術には
そんなに優れてないのではないかな?と少々馬鹿にしてました。

でもかわいらしい絵だから好きに成れるかもしれないなと、
ページを開き観た所、そこはちょっと油断し過ぎていたと思いしました。
================================
そしてページをめくってみると、最初数ページが漫画なのですが、
漫画の中に書かれてる言葉の洪水に圧倒されました。

『この本の作者はかなり経験を積んで、主観的にその経験談から、ソフトウェアの設計が語られてる本だ』

まだ3章までしか読み進めてません。経験者の主観で書かれてる為、少々その内容をちゃんと理解するには、その単元で語ってる事が作者と同等の読者に技術経験が要求されたり、あるいは読解力、しっかりした基礎を要求される、初心者には難解な書物に思えます。
========================================
ただ私もある程度の経験があり、クラスを結構扱えるように色々なライブラリを作ってます。

設計面では始めコーディングして動くモノを作ります。
構造化プログラミングでサブルーチンは頻繁に使うもの以外は
メインプログラムで長いプログラムを作ります。

それを分割してサブルーチン化し、クラスにまとめる。
物凄い手間のかかる作り方ですが、自分はこの方法が一番しっくりくる開発手段です。

そして自分のプログラムがあまりに複雑すぎて難解になり、意味を読めなくなったら、そこを消して、
その箇所だけのテストプログラムとサブルーチンで作って、その箇所をテストが成功したら、
その消した部分に埋め込んだり、そこをサブルーチンを呼ぶ。

そんな僕は突貫工事のバリバリのIT土方です(上等)。

そう言う意味では、その主観的経験則から共感する事は多く、
話してる内容になんとなくついて行けてる様にも感じます。
=====================================
しかしこの書物を読み進めるには、
各章の事柄に精通してないと、ちんぷんかんぷんになる可能性は高く思います。

まずはコードを書いて、オブジェクト指向を覚えてからでないと、まずついて行けないと思います。
=====================================
そんな設計をかじったり、生産物を作れたり、プログラミング技術の基礎がしっかり出来たり、
やはりいろいろな知識と経験がある程度要求されるように思います。

よかったら読んでみてください。凄く内容の濃い本です。 (参考:楽天)

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

(引用元Amazon)

 
  

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

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

↓全て表示↑少なく表示
 
目次
第1部 オブジェクト指向ソフトウェア開発入門
第2部 従来のオブジェクト指向設計における限界
第3部 デザインパターン
第4部 すべてをまとめる:パターンを使って考える
第5部 新たな設計パラダイムに向けて
第6部 パターンの持つその他の価値
第7部 ファクトリ
第8部 まとめ、そして今後

↓全て表示↑少なく表示
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)

↓全て表示 ↑少なく表示
オブジェクト指向そのものに対して懐疑的なのだけど、それでもこの本は面白く、有用でもある。昔々オブジェクト指向について真剣に考えていたときに読みたかった。多少バイアスがかかっているところもあるが、許容範囲内だった。

デザインパターンについては長らく誤解されているところがあった(る?)。デザインパターンを身に着けてしまえばすぐに正しい設計技法が使えるようになると勘違いな風潮が広まっていた。この本はそういう誤解を改めてくれる。確かに何もない混沌としたところからスタートするよりはずっと楽な道を歩めるようにはなる。それでも優れた設計技法を身につけるには長い時間がかかるし、本を読んだり、適当に使ってみるだけで身につくものでもない。この本はパータンの直接的な活用法よりも、むしろそういった分析の指針を与えてくれるところの一面を強調している。この点については完全に同意する。オブジェクト指向の入門書としても、パターン自体の解説書としても、ありがちなコードを提示しただけのものとは一線を画している。即効性はあまり高くなくとも良い本だった。 (参考:楽天)

↓全て表示 ↑少なく表示
 
  

テスト駆動開発による組み込みプログラミング ―C言語とオブジェクト指向で学ぶアジャイルな設計

本書は、すぐれた組み込みソフトウェアを開発するための手法を豊富なサンプルコードとともに解説する本です。
前半では、制約のある組み込み環境でテスト駆動開発を行うための基礎知識とノウハウを懇切丁寧に紹介します。
後半では、オブジェクト指向をベースに考え出されたSOLID原則やリファクタリングをC言語に適用し、アジャイルな設計を実現するための方法を示します。
さらに、レガシーコードへのテストの追加方法についてもサンプルコードを使って詳細に解説します。

テスト駆動開発を学びたい、アジャイル開発について知りたい、レガシーコードと日々格闘している、そんなすべての組み込みCプログラマ必携の一冊です。
 
内容サンプル

(引用元楽天Books)

 
Users Voice
C言語でもポリモーフィズムによる柔軟な設計・実装ができることを
名言してくれる書籍に出会えて嬉しい。
# 逆を言えば仮想関数や継承を使っても柔軟な設計・実装に
# なるわけではない。:-)
テスト駆動開発、テストダブルな試行を重ねることにより、
プロダクトコードは磨かれ、高凝集、疎結合な作りになっていく。
適切に抽象化されたコードは、詳細な実装への索引として機能し、
読み手が見たいと思う処理に導いてくれる。
Kent Beck テスト駆動開発入門 2003 Productivity Award
Kent Beck XPエクストリーム・プログラミング入門 2000 Jolt Productivity Award
Robert C. Martin アジャイルソフトウェア開発の奥義 2003 Jolt Award
Martin Fowler リファクタリング
Michael Feathers レガシーコード改善ガイド(未読)
などのエッセンスを、組み込みプログラミングの世界でどのように実践するか、
そのヒントが実例とともに紹介されている。
これだけ実例を示されても実践できていない自分はまだまだ未熟だ。がんばろ。
James W. Grenning ボブおじさんと同僚 agile 宣言の初期メンバ
Ken Poughなどとも知り合い
x SOLID原則 良い設計 テストしやすい設計
xviii 蜂はきれいにシステムを構築する
1 カーニハン引用 こまめな動作確認 縦糸と横糸
6 ケントベック 7 ファウラー
44 46 必要以上に抽象化、汎用化しない。一歩づつ進めていく。
47 1つのテストにたくさん盛り込みすぎてしまう。読みやすさを損ない、焦点をぼかすことになる。
59 不機嫌な対応をされても、聞いたほうがいい。
69 実行可能なリマインダとしてIGNOREテストケースを仕込んでおく。
73 76 DRY 重複コードの弊害 似たような作業を網羅してしまう。
75 グレーボックステスト 徹底度もグレーゾーン
83 組み込み業界ではよく見かける演習
85 理想主義者は、その人が問題からどれくらい離れたところにいるかに比例して拡大する。
109 やりとりのシーケンスをシミュレートするのは、全体をシミュレートするよりもはるかに簡単で、はるかに効果的だ。
145 あたり やりすぎを防ぐコツ。IFを適切にするコツ。もしかしたら作りこみすぎているかもしれない。
151 あたり 次の橋ができるまで、今まで渡れていた橋を燃やさない。
159 ランダム関数のテストコード
218 ポリモーフィズム
225 ANSI C99 構造体初期化
242 抽象化が良いコードは索引として機能する。 (参考:honto)

↓全て表示 ↑少なく表示
C言語でも特に組み込みを意識した領域でTDDを実践するためにノウハウが書かれた本。 kernel driverなんてユニットテスト書けないし、書いても意味がない、という人が多いですが、オブジェクト指向の考えを取り入れることで、ロジックとHWの責務をきちんと分割しつつ、Red-Green-Refactorとステップを踏むことで確実に実装を進めていけることがわかると思います。 ターゲットがなくても、ホスト上でロジックを先に実装してテストが通っている状態に持っていけることの意義は大きいです。 後半ではSOLID原則など設計指針の説明もまとめられていて、C言語でどのようにオブジェクト指向プログラミングができるか、も実践的なコードで解説されているので新しい発見があると思います。 監訳者の蛸島さんにお会いする機会があったのでサインをいただきました。ありがとうございました! (参考:honto)

↓全て表示 ↑少なく表示
ハードウェアを制御する必要がある組込みシステムにおいて、開発者は、xUnitやテスト駆動開発を導入するのは難しいと考えがちだ。本書は、そのような読者を想定している。組込みシステムにおいても、少しの工夫によってxUnitを使ったテスト駆動開発が適用できることを、具体的な演習を通じて体験的に理解できるよう構成してある。

まず、いきなりテスト駆動のサイクルを押しつけてはこない。組込みシステム固有の問題を挙げては、その回避や対処の方法を示し、それからテスト駆動の一部を適用するという手順で、徐々に適用を進めていく。この進め方であれば、テスト駆動に懐疑的な開発者も得心するであろうと感じた。

そして、本書の演習に従ってテスト駆動で開発してみれば、ハードウェアを動かすコードと、機器の機能を提供するアプリケーション側のコードがきちんと分離された構造が得られることも体感できる。組込みシステムの開発者は、ハードウェアを動かすために書いたコードを膨らませてアプリケーションを作りがちだが、そのような状況を改善する方法を解説しているとも見なせるだろう。

また、組込みシステムにテスト駆動を適用するときに遭遇しがちな問題に、ひとつひとつ対処している。実は紹介している対処法の多くは、組込みシステムのプログラマが経験的に利用している方法である。登場するのは、データ隠蔽、シングルインスタンスモジュール、マルチインスタンスモジュール、デュアルターゲット、テストダブル、スタブなどだ。組込みプログラミングにおける各種テクニックを紹介しているとみてもよいだろう。

たとえば、Cプログラマならば、データのカプセル化のためにヘッダファイルで構造体を宣言する方法を使っているだろう。本書では、さらに手堅いデータ隠蔽の方法として、ヘッダファイルには構造体の不完全型宣言だけを書いておき、構造体の完全な宣言は.cファイルに書いておく方法を紹介している。あるいは、ヘッダファイルには関数へのポインタを宣言しておき、本番用関数とスタブとして用意した関数の名前が異なっていた場合でも入れ替えを容易にする方法なども紹介している。このようなテクニックは、組込みシステムのプログラマにはよく知られているものであるが、書籍にまとまった解説があると導入や教育の際に大いに助かる。

さらに、本文の各所で、文献を参照し、著名人のことばを引用している。たとえば、本書の前段では、ジャックガンスルの「開発の縦糸と横糸」の引用がある。彼のことばによって、ハードウェアをテストし、コードをテストし、そして結合してテストする、という本書の重要な考え方が象徴されており、その後に続くテスト駆動の導入に引き込まれていく。
効果的な引用は、この本から次の段階へ進む場合に、よい道先案内となるだろう。

必ずしもxUnitやテスト駆動開発にこだわらなくても、読者が本書から得るものは多い。
組込みシステムの開発、とりわけ分割したテストするためのよい方法を求めている開発者に、本書を推奨する。 (参考:楽天)

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

(引用元楽天Books)

 
  

オブジェクト指向入門 第2版: 原則・コンセプト

オブジェクト指向入門 第2版: 原則・コンセプト
(著)バートランド メイヤー
発売日 2007/01/01
総合評価
(3.9)
(2024/04/19 12:08時点)
原理原則から分析設計へ!!オブジェクト指向のすべてがこの中
にある!!

本書の第1版は1990年にアスキーより『オブジェクト指向入門』として翻訳出版
され、大ベストセラーになりました。現在でもソフトウェア開発に携わる人々に
は欠かす事のできない必読書として多くの支持を得ています。今回の第2版も翻
訳出版を切望する声が多く、また関係者からもこの分野の定番書として認知され
ています。

第2版は、第1版の約3倍、1900ページ以上のボリュームで、「原則・コンセプ
ト」と「方法論・実践」の2分冊(1分冊約960ページ)になりました。本書は上
巻に該当する「原則・コンセプト」編です。

第1版と比べて大きく変わったのがソフトウェア開発の上流工程への踏み込みで
す。第1版はオブジェクト指向分析の原理原則への深い議論が中心でしたが、本
書は、その原理原則の上に分析設計を進めていくための視点が織り込まれていま
す。本書の根幹をなす原理原則の1つが「契約による設計(Design by
Contract)」の概念です。この概念はソフトウェア開発のライフサイクルを通し
て非常に重要かつ有用です。

下巻の「方法論・実践」編では、モデリングのための視点、分析設計の原則を丁
寧に解説しています。また、数多くのデザインパターンや実装技法、希少な存在
である手法上の詳細な探求、継承をうまく使うためにはどのようにしたらよいの
か、そのほかにもオブジェクト指向方法論、オブジェクト指向分析に関する話題
に多く触れられ、オブジェクト指向開発環境に関しての記述が豊富です。

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

(引用元Amazon)

 
目次
1 ネットワークの基本(ネットワークの全体像と種類
ネットワークを実現する技術
Webを実現する技術
ネットワーク機器の種類
インターネットサービスの基盤)
2 ネットワークの応用(ネットワークの設計と構築
ネットワークの運用とセキュリティ
ネットワークのパターン)

↓全て表示↑少なく表示
Users Voice
丁寧な梱包で折れ曲がる事なく無事に届きました (参考:YahooShopping)

↓全て表示 ↑少なく表示
本書は、抽象データ型に対応したEffelという言語に基づいた入門書です。
Effelという言語は、.NETに対応した版もあったので、評価版をダウンロードして確かめてみるのもいいかもしれません。
本書は、SRAにいた酒包さんが翻訳された良書で、入門と書いているように、オブジェクト指向を叫ぶ人の必読書だと思われます。
「このように構成の巧みなソフトウェアシステムは この世界のある側面を映し出す実践的モデルと見ることが出来る。、、、
ソフトウェアの設計を実践的モデルの作成と考えると、オブジェクト指向設計は実に自然なアプローチであることがわかる。」
オブジェクト指向を実装において説明するのはオブジェクト指向ではなく、実装指向だと思われます。
実装担当の人には、オブジェクト指向をどう実装するとよいかを話す必要はあると思います。
実装はオブジェクト指向の設計の考え方を明確にしながらのことで、実装だけを見ていると、方向性を間違うことがあるかもしれません。
ps.
オブジェクト指向で、日本で定評のある識者はSRAに移籍された青木淳さんかもしれません。
SmallTalkの本も併せて読むとよいかもしれません。
また、Squeakも参照するとよいと思います。 (参考:honto)

↓全て表示 ↑少なく表示
書名は「オブジェクト指向入門」ですが、960ページもあるこの本は、入門書というにはハードルが高い本です。しかし、その内容は、オブジェクト指向に携わる開発者のみならず、テストエンジニアも必読と言える内容です。
「契約による設計(Design by Contract)」の概念について参考にさせていただきました。
お勧めの一冊です。 (参考:honto)

↓全て表示 ↑少なく表示
 
著者略歴
大喜多利哉(オオキタトシヤ)
1978年生まれ、神奈川県横須賀市出身。サーバーやネットワークなどを広く取り扱うインフラエンジニア(本データはこの書籍が刊行された当時に掲載されていたものです)

  

Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで

Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで
(著)谷本 心, 阪本 雄一郎, 岡田 拓也, 秋葉 誠
発売日 2017/04/18
総合評価
(3.8)
(2024/04/19 12:06時点)
こちらの書籍は 2020/05/27 紙版の3刷に対応するため更新をおこないました。
(概要)
誕生から20年を迎え,幅広い分野のプログラミングに欠かせないJavaの基礎から応用までをしっかり解説。Javaの最新仕様(Java 8)に基づく文法から,オブジェクト指向やデザインパターン,そしてビルド,ドキュメンテーション,品質への配慮などまで,現場の開発で避けてはとおれない話もきちんとおさえました。開発やトラブルシュート経験の豊富なアクロクエストテクノロジーのメンバーが,保守性,堅牢性,性能,開発効率などの観点をふまえて書き下ろした,Java開発者必携の1冊。

(こんな方におすすめ)
・Javaの基本は理解できているものの実践的な知識はわからない方
・以前からJavaを使っているもののJava 8の新たな文法はご存知ない方

(目次)
Chapter 1 Javaの基本を知ろう ~イントロダクション~

Chapter 2 基本的な書き方を身につける

Chapter 3 型を極める

Chapter 4 配列とコレクションを極める

Chapter 5 ストリーム処理を使いこなす ~ラムダ式とStream API~

Chapter 6 例外を極める

Chapter 7 文字列操作を極める

Chapter 8 ファイル操作を極める

Chapter 9 日付処理を極める

Chapter 10 オブジェクト指向をたしなむ

Chapter 11 スレッドセーフをたしなむ

Chapter 12 デザインパターンをたしなむ

Chapter 13 周辺ツールで品質を上げる

Chapter 14 ライブラリで効率を上げる

↓全て表示↑少なく表示
 
目次
Javaの基本を知ろうーイントロダクション
基本的な書き方を身につける
型を極める
配列とコレクションを極める
ストリーム処理を使いこなすーラムダ式とStream API
例外を極める
文字列操作を極める
ファイル操作を極める
日付処理を極める
オブジェクト指向をたしなむ
スレッドセーフをたしなむ
デザインパターンをたしなむ
周辺ツールで品質を上げる
ライブラリで効率を上げる

↓全て表示↑少なく表示
Users Voice
注文してから届くまで早くてよかったです。 (参考:YahooShopping)

↓全て表示 ↑少なく表示
↓全て表示 ↑少なく表示
いろいろと書かれていますが、初心者はストレスを感じるかもしれません、ですが詳しく書いてる分、まじめにやれば他の入門書より得るものは多いと思います。 (参考:honto)

↓全て表示 ↑少なく表示
 
著者略歴
谷本心(タニモトシン)
トラブルシューティングおよびプラットフォーム開発に従事。その一方でJavaのコミュニティ活動をおこなっており、関西Javaエンジニアの立ち上げや、日本Javaユーザーグループ(JJUG)の幹事を務めるほか、サンフランシスコで開催されたJavaOne 2013、2015にてトラブルシュートについて講演

阪本雄一郎(サカモトユウイチロウ)
BCIを用いたJavaのコア部分の操作から、SpringBootを用いたWebシステムの開発、Hadoop/Sparkを用いたリアルタイムレコメンドシステム開発まで、幅広い開発経験を持ち、とにかく何でもこなす。最近では、IoT基盤プラットフォーム開発のプロジェクトリーダを務める

岡田拓也(オカダタクヤ)
開発マネジメントや、OSSプロダクトの調査/検証を経験。技術者としての仕事の傍ら、10年以上に渡って、母校の東工大にて大学生を対象にした無料Javaセミナーを開催。ITエンジニアの裾野を広げるべく、活動してきた。2014年からは、ミャンマー支社のAcroquest Myanmar Technologyにて、技術指導や支社運営に従事

秋葉誠(アキバマコト)
Javaによるミッションクリティカルな集中監視システムのフレームワーク開発から、データベース、ネットワークなどに触れて、インフラ方面に興味を持つようになる。現在は、環境構築から運用、DevOpsに向けて「開発もできるインフラエンジニア」を目指して活動している

村田賢一郎(ムラタケンイチロウ)
Javaによるミッションクリティカルな集中監視システムのフレームワーク開発、システム開発に長らく携わる。興味の中心は非同期処理、メッセージング。最近では自然言語処理を活用したプロジェクトのマネジメントをしている(本データはこの書籍が刊行された当時に掲載されていたものです)

↓全て表示↑少なく表示

  

わかりやすいJavaオブジェクト指向入門編

わかりやすいJavaオブジェクト指向入門編
(著)川場隆
発売日 2013/12/27
総合評価
(3.5)
(2024/04/19 12:06時点)
はじめてJavaのオブジェクト指向を学ぶ人のために基本から丁寧に解説した独習書です。著者がオブジェクト指向の理解に苦しむたくさんの学生の悩みや傾向を分析し、入門者にとってわかりやすい内容で解説。姉妹書の「わかりやすいJava入門編」を読み終えた人を対象に、自分のペースで本を読み、通過テストで理解度を確認して着実にステップアップさせてゆける独学・自習に最適な一冊です。Androidやウェブ開発などの実用上、例外やクラスライブラリ、マルチスレッドは必須の分野です。これらも、オブジェクト指向の十分な理解によって、グッとわかりやすくなります。本書のあとに「わかりやすいJava オブジェクト指向編」を読むことで、さらに深く理解することができます。

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

↓全て表示↑少なく表示
 
Users Voice
本書はJava入門の教科書的存在だと思う。ただ、基礎をある程度かじった人なら「あ、そういうことだったんだ、」と再認識することも多々あるのだが、全くの素人だと、わかったようでどこかスッキリとしないモヤモヤとした感覚が残るかもしれない。とりわけオブジェクト指向の箇所では、多少難しい内容もあるが、『すっきりわかるJava入門』の方が俄然私にはわかりやすいと思う。2冊を併読しながら本書の問題を解いていくと、スクールに通ってレッスンを受けているくらいの気付きがあって、初歩的な正しいコーディングが自力でできるようになる。またJavaを動かすための無料アプリケーション、eclipseのダウンロード、インストールから使い方まで実に丁寧に解説してくれているのは本書くらいなので、入門者にはうれしい一冊である。練習問題が多いので教科書件問題集。Oracleの試験対策を意識した構成なので、黒本同様、必須の一冊だと実感している (参考:honto)

↓全て表示 ↑少なく表示
同じシリーズのオブジェクト指向編が難しかったので購入。
図が多く、非常に分かりやすかったです。アノテーションなど、オブジェクト指向にのっていない項目もあります。
お勧めです。 (参考:honto)

↓全て表示 ↑少なく表示
わかりやすいJava入門編から続いて購読し、先ほど読み終わりました。
本書はオブジェクト指向の入門編であり、for文や配列などある程度知識のあることを前提にしているので、プログラミングが全く初めての方はまずわかりやすいJava入門編を購入することをお勧めします。
また、インターネット環境があり本書の回答やeclipseをダウンロードし導入しないとしんどいと思います。

オブジェクト、コンストラクタ、カプセル化、抽象クラス、クラス継承、多態性、オーバーロード、オーバーライド、インターフェース、例外を投げるかわす、マルチスレッドなどについてくわしく説明されています。

前書より内容が多岐にわたり実践的で難しく感じました、なのでかならず例題を打ちながら読み進め、すぐには理解できない所も丸のみするようなつもりでなんとか乗り切りました。
説明は非常にわかりやすいのですが、
やはり継承や引数の入れ子が複雑でメソッドやプログラミング全体像を頭で把握することが難しかったです。(一番最後の通過テスト)

プログラミングの難しさはこういう所なのかなと感じました

また誤字が多く、ダウンロードするInputクラスで日本語入力すると文字化けするのは改善してほしいです
コメントも文字化けしています (参考:楽天)

↓全て表示 ↑少なく表示
 
   

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

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

(2024/04/19 12:08 更新)
Rank製品価格
1
オブジェクト指向UIデザイン──使いやすいソフトウェアの原理 (WEB+DB PRESS plusシリーズ)...
発売日 2020/06/05
ソシオメディア株式会社, 上野 学, 藤井 幸多 (技術評論社)
総合評価
(4.5)
3,278円
(+197pt)
3,212円
(+142pt)
3,278円
3,278円
2
ちょうぜつソフトウェア設計――PHPで理解するオブジェクト指向の活用...
発売日 2022/12/07
田中 ひさてる (技術評論社)
総合評価
(4.5)
3,080円
(+185pt)
3,018円
(+181pt)
3,080円
3
オブジェクト指向のこころ (SOFTWARE PATTERNS SERIES)
発売日 2014/03/11
アラン・シャロウェイ, ジェームズ・R・トロット (丸善出版)
総合評価
(4.5)
4,180円
4,180円
4,180円
4
3,234円
(+195pt)
3,169円
(+191pt)
3,234円
3,234円
5
2,640円
(+159pt)
2,376円
2,640円
2,640円
 

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

オブジェクト指向UIデザイン──使いやすいソフトウェアの原理 (WEB+DB PRESS plusシリーズ)
(著)ソシオメディア株式会社, 上野 学, 藤井 幸多
発売日 2020/06/05
総合評価
(4.5)
(2024/04/19 12:08時点)
銀の弾丸、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


↓全て表示↑少なく表示

  

ちょうぜつソフトウェア設計――PHPで理解するオブジェクト指向の活用

こちらの書籍は 2023/01/12 紙版の2刷に対応するため更新をおこないました。
(概要)

人気のSoftwareDesign誌での連載とAdvenカレンダー2年分の原稿を描き直し再構成。正面からオブジェクト指向考え方の基礎から、UML記法、アジャイル開発など、モダンなソフトウェア開発のなかで、開発の現場で問題となるテーマを取り上げる。とくにデザインパターン、アンチパターンをテーマごとにイラスト解説し、現在主流になりつつある考え方まではばひろく解説していく。可愛らしいイラストによって楽しく学習することができます。


(こんな方におすすめ)

・プログラマー、情報科学科の学生


(目次)

第1章 クリーンアーキテクチャ

  1-1 ソフトウェアとアーキテクチャ

  1-2 アーキテクチャは動作に貢献しない

  1-3 汚い設計はなぜ生産性を落とすか

  1-4 凝集度

  1-5 依存の向きと安定度

  1-6 どうすればクリーンになるのか

  1-7 遍在するクリーンアーキテクチャ

第2章 パッケージ原則

  2-1 再利用リリース等価の原則

  2-2 全再利用の原則

  2-3 閉鎖性共通の原則

  2-4 非循環依存関係の原則

  2-5 安定依存の原則

  2-6 安定度抽象度等価の原則

  2-7 アーキテクチャの外側

第3章 オブジェクト指向

  3-1 オブジェクト指向の定義はない

  3-2 カプセル化

  3-3 多態性

  3-4 継承/汎化

  3-5 構造化プログラミングと何が違うのか

第4章 UML(統一モデリング言語)

  4-1 UML 概要

  4-2 パッケージ、クラス、インターフェース

  4-3 集約コンポジション

  4-4 インスタンス図とシーケンス図

  4-5 シーケンス図

  4-6 UMLはプログラミング言語ではない

第5章 オブジェクト指向原則 SOLID

  5-1 SOLID

  5-2 単一責任原則

  5-3 開放閉鎖原則

  5-4 リスコフの置換原則

  5-5 インターフェース分離原則

  5-6 依存性逆転原則

第6章 テスト駆動開発

  6-1 実際に動くプログラム

  6-2 単体テスト

  6-3 xUnit 実践

  6-4 オブジェクト指向との併用

  6-5 テスト駆動開発:振る舞いのためのTDD

  6-6 テスト駆動開発:設計のためのTDD

  6-7 テスト駆動の総括

第7章 依存性注入

  7-1 依存性注入とは

  7-2 DI コンテナ

  7-3 オートワイヤリング

第8章 デザインパターン

  8-1 原則の先へ

  8-2 名前を持つ概念

  8-3 多態性を設計する

  8-4 インスタンスを生成する

  8-5 オブジェクトで構造を作る

  8-6 構造のオブジェクト間にあるもの

  8-7 データモデルの構造

  8-8 クラスか高階関数か

  8-9 どこで生成されどこで振る舞うか

  8-10 「再利用可能なオブジェクト指向ソフトウェア」

第9章 アジャイル開発

  9-1 オブジェクトの分類

  9-2 ドメイン駆動設計

  9-3 アジャイル開発

  9-4 ウォーターフォールの幻影

  9-5 偽物のアジャイルにならないために

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

(引用元Amazon)

 
Users Voice
僕は実際のコーディングが出来るが、設計をした事がない。
かなりの制作物を作った自分としては、設計がしたいから、
何かいい設計の本が無いかと、本屋を探してて出会ったこの1冊。
==================================
最初絵がアニメっぽく子供っぽい印象でした。(好きですが)

本の内容を書いてる作者が、絵を描いてるらしく、プログラミング技術には
そんなに優れてないのではないかな?と少々馬鹿にしてました。

でもかわいらしい絵だから好きに成れるかもしれないなと、
ページを開き観た所、そこはちょっと油断し過ぎていたと思いしました。
================================
そしてページをめくってみると、最初数ページが漫画なのですが、
漫画の中に書かれてる言葉の洪水に圧倒されました。

『この本の作者はかなり経験を積んで、主観的にその経験談から、ソフトウェアの設計が語られてる本だ』

まだ3章までしか読み進めてません。経験者の主観で書かれてる為、少々その内容をちゃんと理解するには、その単元で語ってる事が作者と同等の読者に技術経験が要求されたり、あるいは読解力、しっかりした基礎を要求される、初心者には難解な書物に思えます。
========================================
ただ私もある程度の経験があり、クラスを結構扱えるように色々なライブラリを作ってます。

設計面では始めコーディングして動くモノを作ります。
構造化プログラミングでサブルーチンは頻繁に使うもの以外は
メインプログラムで長いプログラムを作ります。

それを分割してサブルーチン化し、クラスにまとめる。
物凄い手間のかかる作り方ですが、自分はこの方法が一番しっくりくる開発手段です。

そして自分のプログラムがあまりに複雑すぎて難解になり、意味を読めなくなったら、そこを消して、
その箇所だけのテストプログラムとサブルーチンで作って、その箇所をテストが成功したら、
その消した部分に埋め込んだり、そこをサブルーチンを呼ぶ。

そんな僕は突貫工事のバリバリのIT土方です(上等)。

そう言う意味では、その主観的経験則から共感する事は多く、
話してる内容になんとなくついて行けてる様にも感じます。
=====================================
しかしこの書物を読み進めるには、
各章の事柄に精通してないと、ちんぷんかんぷんになる可能性は高く思います。

まずはコードを書いて、オブジェクト指向を覚えてからでないと、まずついて行けないと思います。
=====================================
そんな設計をかじったり、生産物を作れたり、プログラミング技術の基礎がしっかり出来たり、
やはりいろいろな知識と経験がある程度要求されるように思います。

よかったら読んでみてください。凄く内容の濃い本です。 (参考:楽天)

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

(引用元Amazon)

 
  

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

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

↓全て表示↑少なく表示
 
目次
第1部 オブジェクト指向ソフトウェア開発入門
第2部 従来のオブジェクト指向設計における限界
第3部 デザインパターン
第4部 すべてをまとめる:パターンを使って考える
第5部 新たな設計パラダイムに向けて
第6部 パターンの持つその他の価値
第7部 ファクトリ
第8部 まとめ、そして今後

↓全て表示↑少なく表示
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)

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

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

(引用元Amazon)

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

  

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

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

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

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


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

(引用元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
この手の本を買った経験があまりなかったですが、良くも悪くも読みやすく、オブジェクト指向言語について理解させてくれます。 実践的なあれこれというよりは、開発の歴史を紐解くという感じだったと思います。 おすすめは、できます。 (参考:YahooShopping)

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

↓全て表示 ↑少なく表示
オブジェクト指向言語でおさえておくべきポイントが網羅的に解説されており、自らの知識の再整理には役立った。またUMLやアジャイル開発等、オブジェクト指向言語と親和性のある開発関連の手法等についても触れられており、現代の開発の全体像や概念の理解には役に立った。あとはリアルな開発の実践の中で、これらの手法や考え方とのリンケージをとりながら、自ら消化していくことが大事。今後そのような実践機会があれば、適宜手に取って復習するべき書籍となろう。 (参考:楽天)

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

(引用元Amazon)

 
著者略歴

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


↓全て表示↑少なく表示

   

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

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

最近はKindle Unlimitedで読める本もどんどん増えており、雑誌、ビジネス書、実用書などは充実のラインナップ。

以下がKindle Unlimitedで読み放題となるオブジェクト指向プログラミングの本の一覧です。

30日無料体験も可能なので、読みたい本があれば体験期間で無料で読むことも可能です。

(2024/04/19 12:09 更新)
Rank製品価格
1
250円
2
250円
3
499円
4
オブジェクト指向の原則2:オープン・クローズドの原則
発売日 2022/09/23
ピーコックアンダーソン
Kindle Unlimited対象
総合評価
(5)
250円
5
980円
6
400円
7
600円
8
499円
9
1,250円
10
2,475円
 

オブジェクト指向プログラミング参考書「新書一覧(2021年、2022年刊行)」

IT技術・プログラミング言語は、最新情報のキャッチアップも非常に重要、すなわち新書は要チェック

ということで、2020年以降に発売したオブジェクト指向プログラミング参考書の新書一覧(発売日の新しい順)が以下です。

(2024/04/19 12:09 更新)
製品価格
980円
ゲーム作りで楽しく学ぶ オブジェクト指向のきほん
発売日 2023/12/12
森 巧尚 (マイナビ出版)
総合評価
(4)
2,739円
(+165pt)
2,465円
2,739円
980円
980円
オブジェクト指向でつくるPythonゲームプログラミング
発売日 2023/09/26
どんぶらこPythonゲーム制作サイト
750円
980円
980円
980円
いちばんやさしいオブジェクト指向の本【第二版】 技評SE選書...
発売日 2023/08/01
井上 樹 (技術評論社)
総合評価
(3.6)
2,239円
1,628円
1,628円
3,189円
980円
 

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

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

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

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

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

 

いじょうでっす。

コメント

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