『オブジェクト指向設計実践ガイド』読書会での感想メモ

6/1 から 8/24 まで、フィードフォース社内で『オブジェクト指向設計実 践ガイド』の読書会を主催しました。 loading... if (localStorage.getItem("pref-theme") === "light") { const elements = document.getElementsByClassName('twitter-tweet'); for (let i = 0; i ↑ これはブログ記事に使うための先行 Tweet でした。やっと使えたw 都度メモを取って会社の Slack channel に書いていたのですが、公開の タイミングを逃して後悔していました。そんな折、kano-e さんが会社の 新生開発者ブログに記事をポスト。 空気を読まずに私もポストします。個人ブログに。本当に五月雨式のメモ で自分向けです。 第1章 オブジェクト指向設計 まだ意識が高まっておらず、感想を書いていなかった。プロローグ的な章。 第2章 単一責任のクラスを設計する これらが当たり前に出来るスキルが必要だと思った。 健康的な書き方をほかのプログラマーに促進するコードを書く atter_reader 等を介して、複雑か簡単かどうかさえも見せないように 隠蔽する リファクタリングでメソッドへの切り出しをすることで、クラスの責務 を明確にする 決断を先延ばしにする 第3章 依存関係を管理する DI 初登場!! 第3章は P19 の『オブジェクト指向設計とは、「依存関係を管理する こと」です。』を具体的に説明した章 とにかく依存関係を減らすことが重要 DI メソッドでキーワード引数を使うことで、パラメータの順序依存をなくす ファクトリパターンを使った外部インターフェイスのラッピング あまりに複雑だと、ラッピングしすぎないほうが良いことも 自身より変更しないものに依存しなさい Ruby にはインターフェイスがないので、エンジニアのスキルがな...

2017-11-01 (Wed) · masutaka

『オブジェクト指向設計実践ガイド』を読んだ

本当に良い本でした。読んで良かった。初心者を中心に中級者にも刺さる 本だと思います。輪読などして、チームで読むとオブジェクト指向設計の そもそもの話をしなくて良さそうです。 難しい話が易しく説明されており「あ、そうだったのか」と思うことが度々 でした。ボリュームも全9章とコンパクトで、1日1章読むのに丁度よかっ たです。 読んでメモった箇所を中心にまとめていきます。 第2章 単一責任のクラスを設計する インスタンス変数へのアクセス方法を誤解していました。 P46 変数はそれらを定義しているクラスからでさえも隠蔽しましょう 今まで他のクラスから隠蔽する時は、直接 @hoge などにアクセスしてい ましたが、中からも attr_reader などで隠蔽する必要があるそうです。 「データではなく、振る舞いに依存する」ためだそうです。 メモ化などでこうした手法は使っていたけど、単純な参照も隠蔽する必要 があるのですね…。 ただ、中からしか使わない変数も単純な attr_reader を使っていたのは、 納得いかなかったです。こうして外から隠蔽する必要はないでしょうか? class Hoge attr_reader :hoge # 外からも参照される #... private attr_reader :hogehoge # 中からしか参照されない #... end 第3章 依存関係を管理する 「依存オブジェクトの注入(DI)」を中心に疎結合なコードの書き方がま とまった章です。 DI は正直今までピンと来ていませんでしたが、この章を読んで完璧に理 解しました。10 年前から使っていました…。 loading... if (localStorage.getItem("pref-theme") === "light") { const elements = document.getElementsByClassName('twitter-tweet'); for (let i = 0; i 数日経ってもまだ何か言ってる。...

2016-09-22 (Thu) · masutaka