[Rio-pm] Fwd: [SP-pm] Compilação

Marco A P D'Andrade mdacwb em gmail.com
Domingo Novembro 18 20:20:14 PST 2007


Humm... eu já usei com o módulo DBIx::SearchBuilder, e achei fantástico...
porém...

O Damian Conway declara no Perl Best Practicals, na página 393, sobre
Autoloading " Don´t use AUTOLOAD()" ...


Eu confesso que isso me frustou, mas ele apresenta bons motivos...

"AUTOLOAD() doesn´t promote efficency, conciseness, robustness, or
maintainability, ..."


Para quem já me viu com este livro em mãos...
 ... "Sim, agora eu li (parte)!" ;)

Eu tinha que me reposicionar justamente sobre manutenibilidade, pois estava
fazendo parte de um projeto que deveria se acoplar a algo maior, e em um
prazo muito curto de tempo (para o contratante).


Sds,
Marco Antonio



Em 19/11/07, eden <edencardim em gmail.com> escreveu:
>
> On Nov 19, 2007 12:05 AM, Marco A P D'Andrade <mdacwb em gmail.com> wrote:
> > Só pra não ficar de fora ...
> >
> > Me corrijam se eu estiver errado, mas a diferenca entre use e require é
> o
> > fato da primeira forçar a verificação no tempo de compilação, ou ...
> carga
> > do script.
> >
> > Se preparar um sistema realmente grande, vc deverá tomar varios cuidados
> > para não acabar com alto desastroso em mãos, dentre eles, um
> fracionamento
> > coerente de módulos e forma de chamada.
> >
> > Se vc tiver um sistema extenso, e utilizar a chamada padrão, com use,
> todo o
> > codigo será validado. Claro... vc provavelmente nem vai perceber, pois
> > digamos que um sistema muito extenso vai ter o que, 50 ou 100 mil linhas
> ?
> > Mas se for um projeto web, ao entrar em produção, com carga elevada,
> isso
> > pesa.
> >
> > Mas... em web para um projeto grande, não será utilizado CGI, será
> mod_perl,
> > ou fastcgi.
> >
> > Bem...  voltando ao ponto use vs require.
> >
> > O use equivale a "BEGIN { require modulo; import modulo }", e não pode
> ser
> > utilizado de forma condicional:
> >
> > #x
> > if ( $modo == 1 ) {
> >    use Modulo1;
> >  } else {
> >    use ModuloX;
> > }
> >
> > Enquanto que o require permite esta opção.
> >
> > #x
> >  if ( $modo == 1 ) {
> >     require Modulo1;
> >   } else {
> >     require ModuloX;
> >  }
> >
> > # Modulo1.pm
> > package Modulo1;
> > print "Begin Modulo1\n";
> > 1;
> >
> >  # ModuloX.pm
> >  package Modulo1;
> >  print "Begin ModuloX\n";
> > X;
> >
> >
> > Crie os arquivos e faça o teste ;)
> >
> > http://perldoc.perl.org/functions/require.html
> >  http://perldoc.perl.org/functions/use.html
> >
> > PS: Conhecimento estraído de leitura de discussões na Cascavel-PM. Como
> > diria meu chefe... soluções em busca de problemas ;)
>
> E só pra não ficar de fora também... ;) Você sempre pode usar coisas
> como AutoLoader:
> http://search.cpan.org/~smueller/AutoLoader-5.63/lib/AutoLoader.pm
>
> Disclaimer: nunca usei esse treco em produção, experimente por sua
> conta e risco ;)
>
> --
> edenc.vox.com
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/rio-pm/attachments/20071119/890720b6/attachment.html 


Mais detalhes sobre a lista de discussão Rio-pm