[SP-pm] DBIx::Class

Eden Cardim eden at insoli.de
Sun Sep 15 06:27:37 PDT 2013


>>>>> "Solli" == Solli Honorio <shonorio em gmail.com> writes:

    Solli> Bom, descobri um motivo para não utilizar a abordagem que
    Solli> eu estava imaginando.

    Solli> O perl não possui um sistema de Exception decente, e o
    Solli> DBIx::Class também não faz nada muito avançado neste
    Solli> sentido. Atualmente o DBIx::Class gera um exception
    Solli> simplório através do DBIx::Class::Exception, que não tem
    Solli> nenhuma maneira simples de identificar o motivo do erro.

Eu não tentaria tratar uma restrição de modelagem como excessão, por
um motivo bem simples: constraints de modelagem de dados não são
excessões. Constraints existem como garantia para previnir acidentes.
Não é porque seu carro tem airbag e seguro que você vai
necessariamente sair batendo em todos os postes que estão na rota pro
trabalho.

    Solli> Na solução atual eu preciso parsear o mensagem de string,
    Solli> mas isto tem um problema. Cada banco de dados pode gerar
    Solli> uma mensagem diferente para o mesmo problema (neste caso
    Solli> colisão de índice único) e aí eu preciso criar uma enorme
    Solli> estrutura de parser para atender todos os bancos, ou pelo
    Solli> menos a maioria (ah, que inveja do Java !!!).

Nenhuma linguagem resolve isso. Não apenas as mensagens de erro não
são as mesmas entre bancos diferentes como podem mudar num mesmo banco
a depender do locale. É simplesmente uma péssima idéia planificar
esses tipos de erros.

    Solli> Ou seja, é melhor ser educado e fazer as perguntas corretas
    Solli> ao banco : D !!

Sim, a forma padrão de fazer esse tipo de coisa é ter conhecimento de
domínio na lógica do software que tente ao máximo enviar dados
íntegros pro banco.

Via de regra, é boa prática não confiar implicitamente em outra camada
para fazer qualquer coisa por você.

-- 
Eden Cardim -- Insolide Soluções de TI Ltda.
+55 11 9644 8225
http://insoli.de


More information about the SaoPaulo-pm mailing list