Problema com dependencia lazy.  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
garcia-jj
JWizard

Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline

Derlon, há dois bons artigos que podem acrescentar na discução sobre lazy-load, dtos e afins.

http://community.jboss.org/wiki/HibernateinaLayeredArchitecture
http://community.jboss.org/wiki/RemoteLazyLoading

A conclusão q tiramos disso é q o DTO (e uma grande parte dos outros Padrões do catálogo J2EE Core-Patterns) só foi "inventada" para melhoria de performance (para "suprir uma deficiência da" "API do EJB").


Muito espírito crítico para saber avaliar cada um dos patterns. Muitos são inúteis em alguns casos, mas úteis noutro. O pior que conheci um projeto em EJB 2.1 que usava TODOS os patterns. E sabe que ficou bem elegante? No caso desse projeto era mesmo necessário usar aquilo tudo, mas hoje em dia com EJB3 eu não faria assim.

Mas, acho q podemos tirar boas lições (e dicas). Garcia, em outro post vc levantou interessantes aspectos: 1 deles é o "do Desenvolvedor UI q chama 1 'User.getRoles().clear()' e depois poderia salvar o User". Sei q já estou começando a ir off-topic, mas não tem jeito:
[off-topic - ***]
para o atributo 'roles' (para não dizer bobo) seria estúpido disponibilizar um método 'setRoles()' => se o q realmente faz sentido é adicionar (ou remover) papeis de um Usuário. Isto é uma falha de Modelagem: não fizemos o 'Hidding of Information'! E quanto ao 'User.getRoles()', a falha é maior ainda, pois acabamos expondo a estrutura Interna (q poderia ser um array (de Role's), um List, um Set, ou até mesmo um (Hash)Map) da Composição de Papeis de um Usuário; quando o correto seria (além de forncecer o métodos adicionar e remover) fornecer um método q retornasse, não a própria Referência do atributo (interno) Roles, mas uma cópia (um tipo de Clone) desta composição. Conseguem me compreender?!


Aí e que está meu ponto. Em muitos códigos que vemos aqui no GUJ o pessoal carrega uma entidade, User por exemplo, e simplesmente retorna isso ao controller. Ou seja, qualquer coisa que for feita no meio do caminho altera o estado do objeto, e como há um open-session-in-view o objeto é persistido normalmente.

http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum.
derlon
JavaTeenager

Membro desde: 12/12/2009 14:07:01
Mensagens: 150
Offline

...
garcia-jj wrote:Derlon, há dois bons artigos que podem acrescentar na discução sobre lazy-load, dtos e afins.
http://community.jboss.org/wiki/HibernateinaLayeredArchitecture
http://community.jboss.org/wiki/RemoteLazyLoading

A conclusão q tiramos disso é q o DTO (e uma grande parte dos outros Padrões do catálogo J2EE Core-Patterns) só foi "inventada" para melhoria de performance (para "suprir uma deficiência da" "API do EJB").
Muito espírito crítico para saber avaliar cada um dos patterns. Muitos são inúteis em alguns casos, mas úteis noutro. O pior que conheci um projeto em EJB 2.1 que usava TODOS os patterns. E sabe que ficou bem elegante? No caso desse projeto era mesmo necessário usar aquilo tudo, mas hoje em dia com EJB3 eu não faria assim.
 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team