| From | Sent On | Attachments |
|---|---|---|
| Jean Michel | Feb 10, 2010 11:31 am | |
| Felipe Gaúcho | Feb 10, 2010 11:43 am | |
| Felipe Gaúcho | Feb 10, 2010 11:47 am | |
| Jean Michel | Feb 10, 2010 1:25 pm | |
| Felipe Gaúcho | Feb 10, 2010 1:33 pm | |
| Jean Michel | Feb 10, 2010 1:38 pm | |
| Felipe Gaucho | Feb 10, 2010 2:01 pm |
| Subject: | Re: [cejug-discussao] Organização de projetos | |
|---|---|---|
| From: | Felipe Gaúcho (fgau...@gmail.com) | |
| Date: | Feb 10, 2010 11:47:11 am | |
| List: | net.java.dev.cejug.discussao | |
Ah sim, eu uso um CRUD genérico também.. ou seja, muitos DAOs (Puj*Facade) vão estar vazios porque herdam o CRUD deste dao genérico.. estes esqueletos são obrigatórios pelo type erasure do generics em Java, e eu aproveito estes esqueletos para implementar métodos especializados para atender regras de negócio...............
o que tu vai sentir falta é de uma camada específica de negócios onde o modelo de dados é copiado para os objetos de negócio.. isso eu aboli, e este foi o tema da minha palestra lá na Suécia.. simplesmente não precisamos disso...
2010/2/10 Felipe Gaúcho <fgau...@gmail.com>
Oi Jean Michel,
o Arena é um projeto de pesquisa, e estamos investigando o tecnologias Java EE 6 e as ferramentas para obter produtividade com EJB 3.x e JPA 2 dentre outros frameworks.
no final da minha apresentação do Jfokus tem um "Slide Bônus" com a arquitetura do Arena: http://www.jfokus.se/jfokus/preso/jf-10_DomainDrivenRESTWeb-Services.pdf
* estava ali de reserva, mas como ninguém perguntou eu acabei nem mostrando lá no evento. Mas teremos uma segunda apresentação no InfoBrasil 2010 - o Sombriks vai falar dos detalhes.
resumindo:
- o DomainFacade é o DAO - e eu coloquei junto com o modelo de domínio pela coesão, visto que a fachada é dependente do modelo de domínio e cada vez que eu mudo algo no modelo isso afeta a fachada. Ambos no mesmo módulo facilita porque qualquer alteração já reflete na IDE mesmo, mostrando os pontos afetados, etc. Esta fachada poderia estar em um módulo separado, permitindo que a camada de persistência fosse acessada por outro tipo de tecnologia, mas no Arena seria preciosismo visto que são poucos desenvolvedores e não temos um DBA separado do desenvolvedor Java.. optei por maior produtividade misturando DAOs e Entities no mesmo modulo. Um projeto bem maior (em número de papéis) ou reuso do modelo ou migrações altamente plausíveis num futuro próximo justificaria isso. Em projetos om um único objetivo como o arena e onde a integração com outros sistemas se dá pela camada HTTP, não faz sentido (caso contrário, me digam, podemos discutir isso e eventualmente melhorar o projeto se me convencerem que estou indo pelo caminho errado :).
Mais sobre o Arena, com links para referências que usei durante o desenvolvimento: http://kenai.com/projects/puj/pages/Arena-dev * os links tu acha no final da página
Sobre organização de projetos, tu pode começar pelo tutorial oficial: http://java.sun.com/javaee/6/docs/tutorial/doc/
e segue perguntando, o Arena foi criado para nos ajudar a aprender qualquer coisa relacionada a desenvolvimento Java EE...
valeu.............
2010/2/10 Jean Michel <jean...@gmail.com>
Boa tarde pessoal.
Estou dando uma olhada na forma como organizar meus projetos.
Normalmente aqui temos aquele padrão:
Pacote
Classes/Interfaces
br\com\empresa\projeto x\model
Usuário, Empresa, Blábláblá, etc
br\com\empresa\projeto x\dao
GenericDAOInterface, <algum DAO específico>, etc
br\com\empresa\projeto x\dao\impl
GenericDAO, XxxDAO, etc
br\com\empresa\projeto x\facade
UsuarioFacade, EmpresaFacade
...
...
Então olhando os fontes do puj arena reparei que a estrutura é diferente, como por exemplo, tem no raiz do pacote Model um pacote chamado Entity onde ficam as classes e ainda existe o pacote Facade dentro de Entity com as interfaces e o pacote Impl com as implementações (com\kenai\puj\arena\model\entity \facade\impl).
Não há DAO em lugar algum (?).
Onde eu poderia achar material sobre isso? Sobre como organizar o projeto?
Assim como também tenho minhas dúvidas sobre quais padrões implementar (business, action, facade, dao, factory – faz sentido se ter factories quando se usa um Spring da vida (injeção de dependências)).
Valeu pessoal.
-- Best regards, Jean J. Michel
* Sent from my cellphone, please forgive the lack of accents and punctuation marks ;) My blog: http://www.jeanjmichel.blogspot.com My Twitter: http://twitter.com/jeanjmichel
--
------------------------------------------ Felipe Gaúcho 10+ Java Programmer CEJUG Senior Advisor
--
------------------------------------------ Felipe Gaúcho 10+ Java Programmer CEJUG Senior Advisor





