Ruby on Rails

Padrões de projeto no Rails

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

22 perguntas de entrevista·
Senior
1

O que é um Service Object no Rails?

Resposta

Um Service Object é uma classe Ruby simples (PORO) que encapsula lógica de negócio complexa, geralmente uma única operação. Ela extrai a lógica dos controllers e models para manter o Single Responsibility Principle (SRP). Normalmente, um service object expõe um único método público como call ou execute, tornando-o fácil de testar e reutilizar.

2

Qual é a principal vantagem de usar um Service Object em vez de colocar a lógica no controller?

Resposta

A principal vantagem é a testabilidade e a reutilização. Um Service Object é uma classe Ruby isolada, facilmente testável de forma isolada sem precisar simular o contexto HTTP completo de um controller. Além disso, a mesma lógica pode ser chamada de diferentes lugares (controllers, jobs, console) sem duplicação de código.

3

Como estruturar um Service Object com uma convenção de nomenclatura clara?

Resposta

A convenção recomendada é usar um verbo seguido de um substantivo, refletindo a ação realizada (ex: CreateUser, ProcessPayment, SendInvitation). O serviço expõe um método call como seu único ponto de entrada e pode ser invocado por UserCreator.call(params) ou UserCreator.new(params).call. Essa convenção torna o código autodocumentado e previsível.

4

O que é um Form Object e quando usá-lo?

5

Qual módulo Ruby incluir em um Form Object para se beneficiar das validações do ActiveRecord?

+19 perguntas de entrevista

Domine Ruby on Rails para sua proxima entrevista

Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.

Comece gratis