
Repository Pattern
Repository pattern (trade-offs, casos de uso), contracts, service layer, princípios SOLID, dependency inversion, testabilidade, quando NÃO usar
1O que é o Repository Pattern no Laravel?
O que é o Repository Pattern no Laravel?
Resposta
O Repository Pattern é um design pattern que adiciona uma camada de abstração entre a lógica de negócio e a camada de dados. Ele encapsula a lógica de acesso a dados em classes dedicadas (repositories), permitindo separar responsabilidades e tornar o código mais testável. Diferente de usar Eloquent diretamente nos controllers, o repository centraliza as consultas complexas e facilita mudar a fonte de dados sem impactar o resto da aplicação.
2Em qual cenário o Repository Pattern oferece mais valor?
Em qual cenário o Repository Pattern oferece mais valor?
Resposta
O Repository Pattern é particularmente útil em aplicações complexas com consultas sofisticadas e múltiplas fontes de dados. Ele se destaca em projetos corporativos onde a lógica de acesso a dados é complexa, reutilizada em vários lugares ou propensa a mudanças (por exemplo, migrar de MySQL para MongoDB). Para CRUDs simples ou aplicações pequenas, pode constituir uma sobreengenharia desnecessária.
3Qual é o principal trade-off do Repository Pattern?
Qual é o principal trade-off do Repository Pattern?
Resposta
O principal trade-off é o aumento da complexidade do código e do número de arquivos a manter. Cada repository adiciona pelo menos 2 arquivos (interface + implementação), o que pode rapidamente se tornar verboso em aplicações simples. O Laravel Eloquent já é uma abstração poderosa que resolve 80% dos casos de uso, e adicionar uma camada extra pode desacelerar o desenvolvimento sem benefício real se as consultas permanecerem simples.
Como o Repository Pattern aplica o princípio SOLID de Dependency Inversion?
Qual é a principal vantagem do Repository Pattern para os testes?
+17 perguntas de entrevista
Outros temas de entrevista Laravel
Fundamentos de PHP
Fundamentos de POO em PHP
Composer & Autoloading
Fundamentos do Laravel
Routing do Laravel
Blade Templates
Request & Response
Fundamentos do Eloquent ORM
Eloquent Relationships
Migrations & Schema Builder
Validação e formulários
Autenticação
Autorização e Policies
API Resources & Authentication
Middleware
Service Container & DI
Queues & Jobs
Events & Listeners
Notificações & Mail
File Storage
Testing & PHPUnit
Caching
Livewire & Inertia
Eloquent Advanced
Laravel Packages
Performance Optimization
Security Best Practices
Laravel Octane
Laravel Distributed Systems
Observability & Monitoring
Deployment & DevOps
Domine Laravel para sua proxima entrevista
Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.
Comece gratis