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:
Basicamente cada sistema irá ser composto por essas três camadas (como descritas anteriormente). Um exemplo de fluxo real seria:
- Uma pessoa acessa alguma página do nosso sistema.
- Esse acesso irá disparar uma operação de negócio para o sistema.
- Cada operação de negócio é mapeada para uma rota (endpoint) no sistema.
- Para cada rota é anexada uma ação de um controlador.
- As ações dos controladores utilizam os modelos para recuperar e persistir informações.
- As informações são repassadas para as páginas.
- As páginas são renderizadas.
Exemplo do fluxo:
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.