terça-feira, 22 de outubro de 2013

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

 

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.

Fonte: Oficina da Net

Nenhum comentário:

Postar um comentário