Ruby on Rails

Design Patterns Rails

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

22 questions d'entretien·
Senior
1

Qu'est-ce qu'un Service Object dans Rails ?

Réponse

Un Service Object est une classe Ruby plain (PORO) qui encapsule une logique métier complexe, généralement une opération unique. Il permet d'extraire la logique des controllers et des models pour maintenir le principe de responsabilité unique (SRP). Typiquement, un service object expose une seule méthode publique comme call ou execute, ce qui le rend facile à tester et à réutiliser.

2

Quel est l'avantage principal d'utiliser un Service Object plutôt que de mettre la logique dans le controller ?

Réponse

L'avantage principal est la testabilité et la réutilisabilité. Un Service Object est une classe Ruby isolée, facilement testable en isolation sans avoir à simuler le contexte HTTP complet d'un controller. De plus, la même logique peut être appelée depuis différents endroits (controllers, jobs, console) sans duplication de code.

3

Comment structurer un Service Object avec une convention de nommage claire ?

Réponse

La convention recommandée est d'utiliser un verbe suivi d'un nom, reflétant l'action effectuée (ex: CreateUser, ProcessPayment, SendInvitation). Le service expose une méthode call comme point d'entrée unique, et peut être appelé via UserCreator.call(params) ou UserCreator.new(params).call. Cette convention rend le code auto-documenté et prévisible.

4

Qu'est-ce qu'un Form Object et quand l'utiliser ?

5

Quel module Ruby inclure dans un Form Object pour bénéficier des validations ActiveRecord ?

+19 questions d'entretien

Maîtrise Ruby on Rails pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement