8
votes

Si nous utilisons le préfixe C pour les cours, devrions-nous l'utiliser pour la structure également?

en supposant qu'un projet utilise le préfixe de classe C pendant une longue période, et ce serait une perte de temps pour changer à une étape tardive et que la personne qui a écrit à l'origine le guide de style a été touchée. par un bus, et qu'il n'y a pas de structs dans le code déjà ...

C'est une question assez triviale, mais si un guide de style de code C ++ indique "Utiliser c pour préfixe de nom de classe" alors devrait-il être Pris pour signifier également utiliser C pour le préfixe de struct également, ou devrions-nous utiliser quelque chose de différent, comme s par exemple. xxx ... < Pré> xxx


10 commentaires

Nous ne dunns pas ... Demandez à votre équipe ce qu'ils voulaient dire.


Eh bien, la personne initiale qui a écrit la directive de style a été touchée par un bus (je mettrai à jour ma réponse).


S'il s'agit d'un ancien projet, quel style est utilisé pour les structures existantes?


Fait intéressant, il n'y a pas de structure. Qui est certes bizarre.


Peut-être que les structures sont interdites?


Tu ne veux pas dire un CBU? Ou était-ce un SBUS? Votre iquestion est trop difficile à lire () sans Aiméfixes!


J'ai vu le préfixe S utilisé chez mon entreprise pour les structures.


En tant que note latérale, C ++ vous permettrait de déclarer quelque chose en tant que struct foo {}; , mais ensuite référence comme Classe FOO * P . Dans cet esprit, je ne vois pas pourquoi les préfixes hongrois devraient être traités différemment.


Je déteste vraiment ce concept de style, car il semble être proliféré par Microsoft et ces personnes qui ne veulent pas faire quelque chose de différent. On pourrait poser la vraie question: "Le type d'objet, de classe ou de structure est-il important?" "Peut-on créer des pochoirs d'objets sans utiliser de classe, de structure ou d'union?" Je préfère nommer les classes basées sur un thème, telles que "la forme" ou "cercle" au lieu de "cshape" et "ccircle". "C'est juste mon avis, je pourrais me tromper."


Haha, j'aime le destin que la personne qui a écrit à l'origine le guide de style a été touchée par un bus.


8 Réponses :


27
votes

