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

  FORUM HardWare.fr
  Programmation
  Java

  Du nom des variables...

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Du nom des variables...

n°1093677
EpoK
Let's burn
Posté le 23-05-2005 à 16:41:14  profilanswer
 

Bonjour, je voudrais connaitre vos choix en matière de nomage de variable, je vais commencer un projet à plusieurs personne et j'aurais aimé mettre au point une certaine convention du choix des variables pour que le code soit par la suite plus facilement modifiable par n'importe quelle personne de l'équipe.
 
Il y a des choses évidentes comme ne pas commencer la variable par une majuscule, et lui donner un nom explice (ex: pas de String string;) Mais comment bien nomer une variable ?
 
Le developpement intègrera une partie SWING. Prenons l'exemple d'un JLabel qui affiche le nombre de page vous l'appeleriez plutot :

Code :
  1. JLabel nbPages;
  2. JLabel jLabelNbPages;
  3. Jlabel nbPagesLabel;
  4. etc ...


Un question également pour les variables de classe privées par exemple

Code :
  1. private String maChaine;
  2. void setMaChaine(String maChaine) {
  3.    this.maChaine = maChaine; // comment appeler ma variable privée ? maChaine_ ? _maChaine ? ...
  4. }


Merci de vos avis  :jap:


Message édité par EpoK le 23-05-2005 à 16:41:48
mood
Publicité
Posté le 23-05-2005 à 16:41:14  profilanswer
 

n°1093738
Cherrytree
cn=?
Posté le 23-05-2005 à 17:04:23  profilanswer
 

Les conventions de nommage sur le projet sur lequel je travaille sont souples.
 
=> Conventions Sun, je n'y reviens pas
=> données membres préfixées par m_
=> paramètres des méthodes préfixés par p_
 
A l'usage c'est pas mal.
 
Le cas des JLabel Swing est particulier. Très souvent, un label va de pair avec un champ de saisie. Dans ce cas, je suffixe par Label le JLabel et par Input le champ de saisie. Parfois, je précise TextField, TextArea... plutôt que Input.


---------------
Le site de ma maman
n°1093744
WhatDe
Posté le 23-05-2005 à 17:08:29  profilanswer
 

EpoK a écrit :

Bonjour, je voudrais connaitre vos choix en matière de nomage de variable, je vais commencer un projet à plusieurs personne et j'aurais aimé mettre au point une certaine convention du choix des variables pour que le code soit par la suite plus facilement modifiable par n'importe quelle personne de l'équipe.
 
Il y a des choses évidentes comme ne pas commencer la variable par une majuscule, et lui donner un nom explice (ex: pas de String string;) Mais comment bien nomer une variable ?
 
Le developpement intègrera une partie SWING. Prenons l'exemple d'un JLabel qui affiche le nombre de page vous l'appeleriez plutot :

Code :
  1. JLabel nbPages;
  2. JLabel jLabelNbPages;
  3. Jlabel nbPagesLabel;
  4. etc ...


Un question également pour les variables de classe privées par exemple

Code :
  1. private String maChaine;
  2. void setMaChaine(String maChaine) {
  3.    this.maChaine = maChaine; // comment appeler ma variable privée ? maChaine_ ? _maChaine ? ...
  4. }


Merci de vos avis  :jap:


Pour le setMaChaine()  
 

Code :
  1. private String maChaine;
  2. void setMaChaine(String chaine) {
  3.    this.maChaine = chaine; // comment appeler ma variable privée ? maChaine_ ? _maChaine ? ...
  4. }


 
Plus logique je trouve. On lui passe une chaine, pour mettre ma chaine
Enfin j'ai pas encore trop d'expérience avec ces conventions.


---------------
[:whatde]
n°1093789
Cherrytree
cn=?
Posté le 23-05-2005 à 17:33:38  profilanswer
 

L'intérêt de ta méthode c'est surtout d'éviter de se tromper entre this.xxx et xxx, puisque dès la déclaration, ton paramètre à un nom différent du membre. Par ailleurs, this devient superflu.


---------------
Le site de ma maman
n°1094508
EpoK
Let's burn
Posté le 24-05-2005 à 10:25:36  profilanswer
 

d'autres avis de javateu ?

n°1094613
benou
Posté le 24-05-2005 à 11:15:07  profilanswer
 

