Em 16-09-2013 22:34, Eden Cardim escreveu:

    Concordo com todos os pontos, exceto o 1.4: DBI e DBIx::Class vão
    estar sujeitos ao mesmo problema. Eu não manjo muito de stored
    procedures em outros bancos, mas no Oracle consigo ter controle
    granular de transação, então não vejo este problema que você levanta.


Qual parte de *a depender do caso* não ficou clara? E não, tanto o DBI
quanto o DBIx::Class não excluem a possibilidade de se usar SPs, estou
repetindo isso durante a thread inteira e você insiste em trazer isso de
volta. Não é uma briga DBI vs SPs, a questão é que discutir sobre SPs
com quem ainda está cadastrando usuários é um exercício em futilidade.

Não é Eden. Se eu quiser fazer upsert e que tenha um desempenho maior vou ter que descer até o banco de dados. Dá para fazer conforme você demonstrou, talvez a diferença de velocidade seja desprezível, mas enfim... não é fútil a discussão.

    Que bom que você se deu ao trabalho de ajudar os monges mais novos!
    É muito chato quando você escreve respostas achando que todos devem
    concordar com você sem um racional!


Não compreendo a tua retórica... 2 parágrafos atrás a reclamação era de
pedanteria, agora é transferência de ônus da prova? Quando as pessoas
apelam pra esse tipo de retórica inconsistente, geralmente é uma
tentativa de *vencer* a discussão e não de enriquecê-la.

Eu não preciso vencer a discussão: vou ganhar o que com isso?


    "In God we thrust: all others must bring data".


Pornografia já? Tem menores de idade, e o próprio deus, lendo ;)

Deus não lê e-mails: ele tem um programa do Yahoo! para fazer isto para ele (vide Todo Poderoso). :-)


    Eu não me lembro de ter dito para arrancar o DBIx::Class inteiro...
    onde foi que eu escrevi isto mesmo?


http://mail.pm.org/pipermail/saopaulo-pm/2013/020344.html
Pra ser mais exato: "Se você quiser ser realmente eficiente com o banco,
acho que vai ter que abandonar o DBIx::Class"

Para este caso de upsert Eden! Só para este caso!
Use o contexto... não estou escrevendo uma especificação.

Mas memcached foi espeficamente a solução que você recomendou... Agora
que você mudou o discurso pra cache genérico, eu concordo contigo,
genericamente.

Fato. Mas como você apontou, não precisa ser o Memcached. Pode ser qualquer coisa, de IPC a modperl para criar cache.

O verbete sobre Exception Handling no wikipedia é uma boa introdução,
mas existem pré-requisitos de conhecimento que não cabem nessa thread,
por isso vai ficar como exercício ao leitor.

Você já fez o suficiente dando uma referência.
Lembre-se, tem crianças lendo, então não parta da premissa de pré-requisitos. ;-)

Mas é verdade que é uma
questão particular minha não gostar de excessões, não por "ranço" (seja
lá o que isso signifique nesse contexto)

"Nojinho" do Java e similares... aquelas linguagens de programação corporativas, morte ao Bill Gates e todo aquele blablabla...

mas porque na minha visão elas
são um convite pra violação do princípio de menor conhecimento (também
conhecido como Law of demeter) e toda a super-engenharia que acompanha e
foi demonstrada nessa thread.

Isso é assunto para outra thread. Mas até tomar água em excesso faz mal.

    1 - É difícil ter desempenho superior sem sacrificar alguma coisa,
    como abstração ao banco de dados. Geralmente uma solução híbrida
    funciona melhor do que tentar procurar pela bala da prata.

Geralmente "solução híbrida" é expressão sinônima de "super-engenharia".

Na teoria parece bonito, mas vou te dar o lado prático da moeda.

Em mainframe, os programas são em sua maioria em Cobol. Diferentemente de plataforma baixa, programas lentos custam mais dinheiro porque os fabricantes cobram, periodicamente, o valor de ciclos de processadores utilizados.

Então se o programa em Cobol, depois de otimizado, ainda é considerando lento, os programadores descem para o C.

Se com C a coisa ainda não ficou do jeito que queriam, vão mesmo para o Assembly.

Você chamaria isso de super-engenharia?

Para outro exemplo de "super-engenharia", vide Java Magazine 25, ano III, "Persistência Turbinada" que mostra que você pode abandonar o ORM de sua preferência e ir para o JDBC se o desempenho com o primeiro não estiver satisfatório.


Ah, mas que mal humor... Se você aparecer no próximo ES te pago uma
cerveja de qualidade pra ver se melhora. ;)


Vê como eu não preciso "vencer" a discussão para ganhar alguma coisa? ;-)

[]'s
Alceu

=begin disclaimer
  Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
SaoPaulo-pm mailing list: [email protected]
L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
=end disclaimer

Responder a