Em 13 de outubro de 2011 13:57, Guimarães Faria Corcete DUTRA, Leandro
<l...@dutras.org> escreveu:
> 2011/10/13 Shander Lyrio <shan...@nucleo45.com.br>:
>>
>>        ORM não resolve todos os males do mundo, ele resolve a grande maioria
>> deles, mas não todos. Para mim, insert, update e delete é 99% por conta
>> do ORM porque é quase sempre a mesma coisa.
>
> Non sequitur.  De qualquer maneira, ORM cria mais problemas que
> resolve.  O problema é menos grave com ORMs relativamente bons como o
> SQL Alchemy, e mais com nojentos como o Hibernate, mas sempre existe.
>

Na minha opinião um ORM só é útil em telas de cadastro extensas, onde
fica mais fácil preencher as propriedades de um objeto e depois
simplesmente executar um Save() e deixar o OPF se virar pra ver se vai
usar INSERT ou UPDATE, ou ainda quais propriedades vai precisar
alterar e quais pode omitir, etc. OK, o OPF provavelmente vai dar um
"SELECT * FROM tabela WHERE chave = x" e pegar a tupla inteira, mas
numa tela de cadastro isto é razoável -- se a chave não for
obrigatoriamente um ID serial artificial, evidentemente. Ainda acho
mais fácil fazer um "cadastro de cliente" desta maneira do que montar
um SQL dinamicamente, por exemplo.

No entanto é preciso ter cuidado e usar o OPF apenas nas telas de
cadastro. Não dá pra usar o OPF numa tela que mostra uma LISTA de
objetos buscados com "SELECT *", isto gera um tráfego imenso e
desnecessário. Nestes casos sempre é melhor usar uma VIEW que retorna
apenas o que vai aparecer na tela -- aliás esta é uma regra aqui na
Rednaxel: somente popule listas com views e somente coloque nas views
dados que efetivamente aparecem na tela.

De resto, damos preferência para stored procedures que fazem coisas
como "emite_nota", "baixa_estoque", etc. Com isso as regras de negócio
ficam no BD e podem ser acessadas por aplicações standalone, console,
web, mobile, etc de forma transparente.

-- 
Atenciosamente,
Alexsander da Rosa
http://rednaxel.com
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a