[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