- クラスの外から操作されるのを防ぐようにpublicメソッドを減らす
- クラスメソッドはインスタンスを使わないでも良いので危険になりやすい
- クラスを分けて違う概念は違うクラスで操作する
- データとそれを操作するクラスで定義するのが基本
- チーム開発だとコンテキスト分からないので、ガバガバなクラスに追加されたりする
- 属性が多いと危険なので、概念が異なればテーブルも分けた方が良い
- 共通処理というのは確かにあるので(ロガーとか)それはしょうがないが、なるべく共通化しないようにする
- 継承すると、他のクラスが困ることがある
- 疎結合になるようにすること
- そのためには責務で分けるのが大事
- 関連するロジックはそこに置くこと
- 表示に関するロジックはビューで置くこと
- デザイン刷新とかあるので、表示に関するロジックがフロントにあるのは良くない
- コレクションクラスを実装して、集合を操作したり削除したり判定する専用のクラスを作る
などをやること。 神クラス&神モデル or データしか持たないマネージャークラスみたいなのは作ってはいけない。 新しいクラスを作るのをびびってはいけない。 作らないと関係ない責務を持ち始めてガバガバになる