| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2007 00:39:29
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
saoj wrote:Fazer lazy loading na mão é inviável mesmo. Falei em ao invés de deixar que o lazy loading aconteça automaticamente, vc controlaria quando e onde ele aconteceria, ou seja, vc saberia quando e onde as dependencias são realmente necessários e faria o lazy loading carregando as dependencias na mão através do framework de ORM em questão. No caso do hibernate já vi algumas pessoas sugerirem que vc force o lazy loading antes de dar um forward para a página.
Uh? Como eu poderia saber onde elas são necessárias sem quebrar Camadas?
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2007 00:41:16
|
fabio.patricio
GUJ Master
Membro desde: 04/01/2004 02:51:33
Mensagens: 1512
Localização: Porto Alegre - RS
Offline
|
Olá,
Sera que nos dias de hoje o custo de um proxy é tao alto assim para termos que nos preocupar com isso?
Sinceramente. Acho que nao.
]['s
|
Fabio Patricio
http://blog.wansoft.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2007 01:27:59
|
plentz
Moderador
![[Avatar]](/images/avatar/73f490f3f868edbcd80b5d3f7cedc403.png)
Membro desde: 28/01/2004 07:34:12
Mensagens: 1584
Localização: Porto Alegre, RS
Offline
|
fabio.patricio wrote:Sera que nos dias de hoje o custo de um proxy é tao alto assim para termos que nos preocupar com isso?
A resposta é simples: não. E acho que não preciso nem de dados estatísticos pra "provar" isso, acho que qualquer um que já tenha utilizado(e utilizado corretamente) o Hibernate, sabe que o "custo" dos proxys são irrisórios dados os benefícios e facilidades que eles trazem.
|
Diego Plentz - Twitter
"Provide options, don't make lame excuses." |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2007 01:45:36
|
plentz
Moderador
![[Avatar]](/images/avatar/73f490f3f868edbcd80b5d3f7cedc403.png)
Membro desde: 28/01/2004 07:34:12
Mensagens: 1584
Localização: Porto Alegre, RS
Offline
|
saoj wrote:Fazer lazy loading na mão é inviável mesmo. Falei em ao invés de deixar que o lazy loading aconteça automaticamente, vc controlaria quando e onde ele aconteceria, ou seja, vc saberia quando e onde as dependencias são realmente necessários e faria o lazy loading carregando as dependencias na mão através do framework de ORM em questão. No caso do hibernate já vi algumas pessoas sugerirem que vc force o lazy loading antes de dar um forward para a página.
Bom, aqui temos uma confusão de conceitos. Lazy loading é justamente pra livrar o programador de ter que ficar controlando o que ele precisa e quando precisa(por isso, lazy). Ele simplesmente solicita e caso não esteja lá ainda, o proxy carrega. Preguiçoso = faz quando realmente precisa. O que você está sugerindo não é nem Lazy nem Eager. Simplesmente é obrigar o desenvolvedor a fazer um "manual fetch".
Sobre as pessoas que sugerirem carregar antes de mandar pra view, eu vejo isso como um grande problema. Pensem comigo:
- tenho uma tela que lista cliente e pedidos. Como tenho que listar os pedidos, vou chamar o initialize em pedidos.
- tenho agora uma tela que lista o cliente e suas compras do passado.
E aqui começam os problemas. Crio outro método para carregar as informações que preciso, ou simplesmente adiciono outro initialize no meu método que já estava criado para a listagem de pedidos? Nos dois aproachs tenho problemas:
- no primeiro, vou começar a criar métodos para cada listagenzinha que tenho que fazer (coisa que poderia ser evitada com um lazy loading "de verdade").
- no segundo, para as duas "telas" estarei carregando informações que não são necessárias para aquela tela. Quando todo mundo resolver que um initialize a mais naquele primeiro método resolveria o problema da tela que ele está criando, teremos um cenário parecido com que o Fábio relatou. Um grafo enorme sendo carregado sem necessidade.
saoj wrote:Quanto ao domínio pobre eu concordo. Sö queria ouvir, a título de aprendizado mesmo, argumentos técnicos sobre o porque isso é mais recomendável.
Bom, se estamos construindo estruturas de dados (porque uma classe que só tem atributos, gets e sets, pra mim não difere em nada das estruturas que faziamos em pascal - ok, com a diferença que temos eles encapsulados) acho que não estamos fazendo algo nem perto de OO, certo?
|
Diego Plentz - Twitter
"Provide options, don't make lame excuses." |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2007 04:37:45
|
TheMask
JavaBaby
![[Avatar]](/images/avatar/e6abb6620be44e2035008f84888a43b1.jpg)
Membro desde: 14/04/2006 19:28:16
Mensagens: 79
Offline
|
plentz wrote:Bom, se estamos construindo estruturas de dados (porque uma classe que só tem atributos, gets e sets, pra mim não difere em nada das estruturas que faziamos em pascal - ok, com a diferença que temos eles encapsulados) acho que não estamos fazendo algo nem perto de OO, certo? 
Encapsulados onde, no Pascal, né?
|
**** Demaaaaaaais ****
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2007 12:34:55
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
fabio.patricio wrote: Sera que nos dias de hoje o custo de um proxy é tao alto assim para termos que nos preocupar com isso?
Sinceramente. Acho que nao.
Proxies são caros mas em geral valem seu preço porque sem eles poderia ser mais caro ainda. Já imaginou EJBs sem proxies? E o JBoss com sua arquitetura baseada em MBeans remotos todos com proxies? E os frameworks como Hibernate e Spring?
Mas mesmo assim se alguém tiver a curiosidade, este assunto está no ThServerSide de hoje em http://www.theserverside.com/news/thread.tss?thread_id=45089
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2007 12:38:18
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Luca wrote:Já imaginou EJBs sem proxies?
Ue, era exatamente por causa da ausencia de proxies na implementacao de muitos app servers ha uns bons anos atras que a gente tinha o infame ejbc
Se nao me engano, o JBoss foi o primeiro container a usar dynamic proxies - ainda na epoca em que o Rickard Öberg era um dos desenvolvedores.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2007 12:46:43
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
cv wrote:Ue, era exatamente por causa da ausencia de proxies na implementacao de muitos app servers ha uns bons anos atras que a gente tinha o infame ejbc 
Mas isto não era no tempo em que os EJBs eram todos remotos?
cv wrote:Se nao me engano, o JBoss foi o primeiro container a usar dynamic proxies - ainda na epoca em que o Rickard Öberg era um dos desenvolvedores.
Sim, mas quem criou os XMBeans remotos baseados em proxies foi o professor finlandês Juha Lindfors, ex-lider do JBossMX e que bolou toda a arquitetura baseada em MBeans.
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
|
|