Re: [pgbr-geral] Mapeamento Relacional-Objeto

2007-12-19 Por tôpico Wallace Reis
On Dec 19, 2007 1:07 PM, Alexsander Rosa <[EMAIL PROTECTED]> wrote:
> Disclaimer: Eu sei que muita gente odeia mapeamentos e geradores de código.
> :-)

Eu gosto. Sou desenvolvedor Perl e uso DBIx::Class[1].

> Normalmente se fala em Mapeamento Objeto-Relacional, que a grosso modo
> consiste em pegar um modelo O-O (modelado talvez em UML) e gerar um modelo
> E-R. A modelagem é feita pensando em objetos e quem modela a camada de
> persistência que se vire depois pra encaixar tudo numa DDL.

http://search.cpan.org/perldoc?DBIx::Class::Schema#deploy

> A idéia é fazer o caminho inverso: fazer o modelo de dados PRIMEIRO e depois
> gerar um conjunto de classes. Cada tabela vira uma classe, cada tupla vira
> uma instância, cada coluna vira uma propriedade. O objetivo é facilitar a
> vida do programador para algumas tarefas simples e repetitivas: carregar um
> objeto por sua(s) PK e depois atualizar ou deletar este objeto, por exemplo.
> Os SELECT mais complexos continuam sendo feitos em SQL, as VIEWs continuam
> sendo usadas normalmente. Não seria uma O-O de verdade, mas apenas um
> wrapper para simplificar as tarefas.

Views são tabelas, logo posso tê-las como classes DBIC.

> O grande problema das camadas de persistência é que nunca se sabe a
> qualidade do SQL gerado e é relativamente fácil para o programador usar
> alguma classe de forma a gerar SQL ruim (ou mesmo péssimo).

http://search.cpan.org/perldoc?DBIx::Class::Storage#DBIC_TRACE

[1] http://search.cpan.org/perldoc?DBIx::Class

-- 
wallace reis/wreis
http://wallace.reis.org.br
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Mapeamento Relacional-Objeto

2007-12-19 Por tôpico Leandro DUTRA
2007/12/19, Alexsander Rosa <[EMAIL PROTECTED]>:
> nos próximos meses temos
> uma renovação contratual e vou separar restrição apenas para a aplicação,
> liberando o Framework de persistência.

Ótimo!

-- 
+55 (11) 5685 2219   xmpp:[EMAIL PROTECTED]
+55 (11) 9406 7191  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (11) 3040 7300  ICQ/AIM: aim:GoIM?screenname=61287803
MSN: msnim:[EMAIL PROTECTED]
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Mapeamento Relacional-Objeto

2007-12-19 Por tôpico Alexsander Rosa
O meu caso é o mesmo do Evandro, com algumas diferenças. A empresa de
software é minha, o software pertence à nossa empresa, mas temos um contrato
com o cliente "piloto" que restringe um pouco a liberação do código. Eles
exigiram uma cláusula que nos proíbe de fornecer o software para
concorrentes deles, e isso impede o uso de uma licença open source (pois um
concorrente poderia baixar o código). No entanto nos próximos meses temos
uma renovação contratual e vou separar restrição apenas para a aplicação,
liberando o Framework de persistência.

Em 19/12/07, Leandro DUTRA <[EMAIL PROTECTED]> escreveu:
>
> 2007/12/19, Alexsander Rosa <[EMAIL PROTECTED]>:
> > Escrevi em 2003 uma OPF e um Gerador de Código que faz exatamente isso
> para
> > Delphi e FPC. Até agora, as vantagens têm superado as desvantagens com
> > folga... :-) O programador não perde tempo com os SQL triviais (que
> acabam
> > sendo em grande volume), podendo dedicar mais atenção aos códigos SQL e
> > PL/pgSQL realmente importantes, mais diretamente relacionados com as
> regras
> > do negócio.
>
> Que tal botar no pgFoundry, SourceForge, Savannah ou coisa assim?
>
> --
> +55 (11) 5685 2219   xmpp:[EMAIL PROTECTED]
> +55 (11) 9406 7191  Yahoo!: ymsgr:sendIM?lgcdutra
> +55 (11) 3040 7300  ICQ/AIM: aim:GoIM?screenname=61287803
> MSN: msnim:[EMAIL PROTECTED]
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Mapeamento Relacional-Objeto

2007-12-19 Por tôpico Evandro Ricardo Silvestre




Leandro DUTRA wrote:

  RFC 1855, por favor não envie mensagens HTML, veja como a conversão
para texto fica bagunçada:

2007/12/19, Evandro Ricardo Silvestre <[EMAIL PROTECTED]>:
  
  
 Gente, eu vejo tanta gente falando de código que desenvolveu… que tal
publicar?

 Infelizmente não posso publicar o código. É da empresa.
 Posso escrever algo sobre como foi implementando sem citar a implementação.

  
  
Que pena!  Será que a empresa não é convencível?
  

Eles permitem a divulgação apenas da teoria, mas sem nada especifico na
nossa implementação. Código não é permitido.
INFELIZMENTE! eu não concordo muito com isso, mas...
De qualquer forma, vou conversar com o pessoal aqui.

Evandro




___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Mapeamento Relacional-Objeto

2007-12-19 Por tôpico Leandro Damascena
Leandro DUTRA escreveu:
> RFC 1855, por favor não envie mensagens HTML, veja como a conversão
> para texto fica bagunçada:
>
> 2007/12/19, Evandro Ricardo Silvestre <[EMAIL PROTECTED]>:
>   
>>  Gente, eu vejo tanta gente falando de código que desenvolveu… que tal
>> publicar?
>>
>>  Infelizmente não posso publicar o código. É da empresa.
>>  Posso escrever algo sobre como foi implementando sem citar a implementação.
>> 
>
> Que pena!  Será que a empresa não é convencível?
>
>   
Ou não existem outras ferramentas open-source que façam a mesma coisa ou 
a implementação parecida, para que o pessoal possa ver como é e ter 
idéias para adequar a sua necessidade. Um exemplo disso eu falo com php 
por exemplo que tem o http://propel.phpdb.org/trac/...

Leandro

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Mapeamento Relacional-Objeto

2007-12-19 Por tôpico Leandro DUTRA
RFC 1855, por favor não envie mensagens HTML, veja como a conversão
para texto fica bagunçada:

2007/12/19, Evandro Ricardo Silvestre <[EMAIL PROTECTED]>:
>
>  Gente, eu vejo tanta gente falando de código que desenvolveu… que tal
> publicar?
>
>  Infelizmente não posso publicar o código. É da empresa.
>  Posso escrever algo sobre como foi implementando sem citar a implementação.

Que pena!  Será que a empresa não é convencível?

-- 
+55 (11) 5685 2219   xmpp:[EMAIL PROTECTED]
+55 (11) 9406 7191  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (11) 3040 7300  ICQ/AIM: aim:GoIM?screenname=61287803
MSN: msnim:[EMAIL PROTECTED]
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Mapeamento Relacional-Objeto

2007-12-19 Por tôpico Evandro Ricardo Silvestre




Leandro DUTRA wrote:

  2007/12/19, Evandro Ricardo Silvestre <[EMAIL PROTECTED]>:
  
  
Alexsander Rosa wrote:
Também escrevi algo assim, para Delphi + JBoss. A nossa aplicação não
tem código nenhum SQL. Tudo (quando digo tudo, é tudo mesmo) é gerado
automaticamente.

  
  
Gente, eu vejo tanta gente falando de código que desenvolveu… que tal publicar?
  

Infelizmente não posso publicar o código. É da empresa.
Posso escrever algo sobre como foi implementando sem citar a
implementação.



___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Mapeamento Relacional-Objeto

2007-12-19 Por tôpico Leandro DUTRA
2007/12/19, Evandro Ricardo Silvestre <[EMAIL PROTECTED]>:
> Alexsander Rosa wrote:
> Também escrevi algo assim, para Delphi + JBoss. A nossa aplicação não
> tem código nenhum SQL. Tudo (quando digo tudo, é tudo mesmo) é gerado
> automaticamente.

Gente, eu vejo tanta gente falando de código que desenvolveu… que tal publicar?

-- 
+55 (11) 5685 2219   xmpp:[EMAIL PROTECTED]
+55 (11) 9406 7191  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (11) 3040 7300  ICQ/AIM: aim:GoIM?screenname=61287803
MSN: msnim:[EMAIL PROTECTED]
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Mapeamento Relacional-Objeto

