Webエンジニア3年目、デザインパターンの本を久々に読み返す
ブログを少しカジュアルに書いてみようと思って書いてみる(めっちゃ久々…
最近、オブジェクト指向言語を使ってるのにオブジェクト指向を深く理解していない・使いこなせていないんじゃないかと思うことがあって、とりあえず前に買ったデザインパターン本を引っ張り出してきてみた。
この本は一度メジャーそうなパターンだけ2、3年前くらいに通読したことがあって、そのときはあんまり実際のWebアプリケーションを開発した経験も浅かったのでいまいちピンと来ていない感があった。当時は道具だけ与えられて作りたい料理がないみたいな感じだったので、今読んでみたら発見があるのかなと思った。
結論として、前よりは有用性を実感できるデザインパターンの数も増えたなと思った。
以下のパターンはエンジニア生活で実際に出会ったもの。
- Iterator
- Adapter
- Template Method
- Factory Method
- Singleton
- Prototype
- Builder
- Facade
- Observer
- Command
とはいえこれ以外のデザインパターンに対してはそこまで理解していないし、実際にそれが使える場面になったときに引き出せるのか自信がない。必要なときに出てこない道具っていうのは意味ない気がしてきた(今更)
理解しておきたいデザインパターン
名前はよく聞くけどちゃんと説明できないので以下は要旨は理解しておきたいと思った。 - Bridge - Strategy - State
デザインパターン不要論(?)
Googleでデザインパターンを検索すると以下のように古いとか使わないとかサジェストされる。 確かにQiitaとかZennとか見ててもデザインパターンの話は出てこない。 「古い 」のほうの検索結果を見てみるとこういう記事が出てきて、書いてあることは納得することが多かった。ライブラリやフレームワークの中にいるんだという話
GoFはどこへ消えた? - カレーなる辛口Javaな加齢日記
私が業務コードで見たことのあるデザインパターンもだいたい言語の機能、フレームワーク、ライブラリの一部に組み込まれていて、それに乗っかってコーディングしてる感覚が強かった。(SingletonはScalaのコンパニオンオブジェクトで、Commandはフロントの状態管理ライブラリでstateに対するActionの型とかが近い感覚)
オブジェクト指向をもっと理解したい
デザインパターン本に関してはたまたま本棚で目についたから読み直したという感じなので、もともとのオブジェクト指向を理解したいという目的に対してはその一部でしかない。 以前同僚が以下の本について話していた記憶があるのだが、値段に圧倒され手を出せてはいない(けど手に入れれば色々網羅できそう)