Bien que je fasse référence ici spécifiquement aux conventions de nommage de C ++ et de Bjarne Stroustrup , en principe, j'ai vu que les gens utilisent des règles quelque peu similaires pour d'autres langues ici et là.
Ainsi, l'idée de base est que l'on devrait pouvoir distinguer les types standard des types définis par l'utilisateur lors de la lecture du code. Par exemple, Bjarne Stroustrup suggère que l'on utilise
une lettre majuscule initiale pour les types (par exemple, carré et graphique)
qui, compte tenu du fait que
Le langage C ++ et la bibliothèque standard n'utilisent pas de majuscules
permet d'atteindre l'objectif mentionné ci-dessus.
Mais pourquoi devons-nous le faire? Quel peut être le but de distinguer les types standard et définis par l'utilisateur?
Je n'ai trouvé aucun raisonnement de Bjarne Stroustrup à ce sujet et, d'ailleurs, je pense moi-même d'une manière diamétralement opposée. : DI sais, je sais, "Qui suis-je pour contester Stroustrup?" Mais, écoutez, un tas de fonctionnalités du langage C ++, par exemple la surcharge des opérateurs, servent à permettre aux types définis par l'utilisateur un niveau de support syntaxique similaire aux types standard. Et puis tout cela est dérouté par une autre discipline de nommage ...
PS Sans compter que souvent un mot ne suffit pas pour nommer une classe et un mot séparé par un trait de soulignement qui commence par une majuscule a l'air si étranger.
la source
Réponses:
Il n'y a absolument aucun but ou avantage à cela. L'un des objectifs du C ++ était de traiter les UDT et les primitives de manière interchangeable, et bien qu'ils n'aient pas entièrement réussi, c'est un domaine où vous n'avez pas à vous différencier.
Quand il s'agit de nommer, Stroustrup est fou, et c'est un fait scientifiquement prouvé.
la source
snake_case
pour mes classes et espaces de noms et je n'ai eu aucun problème - ou confusion - causé par cela.Les conventions de dénomination concernent la prise en charge de la compréhension humaine (c'est-à-dire programmeur et mainteneur) du code.
Les UDT peuvent être spécifiés de sorte que la déclaration des variables, l'initialisation, les expressions et les instructions fonctionnent différemment de ceux-ci comme c'est le cas pour les types standard. Pour trouver un problème, il est utile que le responsable ait une certaine indication qu'une certaine section de code peut faire des choses amusantes (par exemple, la mise en œuvre d'un type intégral défini par l'utilisateur utilisé dans une fonction peut avoir un défaut dans la façon dont il ajoute).
Il existe de nombreuses façons de fournir de tels indices (commentaires, spécifications de conception, etc.). L'avantage des conventions de dénomination est qu'elles sont présentes dans le code, alors que les commentaires peuvent être omis, obsolètes, etc.
la source
L'une des raisons pour lesquelles j'utilise des mots en majuscules pour les types est de distinguer les variables des types. Cela permet de déclarer une variable avec, à part la capitalisation, le même nom:
Cela peut être utile pour les classes dont une seule instance est utilisée dans chaque contexte, par exemple les paramètres de configuration.
la source