せまい部屋

web/gameエンジニアのweblog

オブジェクト指向設計実践ガイド感想

せっかくブログあるのだし腐ってないでしょぼくても大なり小なり書こうと思った。去年2016年の冬前ほどに会社のマネージャーが颯爽と買ってきて読み終わる前にそれとなく貸してくれた。

f:id:takoji3:20161127170544j:plain:w400

所感

クラスベースの設計で具体例と共に勉強したい
継承とかmix inとか使い所が曖昧
なんとなくRubyオブジェクト指向どうやるの

とか思うふしがある場合はアプリケーションのコード書いたり機能設計を考える上で一つ指標になることあるなと思う。訳者あとがきにも初心者の方の手助けになるととても良いというふうにも書いてある。逆に数々の案件を流麗なクラス設計を目指しながら数多くこなしてきたような熟練エンジニア諸兄には初心寄りなので再確認程度になると感じた。

進みは自転車旅行を題材にしたオブジェクト指向を手順ベースで改造していくスタイルで理論寄りな説明を読む感じでなく手を動かすと良さそうな作りなので体で覚えるという意味では読みやすいし、単純に説明がわかりやすい印象もあった。 個人的に注目は最後9章のテスト。以前のユニットテストの設計や在り方を問う事案があったため、自分の認識も含めて再度勉強になったのでタイムリーだった。

最もコストが高く最も利用性が低いテストは、不安定な内部の実装に結合することで、オブジェクトの格納壁に穴を開けます。

みたいな記述は個人的に座布団一枚で、仮にオブジェクトの持つパブリックなインターフェースに変更を入れるのであれば伴って既存テスト失敗は良いと思うけども、内部実装を変えて一緒におちるテストは確かに困る。外見を変えず中身を変えるリファクタリングの成否を担保してくれるようなテストでないと、まして仕事ともなれば設計開発とビジネス要求の狭間になるので、テストがただうっとおしいだけの存在に、と経験的に感じる。インターフェース自体やスーパークラスのテストをRubyでいうModuleに切り出してるのは今までやっていなかったような気がするので機会があれば実践したいところ。インターフェースを意識するというのもこういった基本的な書物で確認できるし良いと感じる。

とりあえず知識を付けたかったり自分は出来ると思ってしまっている人についぞ渡したりするととても良い本だと思った。