Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1562 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Que pensez-vous de cette convention

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Que pensez-vous de cette convention

n°762948
HelloWorld
Salut tout le monde!
Posté le 14-06-2004 à 15:24:45  profilanswer
 

Hello,
Depuis peu je teste une nouvelle convention pour le nommage de mes fonctions/variables de mes classes.
Avant de dire ce qui me motive à l'utiliser, je voudrais votre avis, et voir si l'un de vous devine pourquoi je fais ainsi, ou si tout le monde trouve ça illogique.
C'est par rapport à la visibilité des membres :

Code :
  1. class Test
  2. {
  3. public:
  4.     int FonctionPublique();
  5. private:
  6.     int zVariablePrivee;
  7.     int zFonctionPrivee();
  8. };


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
mood
Publicité
Posté le 14-06-2004 à 15:24:45  profilanswer
 

n°763011
jagstang
Pa Capona ಠ_ಠ
Posté le 14-06-2004 à 15:43:51  profilanswer
 

mouais. c'est comme les _ devant les fonction privée. je trouve ça pas terrible. mieux vaut encore utiliser la notation hongroise...
 

n°763034
xterminhat​e
Si vis pacem, para bellum.
Posté le 14-06-2004 à 15:50:26  profilanswer
 

Est-ce vraiment utile de souligner la différence entre les membres plublics et privés ? Ceux qui sont privés ont une telement courte portée dans ton code...


---------------
Cordialement, Xterm-in'Hate...
n°763047
HelloWorld
Salut tout le monde!
Posté le 14-06-2004 à 15:56:42  profilanswer
 

JagStang a écrit :

mouais. c'est comme les _ devant les fonction privée. je trouve ça pas terrible. mieux vaut encore utiliser la notation hongroise...


A un détail près : c'est pas '_' mais 'z'. Vois-tu pourquoi ou cela te sembles stupide ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°763052
HelloWorld
Salut tout le monde!
Posté le 14-06-2004 à 15:58:27  profilanswer
 

xterminhate a écrit :

Est-ce vraiment utile de souligner la différence entre les membres plublics et privés ? Ceux qui sont privés ont une telement courte portée dans ton code...


Je suis d'accord. Jusqu'à peu je ne le faisais pas. Mais là je teste cete notation, et pour une certaine raison je le trouve très agréable d'utilisation, et la distinction très utile.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°763055
R3g
fonctionnaire certifié ITIL
Posté le 14-06-2004 à 15:58:43  profilanswer
 

HelloWorld a écrit :

A un détail près : c'est pas '_' mais 'z'. Vois-tu pourquoi ou cela te sembles stupide ?

C'est pour qu'elles soient toujours à la fin de la liste des methodes ? t'as qu'à utiliser un vrai IDE qui ne te propose que les méthodes que tu peux appeler en fonction du contexte.


---------------
Au royaume des sourds, les borgnes sont sourds.
n°763067
HelloWorld
Salut tout le monde!
Posté le 14-06-2004 à 16:04:13  profilanswer
 

Voilà c'est ça.
Le probleme des '_' c'est qu'ils apparaissent en haut de la liste. Particulièrement chiant avec la STL sous VC++.
Je me suis dit pourquoi ne pas les mettre en fin de liste en les préfixant par 'z' (comme c'est privé/protected, on n'est rarement censé y faire appel, donc autant les faire dégager de la liste d'appel).
R3g : tu utilises quel IDE ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°763069
R3g
fonctionnaire certifié ITIL
Posté le 14-06-2004 à 16:04:50  profilanswer
 

HelloWorld a écrit :

Voilà c'est ça.
Le probleme des '_' c'est qu'ils apparaissent en haut de la liste. Particulièrement chiant avec la STL sous VC++.
Je me suis dit pourquoi ne pas les mettre en fin de liste en les préfixant par 'z' (comme c'est privé/protected, on n'est rarement censé y faire appel, donc autant les faire dégager de la liste d'appel).
R3g : tu utilises quel IDE ?

heuu eclipse, mais je fais pas de C++ en fait.


---------------
Au royaume des sourds, les borgnes sont sourds.
n°763344
Ace17
Posté le 14-06-2004 à 20:38:50  profilanswer
 

Pourrir son code juste pour faire plaisir a certains IDE... tres peu pour moi. Mais il y a peu etre d'autres raisons?

n°763350
Taz
bisounours-codeur
Posté le 14-06-2004 à 20:44:30  profilanswer
 

Ace17 a écrit :

Pourrir son code juste pour faire plaisir a certains IDE... tres peu pour moi. Mais il y a peu etre d'autres raisons?

faire fuire Taz ? (comment je parle de lui à la 3ème personne)

mood
Publicité
Posté le 14-06-2004 à 20:44:30  profilanswer
 

n°763393
jagstang
Pa Capona ಠ_ಠ
Posté le 14-06-2004 à 21:47:26  profilanswer
 

Taz >> skyzo va :lol:

n°763654
HelloWorld
Salut tout le monde!
Posté le 14-06-2004 à 23:37:58  profilanswer
 

Ace17 a écrit :

Pourrir son code juste pour faire plaisir a certains IDE... tres peu pour moi. Mais il y a peu etre d'autres raisons?


C'est pas vraiment ça. C'est plutot utiliser 'z' au lieu de '_' ou 'm_'.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°763803
el muchach​o
Comfortably Numb
Posté le 15-06-2004 à 09:16:50  profilanswer
 

JagStang a écrit :

mouais. c'est comme les _ devant les fonction privée. je trouve ça pas terrible. mieux vaut encore utiliser la notation hongroise...


Beuark...

n°763811
cricri_
Posté le 15-06-2004 à 09:26:12  profilanswer
 

Doit bien y avoir des recommandations tout de même, non ?

n°763843
el muchach​o
Comfortably Numb
Posté le 15-06-2004 à 10:04:37  profilanswer
 

D'après mon expérience, mes recommendations personnelles sont :  
 - séparer les membres privés des autres variables, via _ ou autre,
 - choisir des noms courts, mais pas cryptiques.
 
L'intérêt des noms courts est qu'ils sont faciles à mémoriser, ce qui facilite la compréhension et l'utilisation. Par court, j'entends typiquement entre 3 et 8 lettres. C'est facile en anglais, plus difficile en français mais bien souvent possible, avec les namespaces et les noms de classes devant. L'usage de noms longs doit rester limité et faie réfléchir à l'intérêt de la méthode.  Enfin, j'appelle mes variables de boucle avec i, j , k, l, etc, et pour mes itérateurs, it, jt, kt.


Message édité par el muchacho le 15-06-2004 à 10:28:25
n°763858
HelloWorld
Salut tout le monde!
Posté le 15-06-2004 à 10:17:25  profilanswer
 

el muchacho a écrit :

L'intérêt des noms courts est qu'ils sont faciles à mémoriser, ce qui facilite la compréhension et l'utilisation.


Pour moi un nom court fait tout sauf faciliter la compréhension.
Mes noms font très souvent plus de 10 lettres, et sont pratiquement toujours accompagnés d'un commentaire près de leur déclaration (sauf quand c'est trivial genre NumberOfElements).
Sur le projet actuel, j'ai un nom de classe qui fait 30 lettres. C'est un peu extrême, j'ai hésité à l'adopter, mais c'est pas plus mal : j'ai pas besoin de trimballer des commentaires à chaque fois pour rappeller à quoi ça correspond. C'est un cas isolé je vous rassure.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°763871
pascal_
Posté le 15-06-2004 à 10:22:54  profilanswer
 

HelloWorld a écrit :

Pour moi un nom court fait tout sauf faciliter la compréhension.
Mes noms font très souvent plus de 10 lettres, et sont pratiquement toujours accompagnés d'un commentaire près de leur déclaration (sauf quand c'est trivial genre NumberOfElements).
Sur le projet actuel, j'ai un nom de classe qui fait 30 lettres. C'est un peu extrême, j'ai hésité à l'adopter, mais c'est pas plus mal : j'ai pas besoin de trimballer des commentaires à chaque fois pour rappeller à quoi ça correspond. C'est un cas isolé je vous rassure.


 
NumberOfElements => NbElements  :o  
 
Nom de classe de 30 lettres  :??: Alors tu fais :
   

Code :
  1. machinChoseTrucBiduleChouettes toto = new machinChoseTrucBiduleChouettes()

[:w3c compliant]


Message édité par pascal_ le 15-06-2004 à 10:37:04
n°763881
el muchach​o
Comfortably Numb
Posté le 15-06-2004 à 10:27:57  profilanswer
 

Les noms longs, j'en ai vu pas mal, et à mon avis, ça ne facilite pas spécialement la compréhension. La concision n'a jamais été au détriment de la compréhension si les noms sont bien choisis et non cryptiques. Je n'accepte pas les acronymes par exemple.
Les noms très longs sont parfoie dûs à une mauvaise conception.
Un exemple simple (mais tiré d'un code réel), une librairie qui avait une classe utilitaire pour les conversions de types. Chaque méthode s'appelait "convertis_machin_en_truc", "convertis_bidule_en_truc" alors qu'il suffisait de définir "en_truc" et de surcharger cette méthode pour les types machin et bidule.
 
De façon générale, je réserve les noms longs aux variables globales et à celles qui sont peu utilisées.
Plus une variable est locale et/ou courament utilisée, plus son nom devrait être court.


Message édité par el muchacho le 15-06-2004 à 10:38:59
n°764001
HelloWorld
Salut tout le monde!
Posté le 15-06-2004 à 11:39:54  profilanswer
 

pascal_ a écrit :

NumberOfElements => NbElements  :o  
 
Nom de classe de 30 lettres  :??: Alors tu fais :
   

Code :
  1. machinChoseTrucBiduleChouettes toto = new machinChoseTrucBiduleChouettes()

[:w3c compliant]


Pour NbElements, je préfère aussi. Mais je l'utilise pas non plus. Je me débrouille pour avoir un type conteneur et j'utilise une méthode...Count() qui m'en renvoie le nombre.
Pour machinChoseTrucBiduleChouettes, ben oui (pas de new cependant). Au début ça m'a choqué, j'ai essayé un autre nom, j'ai demandé l'avis de personnes compétentes, et... on l'a gardé. Quand c'est un terme informatique c'est facile de condenser, un programmeur de base comprend. Mais là c'est un terme scientifique, et je me suis mis à la place de mio même en train d'essayer de piger le code avec un autre nom que celui-là. Ben même avec celui-là faut aller voir un spécialiste pour lui demander c'est quoi, etc... Si en plus il connait pas le nom, il est mal barré. Je te donne 2 versions condensées possibles de cette classe, dis mio celle que tu préfères et essaye de deviner ce qu'elle fait :
l'extrême :

Code :
  1. R r;
  2. // initialiser r
  3. CCB ccb( r );


l'intermédiaire, avec laquelle j'ai hésité

Code :
  1. Reflectance r;
  2. // initialiser r
  3. ColorCoordBuilder ccb( r );


 

Citation :

Un exemple simple (mais tiré d'un code réel), une librairie qui avait une classe utilitaire pour les conversions de types. Chaque méthode s'appelait "convertis_machin_en_truc", "convertis_bidule_en_truc" alors qu'il suffisait de définir "en_truc" et de surcharger cette méthode pour les types machin et bidule.


Je suis parfaitement d'accord.
N'empêche que souvent un nom de 10 lettres est plus parlant sans alourdir pour autant. GTK utilise des noms longs aussi, et tu peux comprendre un code sans jamais y avoir touché.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°769943
printf
Baston !
Posté le 19-06-2004 à 15:50:51  profilanswer
 

Taz a écrit :

faire fuire Taz ? (comment je parle de lui à la 3ème personne)


 
Si ça se trouve, le 'z' c'était pour te rendre hommage [:spamafote]


---------------
Un matin je me lèverai et il fera beau.
n°770851
Ummon
Posté le 21-06-2004 à 09:15:54  profilanswer
 

Des noms de méthodes commençant par une majuscule : beurk !.
 
Personnellement je ne distingue pas les méthodes privée des publiques avec des prefixes et encore moins les membres car ils sont tous privés.
Si tu as fait un bon découpage logique de tes classes tu ne dois pas avoir beaucoup de méthodes et de membres, par exemple une dizaine de chaque max.
 
Le truc du 'z' alors ca achève tout, c immonde.


Message édité par Ummon le 21-06-2004 à 09:17:20
n°770888
HelloWorld
Salut tout le monde!
Posté le 21-06-2004 à 09:49:05  profilanswer
 

Ummon a écrit :

Des noms de méthodes commençant par une majuscule : beurk !.


Question de goûts. Moi je déteste la première lettre en minuscule. POur mes classes héritant de Qt je le fais malgré tout, car c'est la convention. Sinon c'est NotationDromadaire.
 

Ummon a écrit :

Personnellement je ne distingue pas les méthodes privée des publiques avec des prefixes et encore moins les membres car ils sont tous privés.
Si tu as fait un bon découpage logique de tes classes tu ne dois pas avoir beaucoup de méthodes et de membres, par exemple une dizaine de chaque max.


Rien à voir. Quand t'as besoin de méthodes et de membres, il faut les mettre. Pour faire ce que tu dis il faut alors splitter une classe en plusieurs classes pour ne pas vaoir trop de méthodes => mauvais découpage logique. La dizaine de membres je suis plutot d'accord (y'a tjrs des exceptions), mais pour les méthodes, pas de limite. Moi je maintiens une taille maximale pour le code de mes fonctions (1 à 2 écrans) et dès que je dépasse ou qu'il commence à y avoir de grosses boucles imbriquées hop je me crée une fonction protected/private et j'y met le code.  
 

Citation :

Le truc du 'z' alors ca achève tout, c immonde.


Pas sûr que ce soit pire que '_' qui pollue la liste des méthodes dispos affichées par l'IDE (en particulier avec la STL). Quand j'ai une classe qui hérite d'une autre genre QWidget et ses centaines de membres/fonctions, je suis content de retrouver tous mes petits en appuyant seulement sur z.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Que pensez-vous de cette convention

 

Sujets relatifs
Que pensez-vous de WebDev 7 ?Que pensez vous des anims de mon site ?
que pensez vous de web dev pour la création de site?Que pensez vous de cette methode ? (lister les pdf, ps d un dossier)
Que pensez-vous de MSDE ?, utilisable en environnement de production ?Que pensez-vous de WINDEV ? Franchement ?
Convention du repère de Maya et softimage ?[win32] dll, import et calling convention...
Que pensez vous des handle en C?[jsp] vous pensez quoi de mon code ???
Plus de sujets relatifs à : Que pensez-vous de cette convention


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR