Ruby on Rails

Patrones de diseño en Rails

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

22 preguntas de entrevista·
Senior
1

¿Qué es un Service Object en Rails?

Respuesta

Un Service Object es una clase Ruby simple (PORO) que encapsula lógica de negocio compleja, normalmente una sola operación. Extrae la lógica de los controllers y los models para mantener el Single Responsibility Principle (SRP). Por lo general, un service object expone un único método público como call o execute, lo que facilita su prueba y reutilización.

2

¿Cuál es la principal ventaja de usar un Service Object en lugar de poner la lógica en el controller?

Respuesta

La principal ventaja es la testabilidad y la reutilización. Un Service Object es una clase Ruby aislada, fácilmente testeable de forma aislada sin tener que simular el contexto HTTP completo de un controller. Además, la misma lógica puede llamarse desde distintos lugares (controllers, jobs, consola) sin duplicar código.

3

¿Cómo estructurar un Service Object con una convención de nombres clara?

Respuesta

La convención recomendada es usar un verbo seguido de un sustantivo, que refleje la acción realizada (ej: CreateUser, ProcessPayment, SendInvitation). El servicio expone un método call como único punto de entrada, y puede invocarse mediante UserCreator.call(params) o UserCreator.new(params).call. Esta convención hace que el código sea autodocumentado y predecible.

4

¿Qué es un Form Object y cuándo usarlo?

5

¿Qué módulo Ruby incluir en un Form Object para beneficiarse de las validaciones de ActiveRecord?

+19 preguntas de entrevista

Domina Ruby on Rails para tu próxima entrevista

Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.

Empieza gratis