オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方
- 技術評論社 (2016年9月2日発売)
- Amazon.co.jp ・本 (304ページ)
- / ISBN・EAN: 9784774183619
作品紹介・あらすじ
保守性を上げて、運用コストを下げるアプリケーションをつくるための実践的なテクニックが満載。
感想・レビュー・書評
-
オブジェクト指向流のクラス設計を学べる。Rubyを使っていなくても学べることは多いと思う。
詳細をみるコメント0件をすべて表示 -
『オブジェクト指向設計実践ガイド』
ソフトウェア・アーキテクトとして30年以上の経験を持つSandi Mets 氏の著書です。
「オブジェクト指向」って、プログラミングの世界では普通に使われている言葉なんですが、プログラミング初心者の私には全然その姿が見えませんでした。
学生時代に勉強したプログラミング言語のBasic、FORTRANは手続き型言語でしたし、趣味でいじっていたEXCELマクロのVBAも小さいものばかりだったので必要としませんでした。
今回、RubyやRuby on Railsを真剣に取り組み始めて、他人のコードを見て???となるばかり。
そこで評判も良く、Rubyを使って説明している本書に挑戦してみることにしました。
【本書で学べること・考えること】
・オブジェクト指向プログラミングの利点
・単一責任のクラスの決定
・不必要な依存の断ち切り
・柔軟なインターフェイスの定め方
・ダックタイピング
・上手な振る舞いの適用
・コンポジションによるオブジェクト作成
・費用対効果の高いテスト設計
読んでみての感想です。
元の説明が冗長的な上に直訳的な日本語訳なので、なかなか読解が難しい本です。
絶対の正解があるわけでなく、概念的な内容なので、より難解です。
ただ、説明がRubyのコードで書かれているので、コードを読めば内容が理解できる点も良かったです。
今の自分のスキル、知識では、全部を理解することはできませんでした。
ただ、読む前と読んだ後では、確実にコードの見方や書き方が変わったと思います。
(Rubocopがメソッドの行数が多いと注意してくる理由が分かりました。)
自分の理解した内容としては、以下の通りです。
・オブジェクト指向の目的
SOLID、DRY、デメテルの法則としった原則に基き、将来的に変更や拡張のコストを下げる柔軟性の高いソフトウェア設計を行う
・注意点
-クラスは単一責任
-依存関係は疎結合に
-パブリックインターフェイスを明示
・設計手法
-ダックタイピング
-継承 is-a関係
-モジュール
-コンポジション has-a関係
・テストコード
-将来の変更に備えつつ不変的な単位でコードを書く
まだまだ理解は足りませんが、体系的に知識を得たので、必要に応じて戻ってこれると思います。
今のタイミングで読んでおいて良かったです。 -
中盤からよく分からなくなった。もうちょっとレベルアップしたらまた読み返すことにする。
-
全体を通して設計初心者に最初の武器を与えてくれる。
単一責任から始まり、ダックタイプ、継承、振る舞いの共通化そしてテストと順に追うことでプログラム設計に対しての理解が深まり、今後設計にしっかりとした論理をもって行っていくための最初の一歩を踏み出せそうです。 -
Rubyでのオブジェクト指向プログラミングの本。簡単なので雰囲気を掴みやすい。最後のテスト設計の章は読む価値があると思う。C++が読めるなら、「C++のためのAPIデザイン」の方がインターフェースに着目して書かれているという点で良書に思われる。TO
-
オブジェクト指向の本は、Javaが多いのでRubyのコードでオブジェクト指向を学べるという点が良かった。設計の話はもちろん、Rubyの書き方でのtipsや、テストコードに関しても記載してあり、オブジェクト指向を通して優れたシステムを作る知恵を得ることができた。
-
Rails実務経験半年の頃に読んだが、オブジェクト指向について理解しているけれど実践できない自分にはとても勉強になる内容だった。
読んだら力になることは間違いないが、読むのにかなり気合いを要したので、「それなりに実務経験を積んでから読む」 or 「短期間で集中して読む」のがいいと思う。
自分は後者。
全て完璧に理解したとは言えないので、時間を見つけて読み返したい。 -
オブジェクト指向設計についてよくまとまっている。パターンの選択基準についても記載があるので、パターンを憶えても使い所がわからないということはないと思う。
-
図が1つあれば20行の解説が省けるような箇所が多く見受けられ、ひどく分かりにくい…
他のレビューにある通り、翻訳や独特の癖が原因かもしれない。 -
オブジェクト指向がやっと掴めた最高の1冊。翻訳調のため理解しにくいが(英語で読んだほうがはいってくるかも)ただ、rubyで解説されているのは個人的に応用が効きやすくありがたかった。