Conceitos - Um resumo sobre o MVC (no contexto da web)


Neste post vou abordar o MVC de uma forma que foque no propósito de cada camada de separação, depois será feita uma reflexão sobre o uso desse modelo de separação atualmente para a web.

Regras de negócio

Antes de focar propriamente no MVC e nas suas definições, é interessante explicar o que são as regras de negócio, pois esse termo é bastante utilizado para abordar a separação de camadas do MVC.

Regras de negócio, no contexto de software, são as regras de definem o funcionamento de um sistema, elas são os requisitos que definem as particularidades que compõem as funcionalidades de projeto.

Models contém as regras de negócio

A camada de model do MVC se refere , basicamente, as regras de negócio da aplicação, em outras palavras, ela não está limitada a banco de dados. Apesar disso, a maioria dos exemplos encontrados na internet mostram só esse uso da camada de Model.

Todas as partes do projeto que são referentes as regras de negócio são pertencentes a camada de model. Não é necessário se limitar, pois essa camada pode conter validações, leitura de dados de arquivos e etc.

Controllers não levam regras de negócio

Os controllers são parte de uma camada intermediaria. Basicamente, eles ligam o model e a view, um controller é referente uma ação de uma requisição HTTP em uma determinada rota. Os controllers não devem conter regras de negócio, pois isso, como já foi mencionado, é do model.

Lembre-se: mantenha seus controllers pequenos, não coloque lógicas essenciais da aplicação nele. O papel dele é utilizar os outros componentes e não conter a implementação da funcionalidade.

Views mostram algo

A camada de view gera a parte que o usuário vai visualizar, o que no contexto da web vai ser HTML na maioria das vezes. Porém, é importante saber que uma view não se limita a isso, pois dependendo da aplicação a saída gerada pode ser um XML, um JSON ou qualquer outro tipo de formato.

O MVC e a web atualmente

O MVC foi criado para Desktop, portanto ele não foi pensado para web, apenas foi portado para ela. Hoje existem os micro-frameworks com routers que refletem melhor o funcionamento da web e foram pensados para esse tipo de ambiente. Apesar dessa opção, o MVC ainda é usado em frameworks full-stack e, portanto, ainda é válido entendê-lo.


ver todos os posts
Publicado em 24/01/2020