le coup des '_' est une habitude fort répandue qui est d'ailleur gérée par la majorité des IDE.  
Perso je l'aime pas trop... elle va quand même un peu à l'encontre des conventions java ...
 
moi je code à coup de 'this' pour les données membres. j'aime bien parce que eclipse me fait la completion automatique directement après avoir tapé "this." ... et je trouve ca bien lisible ... et ca va bien quand tu fais des inner classes et que tu as besoin de préfixer par le nom de la outerclasse : ca reste la même syntaxe : OuterClasse.this.member


---------------
ma vie, mon oeuvre - HomePlayer
n°1095247
EpoK
Let's burn
Posté le 24-05-2005 à 16:46:17  profilanswer
 

benou a écrit :

le coup des '_' est une habitude fort répandue qui est d'ailleur gérée par la majorité des IDE.  
Perso je l'aime pas trop... elle va quand même un peu à l'encontre des conventions java ...
 
moi je code à coup de 'this' pour les données membres. j'aime bien parce que eclipse me fait la completion automatique directement après avoir tapé "this." ... et je trouve ca bien lisible ... et ca va bien quand tu fais des inner classes et que tu as besoin de préfixer par le nom de la outerclasse : ca reste la même syntaxe : OuterClasse.this.member


 
et quand tu swing tu nomes comment ?

n°1095499
EpoK
Let's burn
Posté le 24-05-2005 à 20:10:38  profilanswer
 

up

n°1095632
benou
Posté le 24-05-2005 à 21:57:55  profilanswer
 

EpoK a écrit :

et quand tu swing tu nomes comment ?


je swing pas mais qu'est ce que ca peut changer ?


---------------
ma vie, mon oeuvre - HomePlayer
n°1095649
Jubijub
Parce que je le VD bien
Posté le 24-05-2005 à 22:18:01  profilanswer
 

pareil que benou, et un peu comme cherytree :  
 
 - je préfixe systematiquement par this mes variables memebre...pour moi java fourni un moyen de les différencier, je vois pas l'intéret d'en utiliser un autre...en plus, ca offre la complétion sous tous les IDE...
- mes paramètres ont tjs le meme nom que la variable memebre :  

Code :
  1. public void setBidule(Bidule bidule) {
  2.     this.bidule = bidule;
  3. }


 
pour swing, je fais comme cherytree sur le principe
 
par ex :  

Code :
  1. JLabel nomLabel;
  2. JTextField nomValue;


 
de sorte que je sais tjs partout dans mon code que pour un attribut donné, le label sera attributLabel, et sa valeur sera attributValue


---------------
Jubi Photos : Flickr - 500px
mood
Publicité
Posté le 24-05-2005 à 22:18:01  profilanswer
 

n°1095714
the real m​oins moins
Posté le 24-05-2005 à 23:18:31  profilanswer
 

... vous devriez tous éviter de mélanger le français et l'anglais, si vous voulez mon avis.. à fortiori à l'interieur d'un meme nom de variable (nomValue, pitié [:pingouino])


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1095718
FlorentG
Posté le 24-05-2005 à 23:26:41  profilanswer
 

EpoK a écrit :


Code :
  1. JLabel nbPages;
  2. JLabel jLabelNbPages;
  3. Jlabel nbPagesLabel;
  4. etc ...


:


Pour ma part, ce serait comme ça :

JLabel pageCountLabel;


Y'a que pour les contrôles que je met vaguement le type. Aussi, jamais de variables ou de fonctions en français. Je code 100% en anglais (sinon bonjour le merdier entre français et anglais, on s'y retrouve plus).
 
Et je plussoie pour l'utilisation du this. Jamais de m_bidule, toujours this.bidule.
 
Enfin pour un setMaChaine :

private String pouet;
 
public void setPouet(String pouet) {
  this.pouet = pouet;
}


J'utilise toujours le même truc : On veut définir 'pouet' grâce à 'setPouet', donc pour moi c'est logique d'avoir comme nom de paramètre 'pouet'... :)

n°1096041
EpoK
Let's burn
Posté le 25-05-2005 à 10:18:15  profilanswer
 

benou a écrit :

je swing pas mais qu'est ce que ca peut changer ?


 
pour le nom des champs :
 

Code :
  1. JLabel nbPages;
  2. JLabel jLabelNbPages;
  3. Jlabel nbPagesLabel;
  4. etc ...


