Operation Model Scaffold
Operation Model Scaffold は、Rails アプリケーションにおける Operations レイヤー の Scaffold を生成するジェネレータ Gem です。
このツールを使用することで、ビジネスロジックの責務を明確に分離し、保守性と再利用性を高めるためのアーキテクチャ構築をサポートします。
📌 背景
Rails では、サービスクラスやモデルが肥大化しやすく、ビジネスロジックの所在が曖昧になることがあります。
Operation Model Scaffold は、Operations レイヤーを導入することで「操作(Operation)」をアプリケーションの構造として明示的に表現できるようにし、以下のような効果をもたらします:
- ドメインロジックの見通しが良くなる
- 関心の分離(Separation of Concerns)が明確になる
- テストしやすくなる
✨ 特徴
bin/rails generate operation_model:scaffoldコマンドでapp/models/operations/を自動生成README.mdやutility.rbなどのベースファイルを生成app/models/配下にある全モデルに対応する Operations モジュールを自動生成application_record.rbやutility.rbなど、特定ファイルは自動生成対象から除外
📦 インストール
Gemfile に以下を追加:
gem 'operation_model_scaffold'
インストール:
bundle install
🚀 使用方法
以下のジェネレータを実行:
bin/rails generate operation_model:scaffold
このコマンドにより、以下のような構造が作成されます:
app/models/operations/
├── README.md # Operations レイヤーのガイドライン
├── user.rb # Operations::User モジュール(app/models/user.rb に対応)
├── post.rb # Operations::Post モジュール(app/models/post.rb に対応)
└── use_cases/
└── utility.rb # 共通ユースケース向けユーティリティ
※ application_record.rb や utility.rb といった特殊用途のモデルは自動生成の対象外です。
📄 ライセンス
このプロジェクトは MIT License のもとで公開されています。