Arquitetura de Informação

10 dez, 2021

Estilos arquiteturais: conheça melhor o MVC (Model, View, Controller)

Publicidade

Dando ínicio à uma série de posts sobre estilos de arquitetura, nesse primeiro vamos dar uma olhada no estilo MVC. Um estilo de arquitetura é uma forma de definir os componentes e elementos sobre os blocos de construção de um software, ou seja, como o mesmo será construído (iremos falar sobre isso em post’s futuros).

Estilo MVC

O estilo MVC é um estilo de arquitetura baseado em três camadas principais, sendo:

  • Modelo (Model): O modelo é responsável por manter e lidar com as informações. Ele está conectado em uma camada de persistência (podendo ser um banco de dados).
  • Página (View): As páginas são de fato a UI (interface) do sistema, elas são responsáveis por lidar com as apresentações das informações.
  • Controlador (Controller): Os controladores lidam com a conexão entre as páginas e os modelos, ou seja, ele realiza a ponte entre ambos (recebe requisições das páginas, recupera ou persiste as informações e devolve uma resposta para as páginas). Normalmente para cada operação de negócio irá existir uma ação responsável em um controlador.

Topologia

A topologia desse estilo de arquitetura pode ser representada da seguinte forma:

Topologia da arquitetura MVC

Basicamente cada sistema irá ser composto por essas três camadas (como descritas anteriormente). Um exemplo de fluxo real seria:

  1. Uma pessoa acessa alguma página do nosso sistema.
  2. Esse acesso irá disparar uma operação de negócio para o sistema.
  3. Cada operação de negócio é mapeada para uma rota (endpoint) no sistema.
  4. Para cada rota é anexada uma ação de um controlador.
  5. As ações dos controladores utilizam os modelos para recuperar e persistir informações.
  6. As informações são repassadas para as páginas.
  7. As páginas são renderizadas.

Exemplo do fluxo:

Fluxo de uma arquitetura MVC

Avaliações das características arquiteturais

Cada estilo de arquitetura possuí uma série de características arquiteturais, um estilo favorece uma característica A e desfavorece uma característica B. Outro estilo favorece B e desfavorece A, etc… Já falamos sobre tais características arquiteturais.

Para que não seja necessário avaliar todas as possibilidades vamos emprestar a tabela de avaliações citada em Fundamentos da arquitetura de sistemas (existem várias outras características não cobertas pela tabela) onde vamos avaliar algumas essenciais e principais.

No meu ponto de vista dei as seguintes notas para cada característica (troquei as estrelas por números de 0 à 5):

Características arquiteturais Avaliação (0-5)
Tipo de particionamento Técnico
Numéro de quantas 1
Deploiabilidade 1
Elasticidade 1
Evolução 2
Tolerança à falhas 1
Modularidade 2
Custo geral 5
Performance 2
Confiabilidade 2
Escalabilidade 1
Simplicidade 5
Testabilidade 3

Obs: Não se preocupe com “tipo de particionamento” e “número de quantas”, iremos ver mais sobre ambos em post’s futuros.

Conclusão

Nesse post demos início em uma série sobre estilos arquiteturais e para começar falamos sobre o estilo de arquitetura MVC (Model, View, Controller).

Os post’s serão mais focados em teoria, ou seja, irão apresentar e trazer os conceitos. Se você quer algo mais prático fique de olho no meu canal do Youtube onde os estilos de arquiteturas serão implementados na prática.

Abraços, até a próxima.