Question

Dans mon projet, je prépare actuellement un mouvement étape par étape à partir du code existant à de nouveaux modules correctement conçus et testés. Étant donné que tous collègues programmeur suit de près ce que je fais, je voudrais émettre des avertissements lorsque l'ancien code est utilisé. Je voudrais aussi fortement préfèrent être en mesure de recommandations de sortie sur la façon de l'ancien code de port.

Je l'ai trouvé deux façons de le faire:

  1. attribute :: Obsolète, ce qui est bien pour les fonctions, mais plutôt encombrant si un module complet est dépréciée. En outre, aucune information supplémentaire à part les avertissements.

  2. Perl::Critic::Policy::Modules::ProhibitEvilModules pour les modules ou peut-être une règle de Perl::Critic personnalisée pour deprecation plus fine sur la fonction ou au niveau de la méthode. Cette méthode est très bien, mais il est pas évident de code lui-même qu'il est dépréciée.

D'autres suggestions ou astuces comment faire correctement et facile?

Était-ce utile?

La solution

Pour les méthodes et fonctions, vous pouvez simplement remplacer le corps de la fonction avec un avertissement et un appel à la fonction préférée.

perl perllexwarn donne l'exemple suivant:

 package MyMod::Abc;

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

 sub new {
     # ...
 }
 1;

Si vous désapprouver un module entier, mis l'avertissement dans un bloc de BEGIN dans le module.

Vous pouvez aussi mettre les mises en garde dans la méthode import (par exemple Win32 :: GUI :: import ). tout dépend exactement ce que vous voulez faire

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top