『オブジェクト指向設計実践ガイド』は私にはもう一度読む必要がありそうでした

Rubyを扱うプログラマーなら読んでおきたい本としてよく紹介されている『オブジェクト指向設計実践ガイド』を読みました。

gihyo.jp

バイブルとして読み返しが必要

全体的な感想から言うと、私は、これを自分のコーディングに落とし込むには1回読むのでは足りなさそうです。

本書では自転車やそのパーツなどを例にオブジェクト指向で書く方法が展開されていきます。最初はいろいろな問題を抱えたコードで、何度かプロセスを踏んで良い設計になっていきます。

実際に具体例(Ruby)を見ながらテキストに書いてあることを理解していけるのでその点はとても分かりやすかったです。

一方で、コード例が出てこない第4章などはなかなか具体的にコーディングに落とし込むには?を考えたときに、まだまだイメージができていないので力不足だと思いました。

決定を遅らせるという判断

なるほど、と思ったのが、設計を早々に決定すると逆にコストが増大することがあるので、設計の決定を延期するという方法がいくつかの章でとられていたことです。

今後そのアプリケーションのビジネスモデルがどのように変化しているか不確定なときは、最初にガチッとした設計をしてしまうと逆に自分の首を絞めてしまうことがありそうです。

単一責任のクラスにすることで変更しやすい設計となり、後々の設計の決定の判断を先延ばしにできるというのは納得感がありました。

最後に

このほかにも、依存の方向性を意識することや、継承に対する意識などが具体的に書かれており、かなり勉強になったと思います。同時に、今まで書いていたのはなんちゃってオブジェクト指向だったなとも痛感しました。

ただ、冒頭で書いたようにまだコーディングに全て落とし込めるかといったらまだまだなので、また時間を空けて2回目読んでみたいと思います。

抽象的な話を一発で具体に落とし込める人本当にすごいです、、私はコツコツ頑張ろう、、