第13章 コンポーネントの凝集性
コンポーネント業種性の原則
- 再利用・リリース等価の原則(REP)
- 再利用とリリースは等価であること
- 再利用したくても、リリース番号がついてなかったりすると互換性が確認できない
- リリースするたびにタグを切りましょうってことかな
- 再利用したくても、リリース番号がついてなかったりすると互換性が確認できない
- コンポーネントを形成するクラスやモジュールは凝集性のある集まり出なければならない
- コンポーネントには一貫するテーマや目的があり、それを共有するモジュールが集まったもの
- 再利用とリリースは等価であること
- 閉鎖性共通の原則(CCP)
- コンポーネントを変更する理由は複数あるべきではない
- 同じタイミングで変更されることが多いクラスは一つのコンポーネントにまとめておく
- コンポーネントを変更する理由は複数あるべきではない
- 全再利用の原則(CRP)
- 一緒に用いられることが多いクラスやモジュールは同じコンポーネントにまとめよという原則
- 一つのコンポーネントに含まれるクラスはどれも切り離せないものにするべき
- 依存するクラスもあれば、依存しないクラスもあるといった状況は避ける
- どのクラスをひとまとめにすべきではないかを伝える原則
感想
個人的にわかりやすいのはrubocopかなぁ
原始的な、rubocop自体はRuby + Rails + RSpecをまとめて一つに配置していた
それらは、同時に触られることが多かったから
時間とともに、純粋なRubyだけのRubocop, Rails用のルールが書かれたRubocopなどに別れていった
CCP→CRPみたいなイメージ