réponse simple - n'utilisez pas le préfixe C pour les cours. C'est la notation hongroise du genre le plus inutile. Il est probablement temps de ré-écrire le guide de style. Franchement (et parlant en tant que quelqu'un qui a écrit plusieurs des choses), la plupart des guides de ce type sont des ordures et / ou ont été écrits longtemps, il y a longtemps et jamais mis à jour.


7 commentaires

Compte tenu du fait que la question concerne la cohérence du guide de style, vous dites essentiellement que vous n'avez pas de réponse ...


La notation est assez inutile, je suis d'accord, mais ce n'était pas la question, comme l'a dit Xtofl. La question était si elle a été utilisée pour les cours, alors devrait-elle être utilisée pour les structures?


@Nick OK, le guide, s'il est bon du tout, il faut expliquer pourquoi le préfixe C est utilisé pour les cours. Si le même raisonnement s'applique aux structures, utilisez ensuite un S.


Je suis d'accord avec le sentiment, mais c'est plus un commentaire qu'une réponse à la question.


@Nick je soupçonne qu'il a été copié aveuglément des normes MFC originales d'origine de Microsoft (et non écrites).


@Niel, oups, a supprimé mon commentaire. Mais merci d'avoir répondu. Cela semble logique pour moi.


Je pense que cette réponse a raison, ne passez pas de temps à des problèmes de votre propre fabrication lorsque vous pouvez les supprimer. Le préfixe C est à peu près rendu utile à Symbian, qui utilise C pour «classes appropriées», T pour les types de valeur, R pour les poignées aux objets de noyau et M pour les mixines. Mais je ne le manque pas dans d'autres projets C ++ et l'ajout de C à tous les types définis par l'utilisateur vous indique rien. La syntaxe de C ++ rend difficile de toujours savoir ce qui est un type et ce qui n'est pas, mais pas si difficile.



13
votes

Si le guide de style ne spécifie pas, je voudrais (probablement) les "Structs sont des classes avec tous les membres publics" -rule à utiliser c pour les structures aussi, oui. Ou je penserais "hah, voici une loopope pour contourner cette règle initiale idiote, yay" et ne pas l'utiliser. En d'autres termes, c'est très subjectif.


0 commentaires

5
votes

Si le guide de style de code ne spécifie pas, recherchez le code suivant le guide de style et voyez ce qui a déjà été fait.

S'il n'y a pas de code déjà à la suite du guide de style, parvenez à un accord avec toutes les personnes impliquées dans le projet.

Si personne d'autre n'est impliqué dans le projet, décidez et soyez cohérent.


0 commentaires

3
votes

Je pense que cette directive est stupide et confuse. Le fait que vous ayez dû poser cette question le prouve.

Les styles de codage sont destinés à augmenter la lisibilité; Il est évident que si un identifiant est une classe ou non, surtout si vous utilisez une IDE décente avec des info-bulles de souris.


3 commentaires

Ce type de guide de style provient effectivement de l'ère pré-IDE. Cela ne le rend pas inutile.


Eh bien, refusant d'utiliser une IDE pour une raison quelconque et ensuite recourir à ces solutions de contournement se tient à pied.


Les guides de style, vraiment, n'ont rien à voir avec les IDes. Comme d'autres l'ont dit, les guides devraient être destinés à la lisibilité et à la cohérence. Ils aident également dans les critiques de code (à un minimum minimum pour flamber les gens qui ne les suivent pas).



2
votes

Nous utilisons habituellement un préfixe C pour les classes et le préfixe t pour les structures qui n'ont aucune méthode (c.-à-d. «C» structs).


2 commentaires

Pareil ici. (-Padding pour rencontrer 15 caractères limites)


Et si une méthode est insérée dans la structure ou la classe, le nom doit être modifié (pour répondre à la ligne directrice) et tout le code revu pour propager le changement de nom. Vote primaire contre les styles hongrois et similaires.



2
votes

Pour moi, cela tomberait à:

Voulez-vous que les lecteurs de votre code soient différenciés immédiatement entre les deux types de déclaration?

Bien que l'utilisation du préfixe soit généralement désagréable, considérez attentivement la vue du responsable du code. Est-il utile pour eux de penser: "Ah! No C préfixe, c'est une structure". L'utilisation d'une structure au lieu d'une classe peut impliquer quelque chose de spécifique dans votre code. Si ce n'est pas le cas, il est plus logique de continuer à utiliser le préfixe pour le bien du responsable.


0 commentaires

2
votes

Si un guide de style ne répond pas à son objectif de promouvoir une lisibilité facile, une cohérence et une exactitude, il devrait être modifié jusqu'à ce qu'il soit ainsi ou jeté dans le fichier circulaire (poubelle).

En outre, si les gens ne le suivent pas, il devrait être mis à jour de manière à ce qu'il soit plus facile de suivre (ou les outils modifiés pour rendre la codage à l'IdRline plus facile).


0 commentaires

0
votes

Selon le modèle existant de la préfixation C pour les classes, vous devez préfixer S pour la structure, i pour l'interface.

En outre, préfixe E pour Enum, D pour Délégué, D pour le répertoire, F / M pour la fonction / Méthode, F Pour le fichier, F Pour le champ, N pour l'espace de noms, P pour la page, P pour le paramètre, P pour la propriété, R pour la valeur de retour, v pour la variable.

AS des variables, PREFIX

  • A pour tableau
  • B pour Boolean
  • c pour CHAR
  • f pour flotteur
  • g pour le GUID
  • h pour la poignée
  • i pour int
  • J pour JSON
  • k pour la clé
  • l pour la liste
  • M pour MarshalByRefObject
  • n pour nullable
  • o pour objet
  • p pour le pointeur
  • q pour la file d'attente
  • R pour le registre
  • s pour single
  • t pour TimeZone
  • U pour Uri
  • v pour la version
  • w pour la faiblesse
  • x pour xmldocument
  • y pour yoda
  • z pour zipfile

    Exemple

    Bien: xxx

    mauvais: xxx


0 commentaires