Je vois souvent des projets (dans des projets Java et des équipes utilisant Eclipse) qui préfixent des paramètres de fonction avec p
.
Par exemple
public void filter (Result pResult) ...
Personnellement, je ne vois aucun avantage à cela, mais j'aimerais savoir quel est le raisonnement. La meilleure explication que j'ai entendu à ce jour est qu'il s'agit de distinguer le nom de champs nommés identiques. J'ai des problèmes avec cette explication mais je peux comprendre le point.
la source
struct
/union
avec un élément.Comme vous le soupçonnez, c'est pour éviter les collisions de noms entre le nom du paramètre et les noms de membre ou de variable locale. Les variables membres reçoivent parfois un préfixe pour la même raison (par exemple,
m_result
). Personnellement, je préfère simplement utiliser lethis
préfixe pour les variables membres en cas de collision de noms. Il est intégré à la langue et tout le monde sait déjà ce que cela signifie.la source
J'utilise uniquement un préfixe de paramètre lorsque le paramètre est destiné à être affecté à une variable membre, comme un constructeur ou un setter.
Pour moi, je trouve que l'utilisation d'un nom de variable différent est plus évidente que d'utiliser le préfixe "this".
Pour les autres situations, j'évite d'utiliser un paramètre qui pourrait être facilement confondu avec une variable membre.
Si une méthode ou une classe est si grande qu'il est difficile de dire ce que signifient les variables, la vraie solution est de la diviser en méthodes / classes plus petites. L'utilisation de préfixes est une solution de pansement qui résout le problème sous-jacent.
la source
Paint (clr) { color = clr; }
). ... Il n'y a généralement pas beaucoup d'ambiguïté, même sicolor -> clr
en particulier peut être une exception.Si vous créez une norme pour utiliser «p» comme préfixe avec chaque nom de paramètre de méthode, vous pouvez facilement reconnaître les paramètres de méthode dans le reste du corps de la méthode.
Cela vous fait gagner du temps pour trouver les paramètres de la méthode. Vous pouvez déboguer votre code facilement.
la source
Court - Cette pratique rend le code plus difficile à lire.
Long - Je dirai que c'est une mauvaise pratique uniquement utilisée pour soutenir d'autres mauvaises pratiques. Examinons quelques raisons pour lesquelles l'utilisation de tels préfixes pourrait être considérée comme utile:
Éviter les collisions dans les noms de variables
public void setHeight(int newHeight) { this.height = newHeight; }
Les méthodes prennent beaucoup de paramètres, déclarent beaucoup de variables et nous pourrions facilement oublier lequel est un paramètre.
Sauf dans certains cas spécifiques, l'ajout de préfixes de paramètres n'aide que les symptômes et ne résout pas les problèmes réels.
la source
Je suis un fan d'iParam pour les paramètres d'entrée et d'oParam pour les paramètres de sortie. Je dirais cParam pour le changement, mais ce n'est pas acceptable
la source