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!