- 責務を抱えすぎたサービスオブジェクト (Service objects with many responsibilities)
- 名前空間に分けられていないドメインレイヤーのクラス (Un-namespaced classes in the domain layer)
- 機能を共有するためのモジュールインクルード (Including modules to share functionality)
- あらゆる種類の動的なメソッド呼び出し (Any kind of dynamic method invocation)
- Railsのヘルパー (Rails Helpers)
- はじめに
- Rails アプリケーションの「不吉な臭い」
- 膨大な数のヘルパーメソッド
- 散在するパーシャルとフィルター
- 巨大なモデル
- 不吉な臭いに対処する
- モデルを基準としてプレゼンテーションロジックを分離する
- コンポーネントフレームワークを導入する
- モデルのコードを関心事に沿って分割する
- インタラクションをオブジェクトにする
- まとめ
- 前提:ファットモデルからミックスインで展開しないこと
以下のオブジェクト種類に分ける
- Valueオブジェクト
- Serviceオブジェクト
- Formオブジェクト
- Queryオブジェクト
- Viewオブジェクト
- Policyオブジェクト
- Decorator