Ruby on Rails

Rails Design Patterns

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

22 domande da colloquioยท
Senior
1

What is a Service Object in Rails?

Risposta

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?

Risposta

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?

Risposta

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 domande da colloquio

Padroneggia Ruby on Rails per il tuo prossimo colloquio

Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.

Inizia gratis