
Padrões de projeto no Rails
Service objects, form objects, decorators, presenters, query objects, concerns
1O que é um Service Object no Rails?
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.
2Qual é a principal vantagem de usar um Service Object em vez de colocar a lógica no controller?
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.
3Como estruturar um Service Object com uma convenção de nomenclatura clara?
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.
O que é um Form Object e quando usá-lo?
Qual módulo Ruby incluir em um Form Object para se beneficiar das validações do ActiveRecord?
+19 perguntas de entrevista
Outros temas de entrevista Ruby on Rails
Fundamentos de Ruby
Programação orientada a objetos em Ruby
Fundamentos do Rails
Routing & Controllers
Fundamentos do ActiveRecord
Views e templates ERB
Associações do ActiveRecord
Consultas avançadas do ActiveRecord
Formulários Rails
Autenticação e Autorização
Asset Pipeline moderno e frontend
Modo API do Rails
Testes com RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Estratégias de caching
Migrações avançadas
Rails Engines e apps modulares
Otimização de desempenho
Metaprogramação em Ruby
Segurança no Rails
GraphQL com Rails
Implantação e Produção
Monitoring & Logging
Estratégias de upgrade do Rails
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