[SP-pm] Sugestão para melhorar código

Nelson Ferraz nferraz at gmail.com
Wed Sep 29 15:33:19 PDT 2010


2010/9/29 "Flávio R. Lopes" <flavio.lopes em links.inf.br>:
> Olá pessoal.
>
> Fiz um programa que gera um backup dos diretórios informados pelo usuário e
> ainda criptografa o arquivo gerado.
> Gostaria que se possível vocês dessem uma olhada no código e me dessem
> sugestões para enxugar mais ou mesmo otimizá-lo.
> Quando digo "enxugar" e "otimizar" gostaria de sugestões, pois na verdade
> vocês poderiam escrever de outra forma que eu não tenha enxergado, para que
> eu possa ver outras formas de se escrever.
>
> Aqui segue ele: http://gist.github.com/603556
>
> Acho que a maior parte das funcionalidades para qual escrevi ele estariam
> prontas. O que ainda farei é dar a opção (STDIN) para que o usuário possa
> informar a senha, diretórios de origem, diretório de destino, nome do backup
> e tipo de compressão sem ter que ficar editando o código.

Flavio,

Parabéns pelo código, parece muito bom.

Algumas recomendações:

1) Escreva a interface do seu código em ingles. "directory" ao invés
de "diretorio", "target" ao invés de "destino".

2) Use o Getopt::Long para ler as opções de linha de comando. Alguma
coisa como (obs: não testei o código a seguir):

use Getopt::Long;

my %options;

my $result = GetOptions(
    \%options,
    'directory|dir|d=s',
    'target|t=s',
    'prefix|p=s',
);

A partir daí você deve checar e usar as variáveis $opt{directory},
$opt{target} e $opt{prefix}. Adicione mais opções de linha de comando
se necessário.

3) Escreva a documentação do seu código em formato POD, após o __END__:

__END__

=head1 NAME

    backup.pl - brief description of your script

=head1 SYNOPSIS

    backup.pl [options]

    Where options are:

        --directory
        --target
        --prefix

=head1 DESCRIPTION

A more complete description of your module. (Purpose, etc)

=head1 AUTHOR

    Flávio R. Lopes <flavio.lopes em links.inf.br>


More information about the SaoPaulo-pm mailing list