Ruby on Rails

Rails のデザインパターン

Service objects、form objects、decorators、presenters、query objects、concerns

22 面接問題·
Senior
1

Rails における Service Object とは何ですか?

回答

Service Object は、複雑なビジネスロジック(通常は単一の操作)をカプセル化するプレーンな Ruby クラス(PORO)です。controller や model からロジックを抽出し、単一責任の原則(SRP)を保ちます。通常、service object は call や execute のような単一の public メソッドを公開するため、テストや再利用が容易になります。

2

controller にロジックを置く代わりに Service Object を使う主な利点は何ですか?

回答

主な利点はテスタビリティと再利用性です。Service Object は独立した Ruby クラスであり、controller の完全な HTTP コンテキストをシミュレートせずに単体で簡単にテストできます。さらに、同じロジックをコードの重複なしにさまざまな場所(controller、job、console)から呼び出せます。

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をマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める