Railsアプリが大きくなってきたときのメモ

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

- 前提:ファットモデルからミックスインで展開しないこと

以下のオブジェクト種類に分ける

  1. Valueオブジェクト
  2. Serviceオブジェクト
  3. Formオブジェクト
  4. Queryオブジェクト
  5. Viewオブジェクト
  6. Policyオブジェクト
  7. Decorator