良いコード/悪いコードで学ぶ設計入門を読んだので、内容をアウトプットとしてまとめていこうと思います。一旦1~3章のまとめです。
サンプルコードが豊富で読みやすく、非常に参考になる良書だと思いました。
1章 悪しき構造の弊害を知覚する
データクラスや生焼けオブジェクトなどの悪しき構造と、それによって起こる弊害を紹介されている章です。
紹介されていた悪しき構造まとめ
- 意味不明な命名
- 条件分岐のネスト
- 生焼けクラス
※ 生焼けクラス・・・初期化しないと使い物にならないクラス。未初期化エラーやデータとロジック計算ロジックがばらばらな低凝縮な状態となる。
感想
この生焼けクラスというのは本書で初めて意識しました。。
2章 設計の初歩
大きな設計の前に変数名やメソッドなどの小さい単位の良い設計が紹介されている章です。
紹介されていたものまとめ
- 変数名は丁寧につける
- 変数を使い回さない
- メソッドが長くなったとき切り分けて可読性をあげよう
- データとメソッドは一つのクラスとしてまとめると良い
(↑ほとんど目次の内容ですね...w)
感想
普段から意識できる重要なことが紹介されていました。
この章は本当に大切かつ普段から気をつけている内容が書いてあったので、明日からも意識していきたいと思います。
3章 クラス設計
2章よりも広い概念であるクラスの設計についての設計で意識すると良い点が紹介されている章です。
紹介されていた技法まとめ
- 生焼けオブジェクトにしない
- データと計算ロジックをひとまとめにする
- インスタンス変数を不変する。変更するときは新しくインスタンスを作って変更する
- 引き数に型をつける
- 現実の営みにないメソッドは追加しない
- 値オブジェクト + 完全コンストラクタ = オブジェクト指向設計の基本的な形
感想
私は普段Railsを用いて開発をしているのですが、値オブジェクトを知らなかった私は値オブジェクトってRailsのレールに乗っかった形なのか..?と読んでいるときに疑問に思いましたが、ばりばり実装されているのですね。[2,3]
FatModelの解消に導入するか検討していきたいですね〜〜。