Ruby on Rails

Rails Design Patterns

Service objects, form objects, decorators, presenters, query objects, concerns

22 면접 질문·
Senior
1

What is a Service Object in Rails?

답변

A Service Object is a plain Ruby class (PORO) that encapsulates complex business logic, typically a single operation. It extracts logic from controllers and models to maintain the Single Responsibility Principle (SRP). Typically, a service object exposes a single public method like call or execute, making it easy to test and reuse.

2

What is the main advantage of using a Service Object instead of putting logic in the controller?

답변

The main advantage is testability and reusability. A Service Object is an isolated Ruby class, easily testable in isolation without simulating the complete HTTP context of a controller. Additionally, the same logic can be called from different places (controllers, jobs, console) without code duplication.

3

How to structure a Service Object with a clear naming convention?

답변

The recommended convention is to use a verb followed by a noun, reflecting the action performed (e.g., CreateUser, ProcessPayment, SendInvitation). The service exposes a call method as its single entry point, and can be invoked via UserCreator.call(params) or UserCreator.new(params).call. This convention makes code self-documenting and predictable.

4

What is a Form Object and when to use it?

5

Which Ruby module to include in a Form Object to benefit from ActiveRecord validations?

+19 면접 질문

다음 면접을 위해 Ruby on Rails을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기