Message édité par EpoK le 25-05-2005 à 10:18:29
n°1096272
Jubijub
Parce que je le VD bien
Posté le 25-05-2005 à 11:31:41  profilanswer
 

the real moins moins a écrit :

... vous devriez tous éviter de mélanger le français et l'anglais, si vous voulez mon avis.. à fortiori à l'interieur d'un meme nom de variable (nomValue, pitié [:pingouino])


 
 
je sais, ct pour l'exemple...je code toujours en anglais aussi...c probablement la pratique de dev la plus répandue de partout : c'est dans toutes les normes de dev


---------------
Jubi Photos : Flickr - 500px
n°1096988
Cherrytree
cn=?
Posté le 25-05-2005 à 17:10:37  profilanswer
 

Jubijub a écrit :

je sais, ct pour l'exemple...je code toujours en anglais aussi...c probablement la pratique de dev la plus répandue de partout : c'est dans toutes les normes de dev


Pas chez nous, on nous demande explicitement du Français. En même temps va traduire un élément de règlementation FR en langue UK. Pas toujours très malin, toujours très hideux par contre.


---------------
Le site de ma maman
n°1097147
FlorentG
Posté le 25-05-2005 à 19:21:58  profilanswer
 

T'entends quoi par élément de réglementation FR ?

n°1097154
the real m​oins moins
Posté le 25-05-2005 à 19:29:17  profilanswer
 

C'est du vocabulaire métier spécifique à son projet, je présume.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1097164
Jubijub
Parce que je le VD bien
Posté le 25-05-2005 à 19:33:44  profilanswer
 

pendant qu'on y est : les sauts de ligne, vous en mettez où ?
 
je trouve que mon code est trop compact...g essayé aujourd'hui de toujours sauter une ligne avant un if/while, etc...ca aère ca me plait...mais y'a surement mieux


---------------
Jubi Photos : Flickr - 500px
n°1097168
the real m​oins moins
Posté le 25-05-2005 à 19:34:42  profilanswer
 

j'en met ou ça a du sens [:spamafote]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1097181
WhatDe
Posté le 25-05-2005 à 19:39:12  profilanswer
 

Jubijub a écrit :

pendant qu'on y est : les sauts de ligne, vous en mettez où ?
 
je trouve que mon code est trop compact...g essayé aujourd'hui de toujours sauter une ligne avant un if/while, etc...ca aère ca me plait...mais y'a surement mieux


Code :
  1. public void méthode(){
  2.            int t..
  3.          
  4.            if(){
  5.               ...
  6.            }
  7.            while(){
  8.            }
  9.      }


 
Je déteste le code trop compact.


---------------
[:whatde]
n°1097182
Jubijub
Parce que je le VD bien
Posté le 25-05-2005 à 19:39:34  profilanswer
 

ben justement : c où ces endroits où ca a du sens pour toi ?
 
edit : whatde : ok...en gros, par méthode : le bloc de variables locale, et un espace entre chaque bloc de code genre try, if, etc...


Message édité par Jubijub le 25-05-2005 à 19:40:41

---------------
Jubi Photos : Flickr - 500px
n°1097186
WhatDe
Posté le 25-05-2005 à 19:41:56  profilanswer
 

Jubijub a écrit :

ben justement : c où ces endroits où ca a du sens pour toi ?
 
edit : whatde : ok...en gros, par méthode : le bloc de variables locale, et un espace entre chaque bloc de code genre try, if, etc...


Mais bon tout le monde n'aime pas  [:airforceone]  
Ca n'empêche que je vois souvent pire  :sarcastic:


---------------
[:whatde]
n°1097187
the real m​oins moins
Posté le 25-05-2005 à 19:41:59  profilanswer
 

Jubijub a écrit :

ben justement : c où ces endroits où ca a du sens pour toi ?


ben ça dépend ce que le bout de code dont on parle fait [:spamafote]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1097426
the real m​oins moins
Posté le 25-05-2005 à 23:11:32  profilanswer
 

ben tiens, tant qu'on arrive au coding style, les commentaires:
http://www.theserverside.com/news/ [...] 5_05-click
j'ai pas lu l'article lié à ce thread, mais j'adhere au résumé et à 200% au premier post du thread


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1097530
Jubijub
Parce que je le VD bien
Posté le 26-05-2005 à 08:34:58  profilanswer
 

intéressant...c vrai que son exemple sur l'auth est parlant...
 
