Diversos

Em por

Neste artigo iremos abordar um assunto conhecido pela maioria dos desenvolvedores, mas que ainda se mostra muito deficiente de conceito, principalmente de exemplificação prática, o MVC. 

arquitetura MVC

O que é MVC?

MVC é a sigla para Model View Controller, que é um padrão de arquitetura de software amplamente utilizado na engenharia de software. Basicamente essa arquitetura separa a representação da informação da interação do usuário.

Acredito que todos devem procurar se aprofundar no assunto pesquisando por material mais conceitual, porém acredito que a abordagem direta seja o primeiro passo para entender de forma objetiva estes padrões.

Qual é a função do Model (M)?

Simplificando, quando pensamos em regras de negócio, estamos pensando em Model. É nela onde tudo que estiver relacionado a acesso a banco, arquivos, validações em geral, cálculos e requisitos específicos do projeto, devem ser representados.

Exemplo:
Se um usuário adiciona um produto em um carrinho de compras em uma loja virtual, o Model será o responsável pelos cálculos de descontos, juros, frete, utilização de cupons, baixa no estoque e etc.

Aí você me pergunta (rsrsrs)?

Certo, mas para o usuário adicionar um produto no carrinho ou inserir o CEP para entrega é preciso que ele antes veja o produto, quem é que faz isso?
Sim, boa pergunta, a sua resposta é: Na View.

Confira abaixo:

Qual é a função da View (V)?

Mostrar informações, isso é único objetivo da View. Não deveria ser utilizado para outra coisa, mas na prática não é assim que acontece. Quem já desenvolveu com VB/Delphi já viu muitas vezes, regras de negócio escritas em um botão, “bem mais fácil né”!!!

Para quem é desenvolvedor web PHP/ASP, por exemplo, já viu regras escritas diretamente com o código e em muitas vezes misturado ao HTML. Na verdade muitos ainda fazem desta forma.

Entendo que, quando iniciamos o aprendizado na FALCULDADE, deveríamos aprender da forma correta, desde o início. Desta forma, todos iriam se acostumar com a forma correta de iniciar um projeto. Mas todos nós sabemos que não é desta forma que acontece.

Começamos pelo simples “Hello World”, nos aprofundamos cada vez mais e depois vem à matéria odiada por muitos (talvez por esse motivo) a ESTRUTURA DE DADOS, PADRÃO DE PROJETOS e afins. Quando iniciamos nestas matérias, no início para uns e sempre para outros, sentimos muita dificuldade, pois temos que aprender a “andar novamente”.

Mas deixe isso pra lá, pois foge completamente da nossa alçada e vejamos como a View faz para passar os valores (e se comunicar) com o Model, basta passá-los diretamente?

Não, quem faz isso é o nosso maestro, o Controller.

Vejamos:

Qual é a função do Controller (C)?

Como o próprio nome diz, ele é o controle, o maestro, é “ele” quem faz as coisas acontecerem. Coloquei ele entre aspas, pois ele (processador/máquina) não faz nada se não tiver nada. Às vezes escuto as pessoas dizerem – “Nossa como essa máquina é inteligente, faz tudo certinho e muito rápido”. Dá uma vontade... mas não fazem ideia do sofrimento do ser humano (nós desenvolvedores) para tal, mas deixa pra lá...

Uma dúvida muito comum que surge, é se as regras de negócio podem ser colocadas também no Controller, e a resposta é bem curta - Não!

Outra dúvida muito comum é se no controller há visuzalização de informações. Bem se você chegou até aqui é melhor dar um loop e começar a ler o artigo desde o início novamente, pois a resposta também é Não!

O papel do Controller na arquitetura também é simples, delegar para o Model as solicitações da View. O Controller nunca deve ser utilizado para regras de negócios e muito menos para visualização de informações. Ele é o responsável tão somente pela comunicação de quem está pedindo algo e para quem enviará a resposta, ele deve ser usado somente para delegar as funções.

Ele sabe quem faz, mas não precisa saber fazer e muito menos conhecer os procedimentos envolvidos!

Resumindo

O Controller se comunica com a View e também com o Model, Já o Model nunca se comunica com a View, mas por sua vez ela observa o Model, que avisa quando as solicitações foram atendidas para que a View possa mostrá-las.

Ainda está confuso? Então acompanhe abaixo na imagem como se dá este relacionamento entre eles.

mvc

Para não restar dúvida de que o MVC é uma ótima arquitetura para desenvolvimento de software, veja abaixo as suas principais vantagens:

Reaproveitamento de código e regras;

  • Facilidade de manutenção;
  • Integração de equipes e/ou divisão de tarefas;
  • Camada de persistência independente;
  • Facilidade na implementação de camadas de segurança;
  • Facilidade na atualização da interface da aplicação.

Espero que você tenha compreendido o conceito básico da arquitetura. Nos próximos artigos sobre o assunto, abordarei na prática e com exemplos como é feita a implementação com MVC.

Dúvidas, críticas ou sugestões comentem abaixo e bons estudos. laugh

Veja Também:

Artigos Relacionados a categoria: Diversos

Olá, deixe seu comentário para Arquitetura MVC de forma simples

Enviando Comentário Fechar :/

...AINDA NÃO VIU NOSSO PORTFÓLIO?

Se ainda não viu nosso Portfólio e quer conhecer um pouco mais... aproveite e veja agora mesmo e tenha um site de qualidade para o seu negócio!

[contato]
Ver o Portfólio Agora