オブジェクト指向でなぜつくるのか 第 3 版 知っておきたい OOP、設計、アジャイル開発の基礎知識
オブジェクトシコウデナゼツクルノカダイサンパン
- 著者:
- 平澤 章(ヒラサワアキラ)
- 出版社:
- 日経 BP
- 出版日:
- 2021年04月16日頃
- ISBN:
- 9784296000180
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
『オブジェクト指向でなぜつくるのか』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
技書の森解説
クラスや継承、ポリモーフィズムという言葉は知っていても、それがなぜ必要なのか、プログラムの中で実際に何が起きているのかを説明できない人のための入門書です。『オブジェクト指向でなぜつくるのか 第 3 版』は平澤章氏の著書で、日経 BP から 2021 年 4 月に刊行されました。副題は「知っておきたい OOP、設計、アジャイル開発の基礎知識」、英題は How Objects Work です。NDL の書誌によると初版は 2004 年に日経 BP 社から出ており、版元はこの第 3 版を 10 年ぶりの改訂と案内しています。版元の紹介では、オブジェクト指向の全体像と各技術を平易な文章で解説する位置づけは変えず、全文を見直したうえで、Java、Python、Ruby、JavaScript の動向を「今ドキの OOP」として新たに盛り込んだとしています。
全 12 章と補章、プログラミング技術から設計とアジャイルへ
目次は第 1 章から第 12 章と補章で、章の間に「今ドキの OOP」「プログラミング昔話」「オブジェクトの向こう側」というコラムが挟まります。前半は、第 1 章「オブジェクト指向はソフトウエア開発を楽にする技術」、第 2 章「オブジェクト指向と現実世界は似て非なるもの」、第 3 章「OOP を理解する近道はプログラミング言語の歴史にあり」、第 4 章「OOP は無駄を省いて整理整頓するプログラミング技術」、第 5 章「メモリの仕組みの理解はプログラマのたしなみ」、第 6 章「OOP がもたらしたソフトウエアとアイデアの再利用」と、プログラミングの技術としての OOP を扱います。第 7 章「汎用の整理術に化けたオブジェクト指向」を境に、第 8 章は UML、第 9 章はモデリング、第 10 章「擬人化して役割分担させるオブジェクト指向設計」と、考え方が設計や上流工程へ広がっていく流れを追い、第 11 章「オブジェクト指向から生まれたアジャイル開発」、第 12 章「オブジェクト指向を使いこなそう」へ続きます。最後の補章は「関数型言語でなぜつくるのか」です。プログラミング言語の仕組みと、そこから派生した整理術としてのオブジェクト指向を、意識して分けて説明する構成と読めます。
メモリの動きと言語の歴史から仕組みを理解する
この本の題名が問うている「なぜ」は、オブジェクト指向の学習で最もつまずきやすい点に対応しています。クラスはデータとそれを扱う処理をまとめて隠し、ポリモーフィズムは呼び出す側を変えずに処理を差し替え、継承は共通部分をまとめて書く仕組みですが、これらが何の問題を解くために生まれたのかを知らないと、構文を覚えても設計の判断に使えません。本書が第 3 章でプログラミング言語の歴史を、第 5 章でメモリの仕組みを置いているのは、この問題の出どころと、プログラムが実行時にどう動くかを押さえてから技術の意味へ進む順序と読めます。版元も特徴の 1 つに、OOP のプログラムが動く仕組みが具体的にわかることを挙げています。インスタンスがヒープに置かれ、変数がそれを指すという メモリの使われ方 は、オブジェクトの共有や不要になった領域の回収を理解する土台で、ここを押さえておくと、Java や Python のように言語ごとに見た目が異なっても共通する動きが見えやすくなります。
第 3 版の改訂点と、著者の立ち位置
版元が示す本書の特徴は、OOP の全体像と特徴、OOP のプログラムが動く仕組み、関数型言語の本質と OOP との関係、アジャイル開発 の手法と実践手法の 4 点です。版元によると、第 3 版で新たに盛り込まれたのは Java、Python、Ruby、JavaScript の動向で、目次では「今ドキの OOP」のコラムとして Python、PHP、Ruby、JavaScript、Java の回が章の間に置かれ、補章のあとには「関数型言語の箱庭を用意した Java」の回が続きます。補章で 関数型プログラミング を扱うのは、オブジェクト指向を唯一の正解とせず、別の考え方と並べて位置づけるためと読めます。版元の著者紹介によると、平澤氏はウルシステムズに所属し、金融系や制御系のシステム開発を経験したのち、30 代前半でオブジェクト指向モデリングや Smalltalk、MVC フレームワークに出会ったとされ、共訳書に『リファクタリング 第 2 版』があります。
向いている読者、構文の次に考え方を固めたい人
向いているのは、何か 1 つのオブジェクト指向言語で基本の構文は書けるようになったものの、クラスの分け方や継承を使う場面で迷う人、オブジェクト指向という言葉が設計や開発手法の文脈で使われる理由をまとめて知りたい人です。逆に、具体的な言語のコード例を写しながら設計の型を身につけたい人や、デザインパターンを一つずつ実装して覚えたい人には、文章中心の作りは遠回りに感じるはずです。そうした目的には、レベルに応じて本を選べる 設計の技術書の選び方のガイド も参考になります。言語が変わっても通用する理解の土台を、プログラムの動きと開発の歴史の両面から作りたい人にとって、何度も読み返す価値のある 1 冊です。
言及した記事 (18 件)
プログラミング初心者の学生が2年間で読んだ本の中でオススメを紹介する
♡ 151プログラミング, 本, 技術書, 勉強, 勉強法独学でエンジニア目指す人へ【Laravel・Docker・AWS】
♡ 94初心者, Laravel, ポートフォリオ, 未経験エンジニア, 個人開発Java には参照渡しはありません
♡ 40Java, 参照渡し, 値渡し, スタック領域, ヒープ領域引継ぎもかねて、自身が5年間で学んだエンタープライズアーキテクチャを説明する。
♡ 18オブジェクト指向, DDD, 設計, oop, アーキテクチャオブジェクトとはつまり"メモリ上の実態"のことで人によって指し示すことが違うこと
♡ 15C, C++, オブジェクト指向, ポエム【AI時代に効く“なんとなく読書”】バラバラに本を読んでいたら、ある日ぜんぶつながってデザインの仕事が変わった話
♡ 14UX, Design, 読書, キャリア, 学習法エンジニアに転向して1年で開発チームのリーダーになるまでに勉強したことをまとめる
♡ 14Python, JavaScript, AWS, 初心者, 技術書エンジニアになって読んだ本を時系列でまとめる
♡ 9プログラミング, 初心者, 技術書, 書籍, 備忘録文系大学生が完全独学でソフトウェアエンジニアになった理由と具体的な勉強法
♡ 7プログラミング, ハッカソン, 初心者, Udemy, 独学入社して3ヶ月経ったので自己レビューの観点をまとめてみました
♡ 5初心者, レビュー
この本に興味がある方におすすめ
関連する本
関連記事
ソフトウェア開発の歴史を変えた 5 冊の技術書
アルゴリズムの学問化からコードの可読性革命まで、ソフトウェア開発の方向性を決定づけた 5 冊の技術書を、時代背景とエピソードとともに紹介します。
写経を超える - 技術書のコードを自分のプロジェクトに応用する方法
技術書のサンプルコードを写経するだけでは実力は伸びません。書籍のコードを自分のプロジェクトに応用し、実務で使える力に変える 5 つのステップを解説します。
有名プログラマの読書習慣 - 天才たちは何を読んできたのか
リーナス・トーバルズ、まつもとゆきひろ、ビル・ゲイツなど、著名なプログラマたちの読書習慣と愛読書を紹介し、天才たちの読書スタイルから学べることを探ります。
関連用語
S3 ライフサイクル
S3 オブジェクトのストレージクラスを自動的に移行し、コストを最適化する機能
エンティティと値オブジェクト
DDD における 2 つの基本的なドメインモデル要素 - 同一性で区別するエンティティと、値で区別する値オブジェクト
オブジェクト指向
データと操作をオブジェクトとしてまとめ、現実の概念に近づけて設計する考え方
Flyweight パターン
多数のオブジェクト間で共有可能な状態を分離し、メモリ使用量を削減するデザインパターン
Builder パターン
複雑なオブジェクトの生成をメソッドチェーンで段階的に構築するデザインパターン
ガベージコレクション
不要になったメモリを自動的に解放するランタイムの仕組み