1 min read

平澤章著、「オブジェクト指向でなぜつくるのか 第2版」を読んだ感想

Table of Contents

基礎力向上の第二弾は、「オブジェクト指向でなぜつくるのか 第 2 版」を読んだ。

今さらオブジェクト指向プログラミングかよ!と思われそうだし、僕自身そう思う。ただ、これまで色んな言語でオブジェクト指向で組んできたものの、その概念的な部分への理解は全くないなという気持ちがあったので、改めて学び直した。

読んだ本

読んだ本はこちら。平澤章著、「オブジェクト指向でなぜつくるのか 第 2 版」。

前回読んだ「プログラムはなぜ動くのか1」のシリーズ本で、セールだったから買った系の本。読む前までは、「小難しいこと言わなくても実際オブジェクト指向で書いてるしなぁ」という思いがあった。

ただ、実際に読んでみた感想としては、読んで良かったなと確実に言える本だった。

どういう本だったか

ざっくり、オブジェクト指向がどのようにして生まれたのか・なぜ有用とされているのかを、その歴史や哲学と共に、ユースケースを交えながら読み解いていくような本だった。

内容的にはやっぱり前回同様、本書だけで全てを理解しようとするのは無理があって、書籍中で紹介されている参考文献も合わせて読まないと、深い部分まで立ち入ることは出来ないと思う。

本書の中で、個人的に一番刺さった部分は、オブジェクト指向プログラミング(OPP)と GoF デザインパターンの点と点が線となって結びついたこと。また、GoF デザインパターンとアーキテクチャ、アーキテクチャと DDD など「あれもそれもこれも、OPP を最大限活かすために実装ベースに落とし込んだモノ」みたいな理解が生まれたのは大きな収穫だった。雰囲気として全体を俯瞰できた感覚。

ただあくまでも俯瞰するという目的で、そもそもコードベースの本ではないので、これをどう実装に落とし込んでいくのか?という部分に関しては、どうしても副本が必要になりそうだ。あとは、有名な OSS のコードリーディングをするとか。

僕はメインで Python を使っているので、GoF デザインパターンを Python ベースで詳しく知るには、オライリーの「実践 Python 32」が役に立ちそう。

あと、おまけ程度ではあるけど、関数型言語についても述べられていたのは、ポイント高かった。どうしてもこういう本は、「OPP サイコー!」で終わりがちなので(個人的には関数型言語にそこまで魅力を感じているわけではないが)。

本書も結構流し読みしてしまった部分が多いので、時間を見つけて体系的な知識としてまとめようと思う。

Footnotes

  1. プログラムはなぜ動くのか 第 2 版 知っておきたいプログラムの基礎知識

  2. 実践 Python 3