めるノート

へっぽこWebエンジニアが地団駄を踏んでいる日誌

「オブジェクト指向設計実践ガイド」を読み終えた

f:id:c5meg1012:20170112012358j:image

 

Webコーダー(当時)としてWebの世界に入りこんでから2年、プログラムをかじり始めてから1年ちょっと、そしてRubyをまともに始めて2ヶ月強。

Rubyを始めた当初から知っていた本ですが、この手のやつは苦手だなぁという思いがあり、こっちを買ってササッと流し読みしたところでした。

そんなときにやってきたサンタさん。

www.instagram.com

包装を解くと...

www.instagram.com

こうして、この本を読むことになったのでした。


各章の始めに、それぞれの手法(依存関係の管理、インターフェース、ダックタイピング、継承、モジュール、コンポジション...)についての概要が説明されるのですが、他の方も仰っているように、この説明が抽象的なため、理解していない状態で読むとすごく辛いです。

まずは一回流し読みして進んで、コードを見て理解してから戻ってくるくらいでちょうどいいと思います。

 

これまで自分は、実装レベルできちんと設計あるいはリファクタリングされたコードに向き合う機会が少なかったので(githubから探してコードリーディングもしてみたけれどひたすら辛かった)、この種のコードが全然読めませんでした。

なので「コードを見て理解してから戻ってくるくらいで」と言っておきながら、個人的にはコードを読んでいくのも結構気力が要ったのですが、何度も読み返して噛みしめるようにして進んでいたら、ちょっとずつ読めるようになってきて、楽しさを感じられました。今はいろんなコードが読みたいな、と思います。

 

ちょっと前にはCSS設計についても(苦しめられながら)取り組んでいたので、再配置できるように、というイメージは以前よりラクに持てるようになったと思います。

自分でうまく設計・リファクタできるかはまだ全然自信がないのですが、いろんなコードを読んだり、人によって解釈が微妙に異なってきそうな概念・用語についてもうちょっと調べてみたりすれば、見えてくるものがありそうな手応えを感じました。


先述のサンタさんからのプレゼント画像をアップしたところ、
「なんてひどいサンタさんだ!」という意見が外部からちらほらありましたが、
なんだかんだ必要だったなぁ、と実感するのでした。ありがとうございました。