13 de novembro de 2008

Padronização de projetos

Já vi, e vivi, muitos casos em que um projeto acaba por virar uma dor de cabeça para cada um dos membros da equipe(quando se trata de um trabalho acadêmico isso se transforma em dor de cabeça para quem está fazendo, pois os outros geralmente se "encostam" ;) ).
Pensando nisso adotei uma teoria que torna muito mais simples de se trabalhar em grupo, quando o fator determinante entre o "tudo deu errado" e o "ainda bem que acabou".
Falando de projetos que trabalham com o paradigma de Orientação à Objeto (C++, Java, Raskel, Python, Ruby, Oracle, etc), há artificios da própria linguagem que torna a padronização mais concreta e fácil.



Como estou em meados de tentar o SCJP 5 então vou puxar sardinha pro meu lado ;)
Em um projeto você pode usar um dos diversos disigner pattern que existem. Os conceitos que mais indico é MVC e DAO, com isso o programador tem uma separação lógica (e física dependendo de como é implementado) dos componentes do projeto.

Explicando:
MVC - Model View Control : Separa o projeto em camadas para que cada integrante do projeto possa focar naquilo que tem mais conhecimento. Ou seja, o cara que sabe tratar bem o banco de dados(suas conexões, framework e tal) vai ficar responsável pelas implementação do Model (persistência) o cara que tem mais afeição em regras de negócios e bons conceitos de aprimoramento de código(boas práticas de algorítmos e tal) ficaria com as regras de negócio(control), por fim dixar um designer trabalhar com a View(GUI) ;)

Com um desenvolvimento usando DAO, o projeto ganha mais liberdade quanto a implementação de banco de dados. Fazendo as conexões entre o model e o control atravéz de interfaces(ou abstracts) tornando mais facil de mudar a base de dados.

A pergunta que me fazem constantemente na vida de instrutor no EAD e no cotidiano de monitor de disciplinas de programação:
- Como faço pra interligar essas camadas e como separo isso?
Não é muito fácil, confesso. Porém mostrando uma forma de implementação tudo fica um tanto mais visivel, não é?

Bom, para esse post não se tornar mais extenso do que já se tornou, vou dividí-lo em vários para mostrar uma forma de implementação usando MVC e DAO. Em outros posts posso mostrar como usar JPA, JSF, JSTL, Spring, Struts e outras tecnologias de desenvolvimento ágil. Depois um tal de "Scrum", para entrar mos na área de Gerenciamento de Projetos.

Um comentário:

Núcleo GP disse...

Olá Jefferson!

Muito bom o seu blog. É isso aí, vamos trabalhar para divulgar e desenvolver o conhecimento sobre GP em nosso estado.
Espero que em 2009 trabalhemos em conjunto por este objetivo.

Abraços,

Rogério Morais
Núcleo GP - Extensão FCAP/UPE