無料マンガ・ラノベなど、豊富なラインナップで201万冊以上配信中!
オブジェクト指向設計の名著として名高い“Practical Object-Oriented Design in Ruby”,待望の翻訳版!使いこなせるようになるととても便利なオブジェクト指向ですが,「なんとなく」の理解で使っていると,大きな罠にかかってしまいます。本書は,保守性を上げて運用コストを下げるアプリケーションをつくるために,クラス設計から基本概念,継承のテクニック,ダックタイプ,そしてテスト設計まで,幅広くカバーしています。オブジェクト指向言語を使用するすべての人におすすめの1冊です。
※アプリの閲覧環境は最新バージョンのものです。
Posted by ブクログ
『オブジェクト指向設計実践ガイド』
ソフトウェア・アーキテクトとして30年以上の経験を持つSandi Mets 氏の著書です。
「オブジェクト指向」って、プログラミングの世界では普通に使われている言葉なんですが、プログラミング初心者の私には全然その姿が見えませんでした。
学生時代に勉強したプログラミング言語のBasic、FORTRANは手続き型言語でしたし、趣味でいじっていたEXCELマクロのVBAも小さいものばかりだったので必要としませんでした。
今回、RubyやRuby on Railsを真剣に取り組み始めて、他人のコードを見て???となるばかり。
そこで評判も良く、Rubyを使って説明している本書に挑戦してみることにしました。
【本書で学べること・考えること】
・オブジェクト指向プログラミングの利点
・単一責任のクラスの決定
・不必要な依存の断ち切り
・柔軟なインターフェイスの定め方
・ダックタイピング
・上手な振る舞いの適用
・コンポジションによるオブジェクト作成
・費用対効果の高いテスト設計
読んでみての感想です。
元の説明が冗長的な上に直訳的な日本語訳なので、なかなか読解が難しい本です。
絶対の正解があるわけでなく、概念的な内容なので、より難解です。
ただ、説明がRubyのコードで書かれているので、コードを読めば内容が理解できる点も良かったです。
今の自分のスキル、知識では、全部を理解することはできませんでした。
ただ、読む前と読んだ後では、確実にコードの見方や書き方が変わったと思います。
(Rubocopがメソッドの行数が多いと注意してくる理由が分かりました。)
自分の理解した内容としては、以下の通りです。
・オブジェクト指向の目的
SOLID、DRY、デメテルの法則としった原則に基き、将来的に変更や拡張のコストを下げる柔軟性の高いソフトウェア設計を行う
・注意点
-クラスは単一責任
-依存関係は疎結合に
-パブリックインターフェイスを明示
・設計手法
-ダックタイピング
-継承 is-a関係
-モジュール
-コンポジション has-a関係
・テストコード
-将来の変更に備えつつ不変的な単位でコードを書く
まだまだ理解は足りませんが、体系的に知識を得たので、必要に応じて戻ってこれると思います。
今のタイミングで読んでおいて良かったです。
Posted by ブクログ
良書。
変更に対して柔軟であるために、設計が必要である。
なるほど。
若干抽象的な箇所はあるが、終始コンセプトを貫いていてメッセージ性がある。
どのオブジェクト指向の本でもだいたい語られるキーワードであるインターフェース、継承、コンポジション。ひとつひとつは決して難しい内容ではない。ただ、「設計の良し悪し」という観点で語られることはあまりなく、正直それほど意識しなくてもアプリケーションは作れてしまう。
本書を読むと、これらのオブジェクト指向的なテクニックを適切に使うのとそうでないのでは、変更に強い設計という点で雲泥の差が出るというのがよく理解できる。テクニックの「使いどころ」について非常に理解の助けになる一冊。
※アプリの閲覧環境は最新バージョンのものです。