Desenvolvendo uma aplicação 3 camadas para web pela 1 vez

1 resposta
I

Pessoal, sei que isso vai parecer coisa de doido, mas todos sabemos que quem trabalha nesta área tem sempre um pouco de loucura. Então tenho a missão de desenvolver uma aplicação web, em 3 camadas. Já trabalhei com outras linguagens mas não com java, apenas fiz um curso basico, e tenho conhecimento obtido na leitura de livros. Minha principal dificuldade não é tanto com o java mas sim com a divisão em 3 camadas.
Sei que temos que dividir em
1 - Telas(Interface Grafica), que no meu caso vai ser as paginas html resultantes
2 - Regras de négocio
3 - Banco de dados.
A dificuldade e a separação da regra de negócios da interface como sou acostumado a desenvolver para desktop não uso muito isso. O nosso objetivo é ficar livre do banco de dados isso é não vamos rodar nenhuma store procedure, nem trigger , nada no banco, tudo teria que ficar no servidor de aplicação. Mas não entendi bem a separação, eu não posso usar nada de acesso a base na 1 camada, nem validações de campos ?
Aguém teria um exemplo ou texto detalhando isso, pois achei muita coisa, mas ainda está muito vago, e espero contar com a ajuda de vocês para está tarefa kamikaze !!

1 Resposta

pcalcado

oi,

relaxa… :lol:

Essa é sempre a maior dificuldade :wink:

É fácil aprender uma ferramenta, o ruim é saber quando e como usar melhor…

Conceitinhos que não fazem mal a ninguém…

  • A camada de apresentação não necessariamente é gráfica. Ok, no seu caso vai até ser, mas evite generalizar assim, esta é a camada de Interface/Diálogo com o usuário, apresentação… ah, e nem sempre seu usuário é uma pessoa, pode ser um outro sistema :wink:

  • Certamente vai acotnecer algum processamento na sua camada de apresentação. Este processamento não deve executar qualquer regra de negócio (nenhuma!!!), mas sim pedir à camada mais próxima (a de negócios) que execute tais operações. Camadas sempre conversam da mais alta (interface) para baixo, nunca o contrário.

  • Sua persistência nem semrpe será feita por Bancos de Dados (a tendência é que cada vez menos o seja), evite generalizar novamente :wink:

Deveria. Não importa a tecnologia usada, este é um princípio básico de um bom projeto de software, não interessa se em Assembly ou Groovy

Boa pedida.

Dica: só caia na tentação de jogar algo no banco se a performance ficar muito abaixo do esperado e você fizer de tudo para otimizar seu sistema.

Sua camada de apresentação pode solicitar informações sobre os objetos de negócio. ‘Base’ (persistência é melhor) é onde seus objetos são persistidos, então em hipótese nenhuma sua camada de apresentação pode sequer imaginar onde os objetos estão persistidos (pelo menos eu nunca vi uma necessidade real disso). Lembre-se que camadas só conversam com adjacentes, a apresentação só pode falar com a de regras de negócio, nunca com a de persistência.

Para, por exemplo, mostrar uma lsita de cidades cadastradas, você pode criar um método

public Cidade[] listarCidades();

na sua interface de negócios para isso. Ela retorna um array de cidade,s que sua apresentação exibe.

[]s

Criado 23 de novembro de 2004
Ultima resposta 23 de nov. de 2004
Respostas 1
Participantes 2