Organização de Projeto em Arquitetura MVC
Área: Backend | Nível recomendado: Iniciante
Dominar a estruturação de projetos backend através da arquitetura Model-View-Controller (MVC), uma abordagem padrão para organizar o código em componentes distintos de model, view e controller. Isso facilita a manutenção e a escalabilidade do projeto.
Vídeo
Link direto: https://youtu.be/TGS1ViNOpVw
Tópicos
Introdução ao MVC:
Explicação teórica sobre a arquitetura MVC e seus benefícios.
Análise de como o MVC pode ser implementado em uma aplicação Node.js.
Reestruturação do Projeto:
Organização do código atual em model, view e controllers.
Refatoração das rotas para utilizar os controllers.
Implementação Prática:
Criação de um exemplo prático de CRUD utilizando a arquitetura MVC.
Material de Apoio
Repositório no GitHub
PDF para Download
Miro
Exercícios de Fixação
Use esses exercícios para reforçar o que acabou de aprender. Se errar, leia a explicação para entender melhor o conceito.
Qual é a principal responsabilidade de um Model na arquitetura MVC?
A) Gerenciar a interface do usuário.
B) Processar as solicitações do usuário.
C) Acessar e manipular os dados da aplicação.
D) Configurar as rotas da aplicação.
Resposta correta
Qual é a principal responsabilidade de um Model na arquitetura MVC?
Resposta Correta: C
Feedback: O Model é responsável por acessar e manipular os dados da aplicação, incluindo a lógica de negócios associada.
Resposta correta
Complete o código para definir uma rota que utilize um controller na arquitetura MVC.
Resposta Correta:
Feedback: As rotas são configuradas para utilizar os métodos apropriados do controller, seguindo a estrutura RESTful para operações CRUD.
Verdadeiro ou Falso: Na arquitetura MVC, o Controller é responsável por validar os dados recebidos da View.
A) Verdadeiro
B) Falso
Resposta correta
Verdadeiro ou Falso: Na arquitetura MVC, o Controller é responsável por validar os dados recebidos da View.
Resposta Correta: A
Feedback: Verdadeiro. O Controller é responsável por processar as solicitações do usuário, incluindo a validação dos dados recebidos e a interação com os Models.
Qual comando usamos para instalar o pacote dotenv para carregar variáveis de ambiente?
A) npm install dotenv
B) npm install env
C) npm install dotenv-cli
D) npm install environment
Resposta correta
Qual comando usamos para instalar o pacote dotenv para carregar variáveis de ambiente?
Resposta Correta: A
Feedback: O comando npm install dotenv é usado para instalar o pacote dotenv, que carrega variáveis de ambiente de um arquivo .env para process.env.
Qual é a principal vantagem de usar a arquitetura MVC em um projeto?
A) Reduzir o tempo de desenvolvimento.
B) Melhorar a organização e a separação de responsabilidades no código.
C) Facilitar a criação de interfaces gráficas.
D) Aumentar a velocidade de execução do código.
Resposta correta
Qual é a principal vantagem de usar a arquitetura MVC em um projeto?
Resposta Correta: B
Feedback: A arquitetura MVC melhora a organização e a separação de responsabilidades no código, facilitando a manutenção e a escalabilidade do projeto.
Exercícios de Validação
Esses exercícios testarão sua compreensão prática. Revise o feedback para melhorar suas habilidades.
Desafio de Código
Fornecemos um arquivo index.js que contém um endpoint simples. Separe esse código em um projeto seguindo a arquitetura MVC, criando os arquivos necessários para organizar o projeto em Models, Views e Controllers.
Arquivo Inicial
Tarefas
Configuração Inicial:
Crie a estrutura de pastas conforme o padrão MVC.
Implementação dos Controllers:
Mova a lógica de validação e criação do produto para o controller no arquivo
produto.controller.js.
Implementação dos Services:
Mova a lógica de manipulação de dados para o service no arquivo
produto.service.js.
Configuração das Rotas:
Configure as rotas no arquivo
produto.router.jspara utilizar os métodos do controller.
Atualização do Servidor:
Atualize o arquivo
index.jspara usar as rotas configuradas.
Código Esperado
{%
endcode %}
Feedback: Certifique-se de que a lógica de validação está no controller e a lógica de manipulação de dados está no service. Configure as rotas corretamente para usar o controller.
Revisão de Código
Analise o código a seguir, encontre e corrija o erro relacionado à separação de responsabilidades na arquitetura MVC.
Resposta Correta
Erros:
A lógica de manipulação de dados deve ser movida para o service para manter a separação de responsabilidades.
O código de validação e criação de produtos deve ser movido para o controller.
Feedback: Certifique-se de que a lógica de manipulação de dados está no service e a lógica de controle está no controller para manter a separação de responsabilidades conforme a arquitetura MVC.
Projeto Prático
Reestruture uma aplicação Node.js existente para seguir a arquitetura MVC. A aplicação deve gerenciar uma entidade "Produtos" com as propriedades "nome", "preço" e "categoria". Crie os arquivos necessários para organizar o projeto em Models, Views e Controllers, e implemente operações CRUD para a entidade "Produtos".
Tarefas
Configuração Inicial:
Inicialize um novo projeto NodeJS.
Instale o ExpressJS e o MongoDB Driver.
Configure o Nodemon para reiniciar o servidor automaticamente.
Crie um arquivo
.enve adicione as variáveis de ambiente necessárias.
Estrutura de Pastas:
Crie a estrutura de pastas conforme o padrão MVC.
Conexão com o MongoDB:
Configure a conexão com o MongoDB utilizando o MongoClient e as variáveis de ambiente no arquivo
database-connection.js.
Implementação dos Controllers:
Implemente os métodos do controller para operações CRUD no arquivo
produto.controller.js.
Implementação dos Services:
Implemente os métodos de acesso aos dados no arquivo
produto.service.js.
Configuração das Rotas:
Configure as rotas no arquivo
produto.router.jspara utilizar os métodos do controller.
Inicialização do Servidor:
Configure a inicialização do servidor no arquivo
index.jse adicione as rotas.
Código Esperado
Feedback Detalhado
Verificação dos Endpoints: Certifique-se de testar cada rota (
/produtos,/produtos/:id,/produtoscom POST, PUT e DELETE) acessandohttp://localhost:3000e verificando as respostas.Estrutura do Projeto: Verifique se a estrutura de pastas segue o padrão MVC, com Models, Views e Controllers bem definidos.
Uso de Variáveis de Ambiente: Certifique-se de que as informações sensíveis, como a URL do banco de dados, estão sendo carregadas do arquivo
.env.
Last updated