Fórum Direção no desenvolvimento #393263

03/01/2011

0

A grande sacada do java e ao mesmo tempo um problema(para quem se acostumou com Delphi ou C#), é exatamente a distância que ele põe entre o core da aplicação e o designer. Com isso, muitos desenvolvedores iniciantes(como eu), fica naquela situação, tipo, devo escrever minhas classes no mesmo package que os Servlets? E como ficam as JSP's? Bem, o que eu quero dizer com isso é o seguinte(vou exemplificar que é melhor): Digamos que eu vá fazer um sistema de pedidos de compras. Eu tenho as requisições de compras, itens de produtos, nota fiscal de entrada, contas a pagar(Só isso para exemplificarmos). Bem, esses caras listados, vão gerar algumas classes, tipo: Pessoa, Fornecedor, Cliente, Produtos, Item de Produto, cabeçalho de Nota, Corpo de Nota, Tributos,Conexão banco e etc.... Alguns Servlets: VerificaEstoque,PegaFornecedor,PegaCliente,LançaNotaFiscal e etc... Alguns JSP's: RetornaInformaçãoCliente,RetornaInformaçãoEstoque e etc... Conexão com banco de dados, senha de login e etc...   Tudo isso deve estar no mesmo projeto, mas como fica a distribuição deles nos Packages? Como deve ser organização deles dentro do projeto? A idéia de classes, servlets, jsp e etc... foi somente sugestão, de repente não é nada disso que eu falei, pode ser algo mais ou menos. Isso foi apenas o que passou na minha mente, mas uma mente de quem está começando. E os Framework(Struts,Springs,Hibernate e etc....) Como escolher e aplicá-los? P.S. Esse projeto é WEB.
Pjava

Pjava

Responder

Posts

03/01/2011

Davi Costa

Paulo seguinte,
como vai dividir seus packages vai depender da sua arquitetura, recomendo pelo menos
três pacotes, seguindo o padrão MVC:
model
view
controller.
Porém existe muitos padrões que ajudam mais ainda nessa separação de pacotes, com a programação Orientada a Objetos, surge os padrões orientados a serviços(interfaces), ou seja, seus serviços vão ficar em interfaces, diminuindo assim o acoplamento da sua aplicação. O que fará sua regra de negócio (para ficar mais organizada separada em pelo menos) duas camadas, os serviços(interfaces) e implementações desses serviços.

Para as jsp, elas não costumam ficar junto com as classes java, elas ficam dentro da pasta web e suas subpastas da aplicação. Essa pasta web pode variar de projeto para projeto, pode ser WebContent em outros projetos. Isso é configurável vai depender de vc. É uma prática bem comum dividir as páginas web em pastas conforme os casos de uso. Resumidamente um CRUD completo por pasta.

Para os frameworks e quais usar vai depender do que sua aplicação precisar fazer, o que inegavelmente é uma realidade em aplicações Java é o uso do JPA. Mas para camada de visualização existem muitos frameworks para tomarmos alguma decisão é necessa´rio um arquiteto experiênte ou um consultor Java. Para os rquisitos que vc falou Struts 2.0 ou JSF 1.2 ou 2.0, omo vc é iniciante eu recomendaria o JSF 1.2.

Espero ter ajudado.

att Davi Gomes da Costa 
Responder

Gostei + 0

03/01/2011

Pjava

Cara, é interessante Java. Eu estou, além dos exercícios do livro, fazendo um Sistema de Pedidos de Compra. Já fiz muita coisa em Java, menos conexão com Banco de Dados. Estou usando o MySql, por questões de aprendizado(não dele, mas de Java). Comecei a criar minhas classes Java(Pessoa,Fornecedor,Cliente,Produtos,Itens,Nota_Fiscal e etc...). Elas eu as mantive no Package default, pois são apenas classes java. Claro, que eu poderia criar package específicos, para melhorar a distribuição e etc, mas nesse meu caso em particular não. Me respondam uma coisa. Os formulários que irão ser preenchidos, tipo, Fornecedores, Clientes(Formulários HTML) e depois esses dados seriam gravados em uma Tabela do BD. Esses Form, posso criá-los fora, tipo DreamWeaver ou faço tudo dentro do java? Comno associá-los, caso sejam criados fora?
Responder

Gostei + 0

03/01/2011

Davi Costa

Paulo,
as classes que costumam representar tabelas no banco de dados, em qualquer projeto que vc trabalhar vão estar em um pacote específico, chamado de model ou entities. É importante essa separação já. Pesquise sobre hibernate (JPA) para sua conexão com o banco de dados, aqui na própria devmedia vc vai encontrar muita coisa mesmo. Sobre qualquer arquivo ser classe java, todos os arquivos em sua maioria são classes, eles devem sim estar em pacotes, por inúmeros motivos: organização, facilita manutenção e desacoplamento (vc deve se perguntar pq desacoplamento??). com sua aplicação bem distribuída vc poderá aplicar a muitos frameworks, alguns frameworks facilitam suas configurações caso as classes javas estejam bem distribuídas em pacotes, e essa divisão mais essencial é as das entidades (classes java que representam tabelas no banco de dados relacional).
Caso queira usar DreamWeaver, não tem problema não vc faz sua página lá e cola na sua página na sua IDE sem problemas. Recomendo para valer para vc a utilização de JSF 1.2 e Hibernate (JPA) pesquise para valer esses frameworks. Vc já deve ter imaginado que Java é um mundo e não vai aprender tudo da noite p dia, existem muitos e muitos frameworks e essa concorrência vem trazendo cada vez mais opções para trabalharmos em java e facilitar a vida do programador. São muitos conceitos e alguns complexos como injeção de dependências e por aí vai... tudo que estou dizendo aqui é só a ponta do iceberg, os que estou te recomendando são de bem simples utilização e altamente produtivos além de serem bastante usados.. Mas pelo mundo afora vc vai encontrar muita coisa com Struts 1 ainda... e outros frameworks mais novos como o Seam Framework... Então por esse e outros motivos sugiro a vc a começar pelos que eu citei. Bons estudos

att Davi
Responder

Gostei + 0

04/01/2011

Robson Teixeira

Paulo, Siga por esse caminho sempre separe suas classes em pacotes e tambêm veja um poco sobre tags customizadas que e algo que varios frameworks que trabalham com a camada de visão possuiem pois facilitam para o programador java e pro desiner também. Abraços e FELIZ 2011 para todos.
att  robson Passarella teixeira
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar