[SP-pm] Acho que fui enganado!

Thiago Rondon thiago at aware.com.br
Sun Dec 5 13:36:08 PST 2010


Em 05-12-2010 12:57, Adriano Ferreira escreveu:
>
>
> 2010/12/5 Alexei Znamensky <russoz em gmail.com <mailto:russoz em gmail.com>>
>
>
>     Eu procurei por Business::BR::Ids (que é módulo, mas que também é
>     o nome =~ s/-/::/g do tar ball. Na hora, presumi que funcionaria isso.
>
>
> O negócio é que as distribuições (ou tarballs) como coleções de 
> packages podem mudar à vontade do desenvolvedor (embora isto não 
> aconteça muito na prática, mas que acontece, acontece). Mas só esta 
> possibilidade cria um problema muito grande para mapear dependências 
> de módulos (ou packages) para distribuições.
>
> Pensando um pouco, o negócio é que as dependências dos packages em uma 
> distribuição deviam incluir os packages da própria distribuição, algo 
> assim:
>
>      Business::BR::CPF   depende de Business::BR::Id (esteja ou não no 
> mesmo pacote)
>
> mas isto é um "can of worms" devido à dificuldade de descobir 
> dependências olhando em código fonte Perl – é fácil encontrar "require 
> M" e "use M", mas que tal
>
>         $M->require     (com UNIVERSAL::require)
>         load($M)          (com Module::load)
>         eval STRING
>
> e muitas outras formas de fazer o "link" dinâmico entre módulos. E tem 
> mais, alguns destes "statements" serão dependências reais e outros 
> módulos que colaboram. Neste último caso, só análise semântica feita 
> por um humano seria capaz em alguns casos de fazer uma decisão 
> acertada a respeito.
>
Outro fator, é a inclusão de módulos novos em distribuições novas do 
Perl, ou seja um módulo pode ser dependente na versão 5.8 e na versão 
5.10 não... e dependendo do teu cenário você pode "se esquecer" de 
adicionar esta dependência.

Russo,

Talvez você espera-se algo como o Test::UseAllModules ou Test::Compile, 
porem mesmo assim você terá problemas dependendo do teu cenário.

Por isto o CPAN::Testers é sensacional. :-) Acredito que a função das 
dependências é estritamente para oferecer o pacote no maior número de 
cenários possiveis, seja plataforma, distribuições, versões e etc.. E 
não uma inteligencia para saber se alguém escreveu determinado módulo, 
acredito que isto com informações (nome, documentação) para ser 
encontrados basta, afinal é por isto que falamos e falam tanto do CPAN.

Por exemplo, o módulo que você criticou pela dependência "errada", 
segundo o CPAN::Testers resolve bem o problema na questão de funcionalidade:

http://www.cpantesters.org/distro/M/MooseX-Types-CPF.html#MooseX-Types-CPF-0.02

Graças ao trabalho do Adriano no Bussiness::BR que já é um módulo de 
qualidade para a tarefa e ao Moose::Types, a minha tarefa foi apenas 
apontar para eles. ;-)

Abs!
-Thiago Rondon

-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20101205/841036a5/attachment.html>


More information about the SaoPaulo-pm mailing list