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 Programação 2 comentários
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.


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>

Compartilhe com seus amigos:
Daniel Flores Bastos
Daniel Flores Bastos Iniciei minha experiência profissional na computação em 2006 e aos poucos fui pegando gosto pelos desafios que essa área nos oferece, e a partir dai, ando sempre atraz de novidades e novos conhecimentos! Atualmente sou aluno do Curso de Sistemas de Informação na UNIFRA e trabalho no setor de Desenvolvimento de Software do Hospital de Caridade Astrogildo de Azevedo. Em paralelo ao meu emprego atual, possuo minha "carreira solo", para auxiliar empresas, e pessoas, a lançar seus produtos na internet sem muita complicação e com um trabalho de qualidade!
FACEBOOK // TWITTER: @daniellbastos
Quer conversar com o(a) Daniel, comente:
Carregar comentários
Últimas notícias