c vrai que j'ai tendance à écrire des méthodes trop longues...


---------------
Jubi Photos : Flickr - 500px
n°1097628
Cherrytree
cn=?
Posté le 26-05-2005 à 09:59:57  profilanswer
 

FlorentG a écrit :

T'entends quoi par élément de réglementation FR ?


 

the real moins moins a écrit :

C'est du vocabulaire métier spécifique à son projet, je présume.


Présicément.


---------------
Le site de ma maman
n°1097732
bobuse
Posté le 26-05-2005 à 11:09:28  profilanswer
 

pour donner mon opinion, je suis aussi partisan du this et donc pas ajouter des méta-infos dans le nom d'une variable/méthode. Je relègue le boulot à l'IDE qui doit se débrouiller me dire qui une méthode/un attribut est privé/public/autre et autre truc du genre.
 
Pour ce qui est des sauts de ligne dans une méthodes, j'ai pas vraiment de méthode. En général, je saute une ligne après mes déclarations de variables locales (comme WhatDe). Pour ce qui est des sauts de lignes entre blocs, j'en mets entre des blocs assez conséquents (pas pour des blocs de moins de 5 lignes) ou entre des ensembles de blocs fonctionnellement différents.
Genre aprés avoir initialiser une connexion, ou une initialisation.
J'évite d'aérer systématiquement car ça limite ensuite la visibilité.
 
Et souvent, au lieu de sauter une ligne, j'ajoute une ligne de commentaire qui annonce le prochain bloc de ligne. Ça segmente visuellement comme un saut de ligne, mais en plus ça ajoute de l'info ... Mais bon, encore une fois, c'est pas systématique :)


---------------
get amaroK plugin
n°1097775
Mario_
Vive le pingouiboulga !!
Posté le 26-05-2005 à 11:34:05  profilanswer
 

J'en rajoute une petite couche. Concernant mon projet actuel :
-> champs d'une classe : un nom explicite
-> variables locales : commencent par "l_"
-> paramètres d'une fonction : commencent par "a_"
-> itérateurs : commencent par "it_"
 
Entre autres...


---------------
Soyons ouverts d'esprit, mais pas au point de laisser notre cerveau s'enfuir.
n°1097785
FlorentG
Posté le 26-05-2005 à 11:37:39  profilanswer
 

Moi j'aime pas les underscores dans les variables... J'en met que en PHP parce que c'est la norme, et en VB.NET devant les variables membres qui ont une propriété à leur nom, genre :

Private _Pouet As String
 
Public Property Pouet() As String
...

n°1097896
Jubijub
Parce que je le VD bien
Posté le 26-05-2005 à 12:59:46  profilanswer
 

FlorentG a écrit :

Moi j'aime pas les underscores dans les variables... J'en met que en PHP parce que c'est la norme, et en VB.NET devant les variables membres qui ont une propriété à leur nom, genre :

Private _Pouet As String
 
Public Property Pouet() As String
...



 
encore une bonne raison pour pas le faire, CQFD...
 
sinon ok si on code sous VI c intéressant de savoir si c du local, membre, etc...mais avec un ide je vois pas l'intéret...y'a l'outline, le mouseover, tt une mine d'info


---------------
Jubi Photos : Flickr - 500px
n°1097977
Bandenabos
§;o)
Posté le 26-05-2005 à 14:01:49  profilanswer
 

Salut,
 
de mon coté les variables suivent la rêgle suivante :  
 
m_ pour les données membre
l_ pour les variables locales
a_ pour les attributs de méthodes
 
Ensuite le nom de la variable elle même ne contient pas d'underscore, des majuscules permettent de faciliter la lecture ex : m_MaDonneeMembre a_MonParametre l_MaVariableLocale.
 
De plus, les outils font la complétion automatique donc tout ce qui est i, m, a, prout ou pouet sont à proscrire. On demande des variables ayant un nom explicite même si ils sont un poil long.
 
Voilà tout ...
 
@+

n°1098011
the real m​oins moins
Posté le 26-05-2005 à 14:15:12  profilanswer
 

keskidi


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1098051
nraynaud
lol
Posté le 26-05-2005 à 14:28:57  profilanswer
 

Jubijub a écrit :

intéressant...c vrai que son exemple sur l'auth est parlant...
 
c vrai que j'ai tendance à écrire des méthodes trop longues...


pour en revenir à ce que j'ai pondu là :
http://forum.hardware.fr/forum2.ph [...] 6#t1097496
 
au départ, j'avais mis tout le code de disableAddElementActionForFourSeconds() à son point d'utilisation, mais en le sortant, d'une part j'évite d'avoir à mettre un commentaire sur ce qu'on fait lors du clic sur le bouton, d'autre part, j'évite de noyer le lecteur sur comment je le fait. S'il veut le savoir, ctrl+clic et hop, il le sait, mais on l'agresse pas avec des détails.


---------------
trainoo.com, c'est fini
n°1098059
benou
Posté le 26-05-2005 à 14:32:00  profilanswer
 

ca m'arrive de mettre un underscore dans un cas précis : l'utilisation d'une variable temporaire qui n'est utilisée que très très localement.
 
ex :  
 
String str_page = request.getParameter("page" );
int page = Integer.parseInt(str_page);
 
ca me permet de savoir qu'elle n'a pas à être utilisée par la suite


---------------
ma vie, mon oeuvre - HomePlayer
n°1098079
the real m​oins moins
Posté le 26-05-2005 à 14:36:35  profilanswer
 

benou a écrit :

ca m'arrive de mettre un underscore dans un cas précis : l'utilisation d'une variable temporaire qui n'est utilisée que très très localement.
 
ex :  
 
String str_page = request.getParameter("page" );
int page = Integer.parseInt(str_page);
 
ca me permet de savoir qu'elle n'a pas à être utilisée par la suite


ben c'est bien, mais les conventions d'écriture en général c'est pour faciliter le travail à plusieurs [:pingouino]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1098089
benou
Posté le 26-05-2005 à 14:39:01  profilanswer
 

j'aurais preque été déçu que tu critiques pas tiens ...


---------------
ma vie, mon oeuvre - HomePlayer
n°1098091
nraynaud
lol
Posté le 26-05-2005 à 14:39:07  profilanswer
 

benou a écrit :

ca m'arrive de mettre un underscore dans un cas précis : l'utilisation d'une variable temporaire qui n'est utilisée que très très localement.
 
ex :  
 
String str_page = request.getParameter("page" );
int page = Integer.parseInt(str_page);
 
ca me permet de savoir qu'elle n'a pas à être utilisée par la suite


tu la mets "final", comme ça t'es sur de pas avoir de surprises [:pingouino]


---------------
trainoo.com, c'est fini
n°1098097
benou
Posté le 26-05-2005 à 14:39:53  profilanswer
 

nraynaud a écrit :

tu la mets "final", comme ça t'es sur de pas avoir de surprises [:pingouino]


je fais rarement, ca ... manque d'habitude ...


---------------
ma vie, mon oeuvre - HomePlayer
n°1098105
the real m​oins moins
Posté le 26-05-2005 à 14:41:17  profilanswer
 

benou a écrit :

j'aurais preque été déçu que tu critiques pas tiens ...


ben stadir que bon, oui stu veux, jpeux etre aussi constructif que toi:
moi des fois quand j'ai une variable temporaire qui ne sert à rien, je l'appelle "zoubida" ou "trilili".
comme ça, je sais que si je reviens sur ce code plus tard, ça me sautera assez aux yeux pour que je voie que je ne dois pas utiliser cette variable.
 
 
 
 
    ché pas quoi [:pingouino]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1098120
nraynaud
lol
Posté le 26-05-2005 à 14:44:50  profilanswer
 

benou a écrit :

je fais rarement, ca ... manque d'habitude ...


de toutes façons ça résout pas grand'chose pour les objets :

Code :
  1. final OutputStream moncul = ...;
  2. <utiliser légitimement moncul>
  3. moncul.close();
  4. <ici moncul est toujours accessible, mais pas très utilisable [:pingouino] >


 
par contre, pour les types primitifs, oui.


---------------
trainoo.com, c'est fini
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

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

  Du nom des variables...

 

Sujets relatifs
Variables accessibles dans plusieurs fichiersvariables de session
Recuperez des noms de dossier dans des variables2 variables pour un seul bouton radio, est ce possible ?
Problèmes de variablesImposer l'emplacement mémoire de certaines variables
Récupérer toutes les variables d'un postComment récupérer des variables ASP qu'on envoie à FLASH ?
Problème concaténation variables [RESOLU] 
Plus de sujets relatifs à : Du nom des variables...


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