2007-12-19 Por tôpico Evandro Ricardo Silvestre
Alexsander Rosa wrote:
> Disclaimer: Eu sei que muita gente odeia mapeamentos e geradores de 
> código. :-)
>
> Normalmente se fala em Mapeamento Objeto-Relacional, que a grosso modo 
> consiste em pegar um modelo O-O (modelado talvez em UML) e gerar um 
> modelo E-R. A modelagem é feita pensando em objetos e quem modela a 
> camada de persistência que se vire depois pra encaixar tudo numa DDL.
>
> A idéia é fazer o caminho inverso: fazer o modelo de dados PRIMEIRO e 
> depois gerar um conjunto de classes. Cada tabela vira uma classe, cada 
> tupla vira uma instância, cada coluna vira uma propriedade. O objetivo 
> é facilitar a vida do programador para algumas tarefas simples e 
> repetitivas: carregar um objeto por sua(s) PK e depois atualizar ou 
> deletar este objeto, por exemplo. Os SELECT mais complexos continuam 
> sendo feitos em SQL, as VIEWs continuam sendo usadas normalmente. Não 
> seria uma O-O de verdade, mas apenas um wrapper para simplificar as 
> tarefas.
>
> O grande problema das camadas de persistência é que nunca se sabe a 
> qualidade do SQL gerado e é relativamente fácil para o programador 
> usar alguma classe de forma a gerar SQL ruim (ou mesmo péssimo). No 
> entanto, a maioria dos SQL usados pelas telas de cadastro em uma 
> aplicação comercial são simples. Nesses casos, um "SELECT  
> FROM cliente WHERE codigo = 1234" pode ser gerado automaticamente de 
> maneira eficiente. Da mesma forma, um "UPDATE cliente SET nome = 
> 'Zeca' WHERE codigo = 1234" ou um "DELETE FROM cliente WHERE codigo = 
> 1234" podem ser gerados automaticamente sem problemas.
>
> Escrevi em 2003 uma OPF e um Gerador de Código que faz exatamente isso 
> para Delphi e FPC. Até agora, as vantagens têm superado as 
> desvantagens com folga... :-) O programador não perde tempo com os SQL 
> triviais (que acabam sendo em grande volume), podendo dedicar mais 
> atenção aos códigos SQL e PL/pgSQL realmente importantes, mais 
> diretamente relacionados com as regras do negócio.
>
Também escrevi algo assim, para Delphi + JBoss. A nossa aplicação não 
tem código nenhum SQL. Tudo (quando digo tudo, é tudo mesmo) é gerado 
automaticamente.
Para fazer a carga o usuário passa o ClientDataSet destino, tabela, 
campos e condição (entre outros que não vem ao caso)
Para comitar, o usuário passa apenas o ClientDataSet que contém os dados 
e tabela destino. Automaticamente é feito uma varredura no cds, gerado 
um XML que vai para o JBoss, ao chegar, ele trata o XML e monta o IUD.
Funciona muito bem a mais de 4 anos, tivemos alguns problemas com 
lentidão de XML que já foram resolvidos.
Temos total controle sobre o SQL gerado, pois a geração é feito por 
código nosso, não usamos hybernate e derivados. Assim temos garantia de 
um bom SQL. Para facilitar temos um DMD que indica quais são os campos 
chaves, quais são as fks e dessa forma auxilia a criação das rotinas IUD.

Uma das vantagens é ter apenas um tipo de código (pascal) na aplicação 
cliente e a despreocupação com relação a acesso a banco. Hoje, se temos 
que adicionar um campo novo em um cadastro, apenas adicionamos no form e 
mais nada! O resto é tudo automático.

A maior vantagens de todas é o fato do independência do Banco de Dados 
que a aplicação tem. Hoje, todos os nossos clientes utilizam PostgreSQL 
(graças a Deus =D ), mas caso algum venha a utilizar outros bancos, 
temos que mexer apenas na aplicação que está no JBoss, não na aplicação 
cliente, o q facilita muito.

Não sei se fugi do assunto, mas é isso q utilizamos hj.

Att

Evandro
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Mapeamento Relacional-Objeto

2007-12-19 Por tôpico Leandro DUTRA
2007/12/19, Alexsander Rosa <[EMAIL PROTECTED]>:
> Escrevi em 2003 uma OPF e um Gerador de Código que faz exatamente isso para
> Delphi e FPC. Até agora, as vantagens têm superado as desvantagens com
> folga... :-) O programador não perde tempo com os SQL triviais (que acabam
> sendo em grande volume), podendo dedicar mais atenção aos códigos SQL e
> PL/pgSQL realmente importantes, mais diretamente relacionados com as regras
> do negócio.

Que tal botar no pgFoundry, SourceForge, Savannah ou coisa assim?

-- 
+55 (11) 5685 2219   xmpp:[EMAIL PROTECTED]
+55 (11) 9406 7191  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (11) 3040 7300  ICQ/AIM: aim:GoIM?screenname=61287803
MSN: msnim:[EMAIL PROTECTED]
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral