Ruby on Rails

Rails Design Patterns

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

22 Interview-Fragen·
Senior
1

What is a Service Object in Rails?

Antwort

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?

Antwort

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?

Antwort

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 Interview-Fragen

Meistere Ruby on Rails für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten