Pergunta

No meu projeto eu estou actualmente a preparar um movimento passo-a-passo a partir do código legado para os módulos novos, devidamente projetados e testados. Uma vez que nem todos os programadores companheiro segue de perto o que eu faço, eu gostaria de emitir avisos quando código antigo é usado. Eu também prefiro fortemente ser capaz de recomendações de saída sobre a forma de código antigo porto.

Eu encontrei duas maneiras de fazer isso:

  1. Atributo :: Deprecated , o que é bom para as funções, mas sim complicado se um módulo completo está obsoleta. Além disso, nenhuma informação adicional além de avisos.

  2. Perl::Critic::Policy::Modules::ProhibitEvilModules para os módulos ou talvez uma regra Perl::Critic personalizado para depreciação mais fina na função ou nível de método. Este método é bom, mas não é imediatamente óbvio do próprio código que é obsoleto.

Qualquer outra sugestão ou truques como fazer isso corretamente e fácil?

Foi útil?

Solução

Para os métodos e funções, você pode simplesmente substituir o corpo da função com uma advertência e uma chamada para a função preferida.

perl perllexwarn dá o seguinte exemplo:

 package MyMod::Abc;

 sub open {
     warnings::warnif("deprecated",
     "open is deprecated, use new instead");
     new(@_);
 }

 sub new {
     # ...
 }
 1;

Se você está depreciativo um módulo inteiro, coloque o aviso em um bloco BEGIN no módulo.

Você também pode colocar os avisos no método import (por exemplo Win32 :: GUI :: import ):. tudo depende exatamente o que você quer fazer

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top