[SP-pm] Try::Tiny : uma opção de exception, mas nem tanto !!!

Tiago Peczenyj tiago.peczenyj at gmail.com
Thu Jun 21 13:39:09 PDT 2012


Na oscon 2011 teve uma palestra do Piers Cawley sobre dynamic dispatch que
nada mais era do que uma forma de vc evitar eval /try-catch pois eles são
bem custosos em Perl. Basicamente vc fazia um chain desse tipo

try {
 objeto->metodoA->metodoB->metodoC();
} catch {
  objeto->metodoD
}

Isto poderia ser algo assim

objeto->metodoA->metodoB->metodoZ();

e o metodo B sabendo que ocorreu um erro ao inves de fazer um die/throw/etc
simplesmente retornava um objeto cujo metodoZ é o "tratamento" do mesmo.
Algo como

 $controller->init()->process()->show()->clean();

o show normalmente vai mostrar o resultado de process. Mas pode ser que o
resultado "anormal" tambem possa ser mostrado (como em uma pagina de erro).
E eu posso querer limpar algo em caso de falha -- assim o show poderia
retornar um objeto falso cujo clean não faz nada em caso de sucesso.

Enfim, cada abordagem tem vantagens e desvantagens.

2012/6/21 Solli Honorio <shonorio at gmail.com>

> <ironic_mode>
>
> Caramba Marcio,
>
> Sério mesmo que um dos motivos pelo qual um CIO escolhe Java ou .Net é pq
> tem um sistema de Exception que possui try{...}catch{...} ? O fato de ter
> uma empresa mainstream na parada não é importante ? Se for assim, como foi
> que o VB, o Clipper, o Fortran foi (e ainda é) escolhido pelas empresas ?
>
> Abraços,
>
> Solli Honorio
>
> </ironic_mode>
>
> Em 21 de junho de 2012 16:55, Marcio Ferreira <
> marciodesouzaferreira at gmail.com> escreveu:
>
> Esse é um dos motivos de Java, .Net dominar tanto mercado
>>
>> []s,
>>
>> Marcio Ferreira
>> @_marcioferreira
>> (11) 8567-1482   skype: marcio.ferreir4
>> marciodesouzaferreira.blogspot.com
>>
>>
>>
>> 2012/6/21 Daniel Mantovani <daniel.oliveira.mantovani at gmail.com>
>>
>>> Para tudo, se você deseja verificar os argumentos que seus métodos vão
>>> receber e também com performance não use uma linguagem dinâmica.
>>>
>>> "Programs written in dynamically typed languages require large suites of
>>> tests to give some assurance that simple type errors cannot occur. Test
>>> suites cannot offer complete coverage: some common tasks, such as
>>> refactoring a program to make it more modular, can introduce new type
>>> errors that a test suite may not expose."
>>>
>>> Eu usaria Haskell, por nativo proporciona que todas funções sejam
>>> avaliadas em compile time, eu odeio escrever testes. Por exemplo, toda
>>> expressão em Haskell tem um tipo declarado.
>>>
>>> Prelude> :type odd
>>> odd :: Integral a => a -> Bool
>>>
>>> A função "odd" recebe um único valor inteiro e retorna um valor booleano.
>>>
>>>
>>> --
>>> Software Engineer
>>> Just Another Perl Hacker
>>> Daniel Mantovani +5511 8538-9897
>>> XOXO
>>>
>>> On Jun 21, 2012, at 3:40 PM, Thiago Yukio Kikuchi Oliveira wrote:
>>>
>>> > 2012/6/21 Solli Honorio <shonorio at gmail.com>:
>>> >> Ok, mas aparentemente a penalidade de desempenho não vale a pena
>>> ainda...
>>> >>
>>> >> Solli Honorio
>>> >
>>> > Não utilize do MooseX::Method::Signature, ele é muito lento.
>>> > Utilize o Method::Signatures pois é muito mais rápido.
>>> > Olhe a comparação dos dois:
>>> >
>>> http://www.dancygier.com/wordpress/2011/03/06/methodsignatures-blazing-fast-and-makes-me-sane/
>>> >
>>> > Existe o módulo Method::Signatures::Modifiers que permite  utilizar o
>>> > MooseX::Declare com o  Method::Signatures
>>> > ao invés do MooseX::Method::Signature.
>>> >
>>> >
>>> > Thiago
>>> > =begin disclaimer
>>> >   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>> > SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>> > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>> > =end disclaimer
>>>
>>> =begin disclaimer
>>>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>> =end disclaimer
>>>
>>
>>
>> =begin disclaimer
>>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> =end disclaimer
>>
>>
>
>
> --
> "o animal satisfeito dorme". - Guimarães Rosa
>
> =begin disclaimer
>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>


-- 
Tiago B. Peczenyj
Linux User #405772

http://pacman.blog.br
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20120621/d64fd38f/attachment.html>


More information about the SaoPaulo-pm mailing list