[Cascavel-pm] Refactoring Perl 1 - Extract Method

Lorn lorn.br em gmail.com
Segunda Junho 25 06:03:46 PDT 2007


Interessante, infelizmente onde eu trabalho não há essa cultura de
"refactoring", as coisas SEMPRE são pra ontem, fez, funcionou, produção ...
:/ Alguem tem esse problema aqui? ou coisa parecida? ou boas desculpas para
fazer refactoring ? :)

On 6/25/07, Nelson Ferraz <nferraz em gmail.com> wrote:
>
> Exemplo de refactoring em Perl:
>
>         sub print_owing{
>             my $self = shift;
>             my $e = $self->{_orders}->elements();
>             my $outstanding = 0.0;
>
>             # print banner
>             print "**************************\n";
>             print "***** Customer Owes ******\n";
>             print "**************************\n";
>
>             # calculate outstanding
>             while ( $e->has_more_elements() ){
>                 my $each = $e->next_element();
>                 $outstanding += $each->get_amount();
>             }
>
>             # print details
>             print 'name: ', $self->{_name}, "\n";
>             print "amount: $outstanding\n";
>         }
>
> Se transforma em:
>
>         sub print_owing{
>             my $self = shift;
>
>             $self->print_banner();
>             my $outstanding = $self->get_outstanding();
>             $self->print_details( $outstanding );
>         }
>
>         sub print_banner{
>             my $self = shift;
>
>             # print banner
>             print "**************************\n";
>             print "***** Customer Owes ******\n";
>             print "**************************\n";
>         }
>
>         sub print_details{
>             my $self = shift;
>             my $outstanding = shift;
>
>             print 'name: ', $self->{_name}, "\n";
>             print "amount: $outstanding\n";
>         }
>
>         sub get_outstanding{
>             my $self = shift;
>
>             my $e = $self->{_orders}->elements();
>             my $result = 0.0;
>
>             # calculate outstanding
>             while ( $e->has_more_elements() ){
>                 my $each = $e->next_element();
>                 $result += $each->get_amount();
>             }
>             return $result;
>         }
>
>
> Este é o "extract method".
>
>         http://www.perlmonks.org/?node_id=622705
>
> []s
>
> Nelson
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>



-- 
Lindolfo "Lorn" Rodrigues
- www.slackwarezine.com.br
- http://lornlab.org
- http://sao-paulo.pm.org
use Catalyst;
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070625/fbe8fa4c/attachment-0001.html 


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