
Rails のデザインパターン
Service objects、form objects、decorators、presenters、query objects、concerns
22 面接問題·
Senior
1Rails における Service Object とは何ですか?
1
Rails における Service Object とは何ですか?
回答
Service Object は、複雑なビジネスロジック(通常は単一の操作)をカプセル化するプレーンな Ruby クラス(PORO)です。controller や model からロジックを抽出し、単一責任の原則(SRP)を保ちます。通常、service object は call や execute のような単一の public メソッドを公開するため、テストや再利用が容易になります。
2controller にロジックを置く代わりに Service Object を使う主な利点は何ですか?
2
controller にロジックを置く代わりに Service Object を使う主な利点は何ですか?
回答
主な利点はテスタビリティと再利用性です。Service Object は独立した Ruby クラスであり、controller の完全な HTTP コンテキストをシミュレートせずに単体で簡単にテストできます。さらに、同じロジックをコードの重複なしにさまざまな場所(controller、job、console)から呼び出せます。
3明確な命名規則で Service Object をどのように構成しますか?
3
明確な命名規則で Service Object をどのように構成しますか?
回答
推奨される規則は、実行されるアクションを反映するように、動詞のあとに名詞を続けることです(例:CreateUser、ProcessPayment、SendInvitation)。サービスは唯一のエントリーポイントとして call メソッドを公開し、UserCreator.call(params) または UserCreator.new(params).call で呼び出せます。この規則によりコードは自己文書化され、予測しやすくなります。
4
Form Object とは何で、いつ使いますか?
5
ActiveRecord のバリデーションを利用するために、Form Object にインクルードすべき Ruby モジュールはどれですか?
+19 面接問題
その他のRuby on Rails面接トピック
Rubyの基礎
Junior
25問Rubyのオブジェクト指向プログラミング
Junior
20問Rails の基礎
Junior
18問Routing & Controllers
Junior
22問ActiveRecord の基礎
Junior
25問Views と ERB テンプレート
Junior
20問ActiveRecord の関連付け
Mid-Level
24問高度なActiveRecordクエリ
Mid-Level
28問Rails フォーム
Mid-Level
20問認証と認可
Mid-Level
22問モダンな Asset Pipeline とフロントエンド
Mid-Level
18問Rails APIモード
Mid-Level
20問RSpecによるテスト
Mid-Level
24問ActiveJob & Background Jobs
Mid-Level
20問ActionCable & WebSockets
Mid-Level
18問ActionMailer
Mid-Level
18問ActiveStorage
Mid-Level
20問キャッシュ戦略
Mid-Level
20問高度なマイグレーション
Mid-Level
20問Rails Engines とモジュラーアプリ
Senior
18問パフォーマンス最適化
Senior
26問Rubyのメタプログラミング
Senior
20問Rails のセキュリティ
Senior
22問Rails での GraphQL
Senior
20問デプロイと本番環境
Senior
20問Monitoring & Logging
Senior
20問Rails アップグレード戦略
Senior
18問