stks56's tech blog

Keep it simple, stupid.

オブジェクト指向設計実践ガイドを読んだ所感

Sandi Metsのオブジェクト指向設計実践ガイドを読みました。

翻訳された書籍なので英文特有の言い回しだったり、冗長的に思える文もあったのですがじっくり理解しながら完読しました。

本文の構成は最初は一つのクラス単位の解説から始まっていき、章を進めていくにごとに他のクラスが登場したりして順序よく段階的に進められていきます。

最初は単一責任について述べ、その次にクラス間の連携をした際に発生する依存性をどうやって管理するかであったり、そのあとはクラス内のインターフェースの管理方法だったり、継承を用いたデザインパターンを紹介したり等、随所に設計原則やデザインパターンの解説が埋め込まれています。

原則やデザインパターンから実装を説明するのでは無く実装から原則やデザインパターンに当てはめていくといった文章構成になっています。(原則の名前すら出てこないで解説される時もあるので逆に原則を説明したいといった時は他の書籍を読んで把握していくといいと思います)

僕は一番関心を持ったのはRubyの動的型付けを生かしたダックタイピングによる依存関係の管理(ポリモーフィズム)と継承の際のテンプレートデザインパターンです。

オブジェクト指向による強力な設計が記載されてる反面、これを上手くRailsのプロジェクトに全て適応出来るかどうかと言うのはちょっと一発本番では難しいと思ってます。もう少し実際に程よく大きなRailsプロジェクトのコードを書くときに少しずつ実践したいです。

正直、今Rubyを仕事で使っている人の中でも上手く設計原則やデザインパターンを完璧に扱えているかと言うとそんな気はしないのでやっぱりこういう書籍を読んで自主的に動いていかないとダメですね。