ANÚNCIO

~/questoes/programacao

Por que é importante usar um padrão Repository na arquitetura da aplicação?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Aula de referência Curso de Node JS Aula 13 Usar Router e finalizar projeto
Para fixar

Por que o Repository Pattern é essencial na arquitetura

Conceito central

O Repository Pattern é um padrão de design que encapsula toda a lógica de acesso ao banco de dados em um módulo separado. Isso torna a aplicação mais testável, manutenível e desacoplada da camada de dados, permitindo trocar o banco de dados sem alterar o resto do código.

Por que essa resposta faz sentido

O Repository encapsula as operações de banco de dados, tornando a aplicação mais testável e manutenível. Essa separação permite que você escreva testes unitários facilmente (usando dados fictícios) e altere a implementação do banco de dados sem mexer no restante da aplicação.

Armadilhas comuns

  • Confundir Repository com um simples arquivo de queries SQL, quando na verdade ele é uma abstração que pode trabalhar com qualquer tipo de persistência
  • Achar que o Repository elimina a necessidade de conhecer o banco de dados, quando na verdade ele apenas organiza melhor esse conhecimento em um único lugar
  • Pensar que usar Repository obriga a usar apenas um tipo específico de banco de dados, quando ele permite total flexibilidade

Entenda as alternativas

A

Correta. O Repository atua como intermediário entre a aplicação e o banco de dados, encapsulando todas as consultas. Isso permite testes mais fáceis porque você pode criar um repositório fake, e a manutenção fica simplificada pois as mudanças no banco afetam apenas um lugar.

B

Incorreta. O Repository não permite executar SQL diretamente sem bibliotecas. Na verdade, ele trabalha junto com bibliotecas como sequelize, mongoose ou prisma para abstrair as operações. O objetivo é justamente encapsular, não executar SQL raw.

C

Incorreta. O Repository Pattern funciona com qualquer tipo de banco de dados, seja relacional (SQL) ou não relacional (NoSQL). A abstração criada pelo Repository permite trocar entre um PostgreSQL e um MongoDB sem alterar a lógica da aplicação.

D

Incorreta. O Repository não resolve automaticamente erros de conexão. Ele apenas organiza o código de acesso aos dados. Tratamento de erros é responsabilidade da aplicação e deve ser implementado explicitamente com try/catch ou similares.

Dica prática: Ao estruturar seu projeto, coloque cada tabela/coleção em um arquivo repositório separado. Por exemplo, criar um arquivo `UserRepository.js` com métodos como `findAll()`, `findById()`, `create()`, `update()` e `delete()`. Assim seus controllers ficam limpos e seus testes ficam muito mais simples de fazer.

Revise pensando: Se você precisasse trocar seu banco de dados de MySQL para MongoDB, quantos arquivos da sua aplicação precisariam mudar usando o Repository Pattern?