[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