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>