Fala, pessoal. Hoje vou falar um pouco sobre arquitetura de software, especialmente sobre o padrão de arquitetura MVC.
Vamos fazer uma introdução sobre o que é MVC, alguns pontos importantes sobre essa arquitetura e qual o sentido de usá-la em um projeto. Vem conferir!
Por que me preocupar com a arquitetura de um software?
A arquitetura de um software vai dizer como ele vai funcionar, qual seu comportamento, quais as responsabilidades de cada função ou até arquivos. Olhar para uma arquitetura de software envolve:
- Decidir como a estrutura vai compor o sistema;
- Sincronização de acesso aos dados;
- Como os arquivos e funções vão ser distribuídos.
Explicando os conceitos do MVC
Apesar de muitos arquitetos e desenvolvedores considerarem o MVC um padrão de design de interface, na verdade, ele é um padrão de arquitetura de software que contribui para otimização da velocidade entre as requisições feitas pelo usuário.
As três partes que o dividem derivam do seu próprio nome: Model, Controller e View.
Alguns projetos vão pedir mais camadas do que apenas essas citadas. No entanto, é importante lembrar que um código com muitas camadas torna a manutenção mais difícil.
Ao utilizar o MVC, ele traz como benefício o isolamento das regras de negócio da lógica da aplicação, que no caso, é a interface do usuário. Sendo assim, fazer qualquer mudança relacionada a interface do usuário não interfere na regra de negócio.
O que é o model do MVC?
Também conhecida por “Business Object Model”, sua responsabilidade é gerenciar a forma como os dados se comportam por meio das funções e regras de negócio da aplicação.
Sendo um pouco mais específico, em grande parte das aplicações é no model que estarão de fato os modelos de cada entidade da sua aplicação.
Por exemplo: se você tem um modelo de usuário na sua aplicação, é no model que você define quais os atributos que cada usuário tem, e, dependendo da aplicação, também vai ser nele que você diz o modelo esperado do que o usuário vai poder fazer.
Aqui está um arquivo de exemplo, feito em Node e Mongoose, para exemplificar um modelo de usuário:
E o controller do MVC?
Como o nome já diz, o controller é responsável por controlar as requisições enviadas pelo View e as respostas fornecidas pelo Model.
Nele, é processado tudo que o usuário informou na requisição, e uma vez processado, é também onde uma resposta é gerada.
Podemos dizer que ele é o “líder” do projeto, pois vai fazer a comunicação entre as outras duas camadas.
Aqui está um exemplo de controller usando o Node, Express e Mongoose, e por fim, exportando todo o controller como uma classe:
Explicando o view do MVC
Essa é a camada que fica mais próxima do usuário, pois ela é responsável por apresentar as informações de forma visual para o usuário.
O ideal pensado para a arquitetura é que nela esteja apenas recursos visuais como mensagens, paginas, botões ou telas. O view é a camada que fica mais próxima do usuário, sendo a que vai ser exibida de fato para ele.
Ela é a única parte da estrutura visível para o usuário, sendo assim, ela vai mandar as requisições feitas do usuário para o servidor ou para a aplicação. Ou seja, o view vai enviar a requisição ao controller, que em seguida devolve uma resposta e a view exibe isso para o usuário.
Conclusão
Portanto, o MVC é um padrão de arquitetura de software que visa melhorar a conexão entre as camadas da aplicação, sendo elas camadas de dados, regra de negócio ou interação do usuário.
Assim como qualquer outro padrão ou arquitetura de software, ele visa melhorar a organização e otimização do código para que o mesmo seja escalável e de fácil manutenção.
Se você quiser saber um pouco mais sobre MVC, confere esse vídeo no nosso canal onde o Léo explica um pouco mais sobre cada camada, e ensina como trabalhar com e sem fluxo ao banco de dados.
Até a próxima!