Existe persistência transparente?  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
renatosilva
GUJ Master

Membro desde: 16/12/2004 17:09:19
Mensagens: 1787
Offline

Acho interessante deixar para o usuário final escolher quando salvar... Tipo um cadastro de "Clichente", com nome, endereço etc etc. Ao alterar um atributo, eu altero na classe de negóço, mas não mando salvar... só o botão "salva" vai persistir entende? Ou seja, criar os métodos de persistência e estender esse aspecto à interface com o usuário final. O que acha shoes? Muito idiota?
pcalcado
Moderador
[Avatar]

Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline

Muito legal quando voce tem um usuario manipulando objetos numa metafora tipo um editor de textos, mas nao eh sempre o caso

Na maioria das vezes voce vai rpecisar que aquele estado esteja imediatamente disponivel e isso geralmente vai implicar num

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
[Email] [WWW] [Yahoo!] [MSN]
louds
Moderador
[Avatar]

Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline

Maurício Linhares wrote:

Então vejamos, um objeto vai ficar elegível pro GC quando não houverem mais referências a ele dentro da aplicação nas threads correntes. Mas pra que alguém aponte pra ele, eu tenho que fazer uma atribuição ou chamar um método em algum lugar, pra colocar uma referência dele em um objeto que não esteja "elegível" GC.

Se chamar um método ou atribuir o objeto a algum lugar é "transparente", então usar DAOs, repositórios, AR e essas coisas é transparente?


Eu falei que alguns bancos de dados usam GC, eu não falei em aplicações e threads. UM objeto em um OODBS fica elegivel de ser coletavel quando não for mais possivel encontrar ele a partir do root set. A mecânica é a mesma que com objetos em memoria no Java, mas falando de objetos em disco. Vale lembrar que isso não funciona muito bem nos OODBS que usam class-extents como root-set.

Isso no código se traduz no seguinte: al final da transação calcula-se quais objetos são transitivamente persistences e salva-se os que ainda não estão duraveis. É o mesmo esquema que o save-by-reachability que o Hibernate suporta.

OODBMS com GC são legais por alguns motivos, primeiro que acaba com o inferno de cascade-deletes e data-cleasing. Mas não muito legal para os paranóios em jamais perder qualquer tipo de informação.

http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda
[ICQ]
pcalcado
Moderador
[Avatar]

Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline

louds wrote:
OODBMS com GC são legais por alguns motivos, primeiro que acaba com o inferno de cascade-deletes e data-cleasing. Mas não muito legal para os paranóios em jamais perder qualquer tipo de informação.


Uhm...




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
[Email] [WWW] [Yahoo!] [MSN]
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline

louds wrote: Eu falei que alguns bancos de dados usam GC, eu não falei em aplicações e threads. UM objeto em um OODBS fica elegivel de ser coletavel quando não for mais possivel encontrar ele a partir do root set. A mecânica é a mesma que com objetos em memoria no Java, mas falando de objetos em disco. Vale lembrar que isso não funciona muito bem nos OODBS que usam class-extents como root-set.


Não entendi, o banco OO implementa um GC? Ele controla as coisas a partir de um "root-set" (Prevayler???) e deleta um objeto por ele não fazer mais parte do grafo?

Eu já tive a minha experiência ruim com um OODBMS (Db4o) e realmente não acho que eles sejam a saída enquanto não houver um clone da SQL decente pra eles.

Sobre o estado Phillip, o Hibernate meio que controla isso, quando você "troca" as propriedades de um objeto "persistente" (que ainda está dentro de uma session) e faz um select, o Hibernate primeiro atualiza a tabela depois faz o select.

This message was edited 1 time. Last update was at 07/07/2005 23:04:40


Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr

Screencast de Introdução a linguagem Objective-C
[WWW]
Sergio Lopes
Moderador
[Avatar]

Membro desde: 17/11/2003 00:22:10
Mensagens: 1368
Localização: São Paulo - SP
Offline

alguem aqui lembrou de smalltalk? com aqueles "mundos"?
o squeak faz isso...

as coisas estao la no mundo e pronto.

[mas smalltalk (e squeak em particular) eh uma merda! a ideia de OO eh legal, a sintaxe eh linda etc mas nao eh nada produtivo]

Sérgio Lopes - twitter: @sergio_caelum - blog pessoal: sergiolopes.org
Curso Java | Apostilas Java | Arquitetura Java | Curso Rails
renatosilva
GUJ Master

Membro desde: 16/12/2004 17:09:19
Mensagens: 1787
Offline

pcalcado wrote:...


Pelo menos passar a batata quente pro usuário quando possível
louds
Moderador
[Avatar]

Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline

Mauricio, um OODBMS possui um root-set, os objetos que são globalmente acessiveis, os pontos de entrada no teu grafo. Alguns permitem que você defina quais objetos pertencem ao root-set e outros simplesmente de dão acesso acesso aos class-extents do grafo (o extent de uma classe é o conjunto de todas as suas instancias).

Esqueça do Prevayler, aqui é uma piada de mal gosto.

http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda
[ICQ]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team