Quelles sont les conventions préférées pour nommer les attributs, les méthodes et les classes dans différentes langues ?

StackOverflow https://stackoverflow.com/questions/49382

  •  09-06-2019
  •  | 
  •  

Question

Les conventions de dénomination sont-elles similaires dans les différentes langues ?Si non, quelles sont les différences ?

Était-ce utile?

La solution

Comme d'autres l'ont dit, les choses varient beaucoup, mais voici un aperçu des conventions de dénomination les plus couramment utilisées dans différentes langues :

lowercase, lowercase_with_underscores:

Couramment utilisé pour les variables locales et les noms de fonctions (syntaxe C typique).

UPPERCASE, UPPERCASE_WITH_UNDERSCORES:

Couramment utilisé pour les constantes et les variables qui ne changent jamais.Certains langages (plus anciens) comme BASIC ont également une convention pour utiliser toutes les majuscules pour tous les noms de variables.

CamelCase, javaCamelCase:

Généralement utilisé pour les noms de fonctions et les noms de variables.Certains l'utilisent uniquement pour les fonctions et le combinent avec des minuscules ou des lowercase_with_underscores pour les variables.Lorsque javaCamelCase est utilisé, il est généralement utilisé à la fois pour les fonctions et les variables.

Cette syntaxe est également assez courante pour les API externes, puisque c'est ainsi que procèdent les API Win32 et Java.(Même si une bibliothèque utilise une convention différente en interne, elle exporte généralement avec la syntaxe (java)CamelCase pour les noms de fonctions.)

prefix_CamelCase, prefix_lowercase, prefix_lowercase_with_underscores:

Couramment utilisé dans les langages qui ne prennent pas en charge les espaces de noms (c.-à-d.C).Le préfixe désignera généralement la bibliothèque ou le module auquel appartient la fonction ou la variable.Généralement réservé aux variables globales et aux fonctions globales.Le préfixe peut également être en MAJUSCULES.Certaines conventions utilisent un préfixe minuscule pour les fonctions et variables internes et un préfixe MAJUSCULE pour celles exportées.

Il existe bien sûr de nombreuses autres façons de nommer les choses, mais la plupart des conventions sont basées sur l'une de celles mentionnées ci-dessus ou sur une variété de celles-ci.

D'AILLEURS:J'ai volontairement oublié de mentionner la notation hongroise.

Autres conseils

Chaque langue a un style spécifique.Au moins un.Chaque projet adopte un style spécifique.Au moins, ils devraient le faire.Cela peut parfois être un style différent du style canonique utilisé par votre langage - probablement basé sur les préférences des responsables des développeurs.

Quel style utiliser ?

Si votre langage est livré avec une bonne bibliothèque standard, essayez d'adopter les conventions de cette bibliothèque.

Si votre langage possède un livre canonique (le langage de programmation C, The Camel Book, Programming Ruby, etc.), utilisez-le.

Parfois, les concepteurs de langage (C#, Java viennent à l’esprit) écrivent en fait un certain nombre de directives.Utilisez-les, surtout si la communauté les adopte également.

Si vous utilisez plusieurs langages, n'oubliez pas de rester flexible et d'ajuster votre style de codage préféré au langage que vous utilisez - lorsque vous codez en Python, utilisez un style différent de celui du codage en C#, etc.

Bonjour,

L'une des meilleures recommandations que je puisse faire est de lire la ou les sections pertinentes du Code Complete de Steve McConnell (Lien Amazon).Il a une excellente discussion sur les techniques de dénomination.

HTH

acclamations,

Rob

Bien sûr, il existe quelques directives communes, mais il existe également des différences dues à la différence de syntaxe et de conception du langage.

Pour .NET (C#, VB, etc.), je recommanderais la ressource suivante :

Je pense que la plupart des conventions de dénomination varient, mais le développeur, par exemple, nomme des variables telles que :mulitwordVarName, mais certains développeurs avec lesquels j'ai travaillé ont utilisé quelque chose comme mulitword_var_name ou multiwordvarname ou aj5g54ag ou...Je pense que cela dépend vraiment de vos préférences.

Il y a des années, un vieux programmeur avisé m'a appris les méfaits de notation hongroise, il s'agissait d'un véritable système hérité, Microsoft l'a adopté en quelque sorte dans le SDK Windows, et plus tard dans MFC.Il a été conçu autour de langages à typage libre comme le C, et non pour des langages à typage fort comme le C++.À l'époque, je programmais Windows 3.0 à l'aide de Turbo Pascal 1.0 de Borland pour Windows, qui deviendra plus tard Delphi.

Quoi qu'il en soit, pour faire court, à cette époque, l'équipe sur laquelle je travaillais développait nos propres standards très simples et applicables à presque toutes les langues, basés sur des préfixes simples -

  • a - argument
  • l - local
  • m - membre
  • g - global

L'accent ici est mis sur la portée, comptez sur le compilateur pour vérifier le type, tout ce dont vous avez besoin est la portée, où se trouvent les données.Cela présente de nombreux avantages par rapport à la vieille notation hongroise, dans la mesure où si vous modifiez le type de quelque chose via la refactorisation, vous n'avez pas besoin de rechercher et de remplacer toutes les instances.

Près de 16 ans plus tard, je continue de promouvoir l'utilisation de cette pratique et je l'ai trouvée applicable à presque toutes les langues dans lesquelles j'ai développé.

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