O que é Model-view-controller (MVC)?

Atualmente, muitos softwares e frameworks estão utilizando do padrão MVC para o desenvolvimento de seus aplicativos/sites. O MVC (Model, View e Controller) é uma arquitetura ou padrão que lhe permite dividir as funcionalidades de seu sistema/site em camadas, essa divisão é realizada para facilitar resolução de um problema maior.

Por | @daniellbastos Programação

Introdução


Ei você, peço que pare com tudo que está fazendo, e vamos dar um novo passo na sua carreira profissional. Hoje vamos deixar de ser apenas programadores e vamos rumo ao profissionalismo.

O que é MVC?


Atualmente, muitos softwares e frameworks estão utilizando do padrão MVC para o desenvolvimento de seus aplicativos/sites. Por isso, não fique preso a paradigmas, arquiteturas, padrões ou tecnologias, pois é de grande importância que você se atualize. E agora chegou a hora em que você irá entender o conceito e como funciona o “famoso” MVC. O MVC (Model, View e Controller) é uma arquitetura ou padrão que lhe permite dividir as funcionalidades de seu sistema/site em camadas, essa divisão é realizada para facilitar resolução de um problema maior.

Onde possuímos três camadas básicas, e cada uma delas, com suas características e funções bem definidas para facilitar a sua vida, caro programador.


Definição das camadas


Modelo
O modelo (Model) é utilizado para manipular informações de forma mais detalhada, sendo recomendado que, sempre que possível, se utilize dos modelos para realizar consultas, cálculos e todas as regras de negócio do nosso site ou sistema. É o modelo que tem acesso a toda e qualquer informação sendo essa vinda de um banco de dados, arquivo XML.

Visão
A visão (view) é responsável por tudo que o usuário final visualiza, toda a interface, informação, não importando sua fonte de origem, é exibida graças a camada de visão.

Controladora
A Controladora (controller), como o nome já sugere, é responsável por controlar todo o fluxo de informação que passa pelo site/sistema. É na controladora que se decide “se”, “o que”, “quando” e “onde” deve funcionar. Define quais informações devem ser geradas, quais regras devem ser acionadas e para onde as informações devem ir, é na controladora que essas operações devem ser executadas. Em resumo, é a controladora que executa uma regra de negócio (modelo) e repassa a informação para a visualização (visão). Simples não?


Por que utilizar MVC?


Com o aumento da complexidade dos sistemas/sites desenvolvidos hoje, essa arquitetura tem como foco dividir um grande problema em vários problemas menores e de menor complexidade. Dessa forma, qualquer tipo de alterações em uma das camadas não interfere nas demais, facilitando a atualização de layouts, alteração nas regras de negócio e adição de novos recursos. Em caso de grandes projetos, o MVC facilita muito a divisão de tarefas entre a equipe.

Abaixo serão listadas algumas das vantagens em utilizar MVC em seus projetos:

  • Facilita o reaproveitamento de código;
  • Facilidade na manutenção e adição de recursos;
  • Maior integração da equipe e/ou divisão de tarefas;
  • Diversas tecnologias estão adotando essa arquitetura;
  • Facilidade em manter o seu código sempre limpo;


Exemplo do funcionamento do MVC


Com a teoria já compreendida, vamos imaginar a seguinte situação: Você desenvolveu um site, e esse site possui uma tela de login, onde o usuário digita seu login e sua senha, após a autenticação, caso ocorra tudo certo, o usuário acessa a área restrita do site, caso contrário é redirecionado novamente para a página de login repassando uma mensagem que a combinação de usuário e senha é inválida.

Conseguiu imaginar essa situação? Beleza... Agora veja como isso acontece caso você ainda não tenha adotado a arquitetura MVC em seu site: Primeiramente, o usuário preenche o formulário com seu login e sua senha e pressiona o botão “Logar”.

Depois disso, o formulário envia essas informações para um arquivo onde, no mesmo arquivo, você executa as seguintes etapas:

1. Armazena em variáveis os dados digitados pelo usuário;
2. Montam um comando SQL para selecionar o usuário;
3. Verifica se retornou alguma informação;
  • Se retornar alguma informação, armazena o usuário em uma sessão e redireciona para a área restrita;
  • Se não retornar nenhuma informação, redireciona para a página de login com uma mensagem notificando que a combinação digitada é inválida;


Aparentemente esta tudo OK, tudo funcionado. Mas veremos agora como funcionaria se o seu site estivesse utilizando a arquitetura MVC:Os passos seguem os mesmo, primeiramente, o usuário preenche o formulário com seu login e sua senha e pressiona o botão “Logar”. Agora veremos algumas mudanças.

Depois disso, o formulário envia essas informações para uma controladora, e essa controladora realizará as seguintes etapas:

1. A controladora (controller) carrega um modelo (model), e executa um método que realiza a validação;
2. No modelo (model) são executadas as seguintes tarefas:
  • Armazena as informações digitadas pelo usuário;
  • Realiza a consulta. Caso retornando verdadeiro (true) em caso de sucesso, ou falso (false) no caso da combinação das informações digitadas serem inválidas;

3. A controladora (controller) verifica o que o modelo retornou;
  • Se retornar verdadeiro (true) armazena as informações em uma sessão e redireciona o usuário para visão (view) da área restrita;
  • Se retornar falso (false) redireciona o usuário de volta para a tela (view) de login repassando a mensagem que a combinação digitada é inválida;

Agora você pode ficar se perguntando, mas do modo que eu faço também funciona? Pode ser que sim, ma imagine ter que alterar a regra de negócio. Antes de utilizar MVC você precisaria abrir o arquivo que realiza todas as tarefas e localizar a sua regra, para depois alterar. No caso do MVC, você já sabe onde se encontra as suas regras de negócio, então você vai direto ao arquivo. Por isso que a maioria dos frameworks já vem com sua estrutura de diretórios pronta, facilitando a localização dos arquivos.


Considerações finais


Deixo vocês refletindo sobre as vantagens de trabalhar com a arquitetura MVC, e saibam que toda a evolução, necessita de esforços. Nesse caso, você só vai precisar se dedicar um pouco nos estudos, para compreender o funcionamento e suas particularidades dessa arquitetura. Mas garanto que, assim todo aprendizado sempre é válido, vocês estarão dando um grande salto na sua carreira, se diferenciando dos demais concorrentes que ainda resistem em ao novo, pelo medo ou até mesmo por comodidade.


Referência


MVC (Model-View-Controller), Tárcio Zemel.
Disponível em <http://codeigniterbrasil.com...>

MVC. Disponível em <http://pt.wikipedia.org/wiki/MVC>

ASP.NET, MVC (Model-View-Controller) Introdução, José Carlos Macoratti.
Disponível em <http://www.macoratti.net>

Padrões de Projeto: O modelo MVC, Macoratti, José Carlos.
Disponível em <http://www.macoratti.net/>

Padrões de Projeto Web e o MVC, Almir Neto e Otávio Calaça Xavier.
Disponível em <http://www.slideshare.net>

Mais sobre: mvc, arquitetura, desenvolvimento
Share Tweet
DESTAQUESMais compartilhados
Comentários
AINDA NÃO SE INSCREVEU?

Vem ver os vídeos legais que
estamos produzindo no Youtube.