11中/大規模開発のためのRails設計パターンRails概要appディレクトリ以下のファイル構成は下記のようにします。viewsクラス設計Callbackクラス名の命名規則として、接尾辞にCallbackを付与します。ActiveRecordのコールバック処理をまとめます。UserCallback.newendControllerクラス名の命名規則として、接尾辞にControllerを付与します。Validator等に任せます。Decoratorクラス名の命名規則として、接尾辞にDecoratorを付与します。ModelとViewの中間に位置し、ModelやViewに実装されやすい表示ロジック/フォーマットといったプレゼンテーション層の責務を引き受けます。Draperというgemを使用すると扱いやすいです。endendExceptionクラス名の命名規則として、接尾辞にErrorを付与します。例外を使う場合にraiseに文字列を渡すのではなく、ここにStandardErrorを継承したカスタム例外クラスを実装して、それを使うようにします。Factoryクラス名の命名規則として、接尾辞にFactoryを付与します。Factoryでは主に以下の3種類の処理を行います。unique等)に関するvalidation状態の取得、変更に関するメソッドのみ記述するのが良いです。ビジネスロジックはここで実装してはいけません。Policyクラス名の命名規則として、接尾辞にPolicyを付与します。Punditなどを使って、認可に関する処理をここで実装します。endendServiceクラス名の命名規則として、接尾辞にServiceを付与します。methodは自由です)。サービスクラスでのマイルールとちょっとしたコツ)専門性の高い処理はここで実装します。DBのトランザクションはこのレイヤーで管理するようにします。endendTaskクラス名の命名規則として、接尾辞にTaskを付与します。taskの実処理を記述します。rakeファイルにはTaskへのパラメーター受け渡しのみを記述し、実際の処理はTaskに記述します。Utilクラス名の命名規則として、接尾辞にUtilを付与します。複数のクラスから共通で使われる汎用的な(=専門性の低い)処理をまとめます。Validatorクラス名の命名規則として、接尾辞にValidatorを付与します。独自バリデーションを実装する際にはここに置きます。UserValidatorendValueオブジェクト指向で言うバリューオブジェクトをここに置きます。DateやURIなどが、Rubyの標準ライブラリのバリューオブジェクトになります。下記の特性があるものをValueとして実装します。保持した値は決して変更されることがないオブジェクトを識別する一意となる値を保持していない全プロパティ値が同じなら、同じオブジェクトであるActiveRecordのプロパティに使用する下記は、学生の成績を管理するバリューオブジェクトの例です。endendViewいわゆるビューです。upLoginユーザーは見つかりませんでした。