Dev (Back & Front)ARTIGO

MVC para agilizar projetos Web

Nesse artigo abordarei um assunto de interesse a todos os participantes de um projeto dando ênfase a projetos de sistemas para a Internet: o padrão de arquitetura da aplicação. MVC significa Model-View-Controller e tem como tarefa aumentar a produtividade de projetos por meio de divisão de tarefas especificas dentro de um sistema de forma a facilitar a identificação e alteração de algum módulo ou visual, o que sempre ocorre em um projeto real.

Um padrão é algo que seguimos do inicio ao fim da mesma forma, ou seja, a forma que iniciamos um processo é a mesma forma que terminamos o mesmo, e essa forma é utilizada em todos os passos no ciclo de vida intermediários que os ligam. Manter um padrão de arquitetura é extremamente importante por vários motivos

inerentes a um projeto. Explicarei alguns dos mais importantes mostrando alguns exemplos práticos.

Nos primórdios da era da informática, computadores não eram populares na maioria das empresas, muito menos para pessoas comuns. Mas isso mudou da ultima década do século passado até os dias de hoje numa velocidade impressionante. Com o início da Internet, a quantidade de informação aumentou e muitas profissões como engenharia de software e arquitetura da informação são indispensáveis para a gerência correta de projetos.

Temos etapas em comum em todos os projetos web atuais: definição dos requisitos de clientes, preparação de conteúdos e imagens, estruturação dos dados, criação e modelagem de banco de dados, criação de layout e criação da parte de programação de funcionalidades do sistema. No início da Internet essas etapas eram mais simples, focando-se apenas em poucas páginas fixas simples e quase sem funcionalidades extras.

E é aí que temos o padrão de arquitetura para o auxílio de todo esse processo. Existem vários tipos de padrão de arquitetura, mas o padrão MVC é o mais interessante para Internet, pois trabalha com a divisão correta entre todas as áreas citadas. Vamos a um exemplo…

Projeto: Sistema de login e senha.

Descrição: Área de acesso restrito, onde o usuário poderá entrar com um nome de usuário e senha.

Funcionalidades extras:

– Usuário pode pedir sua senha para que o sistema retorne via correio eletrônico.

– Caso o cliente entre em uma página em que precise estar logado, pedir nome de usuário e senha e, após isso, redirecioná-lo automaticamente para essa página.

Esse é um exemplo simples e trivial, mas que é suficiente para mostrar o quanto os padrões de projeto ajudam no desenvolvimento web. Caso desenvolvessemos esse sistema sem padronizarmos a codificação do mesmo teríamos algo como:

01. Criar uma página com um formulário, com todo o visual definido, algum tipo de validação cliente para o sistema saber se está na hora de enviar para o lugar de destino ou se é pra voltar e se logar com usuário correto.

02. criar uma pagina de destino (ou várias) em que cada uma irá ter um sistema de verificação para saber se o usuário é um usuário válido para a página específica, caso não seja, volta para a página de formulário. Nessa mesma página teríamos todo o visual inerente à página e acesso ao banco de dados.

Para muitos desenvolvedores, essa forma é bastante comum e devem estar se perguntando o que pode estar errado nisso.

A primeira coisa que temos que pensar nos dias de hoje é que os clientes são muito indecisos em relação ao que foi definido no início do projeto. Isso ocorre por vários motivos, dentre eles: visualmente o sistema não ficou como o esperado, mudança nos campos do formulário (podendo ser adicionar ou retirar campos), etc. Então caso aconteça um desses imprevistos, ficaria difícil para serem alterados, pois estão juntos o visual do site, a parte de validação e a consulta ao banco de dados.

Em um sistema simples como o citado acima, já temos muitos detalhes que ficam difíceis para se alterar, mas em um sistema com muitos componentes e funcionalidades ficaria quase impossível uma alteração em um dos módulos! Se estivéssemos trabalhando com padrões de arquitetura seria muito mais fácil. Vejamos o mesmo exemplo:

01. criar um formulário apenas com os campos de acesso

02. criar arquivo com todo o visual do site (módulos para todo site)

03. criar uma etapa intermediária para a validação

04. criar a parte de comunicação com o banco de dados (disponível para qualquer parte do sistema)

05. criar páginas que serão restritas (que solicitam a etapa 2 e, por sua vez, a 3)

Dessa forma, temos um sistema bem simples de ser alterado e funcionando corretamente. Se o cliente quiser, por exemplo, alterar o visual do formulário, podemos alterar um arquivo apenas (o da etapa 2). Se quisesse mudar o sistema gerenciado do banco de dados, teríamos que mudar novamente um arquivo apenas (a etapa 4), sem afetar em nada o restante do sistema.

Assim, seguindo os padrões de MVC, temos um sistema muito fácil de ser mantido por uma equipe de pequeno, médio ou grande porte.

É desenvolvedor web há mais de 8 anos, foi representante da Fatec Zona Sul na maratona brasileira de programação por dois anos consecutivos. Atualmente estuda Matemática Aplicada no IME-USP Focado em algoritmos, estrutura de dados e desenvolvimento web em geral. Possui certificações em Java: SCJP (OCJP) e SCJA (OCJA) e em HTML5/Javascript/CSS MCSD 70-480. Atualmente é Analista de Sistemas em grandes projetosno portal UOL.

Ver perfil