Accueil de l'archive Service proposé par Hervé AGNOUX

Date sent:      	Tue, 29 Feb 2000 11:46:31 +0200
From:           	Philippe Guilbert <guilbertph@wanadoo.fr>
To:             	java@u-strasbg.fr
Subject:        	Conventions de nommage
Send reply to:  	java@u-strasbg.fr

Salut ! 

Qui pourrait me dire d'oùu sortent les conventions de nommages suivantes :
1) attributs qui commencent par un tiret bas, exemple :

 int _currentFlag = 0;

2) et dans le livre de Robinson et Vorobiev, certains attributs qui
commencent par "m_", exemple :

 int m_Flag = 12;

???

Je n'ai rien trouvé sur ces deux notations dans le "Java Language
Specification" qui d'ailleurs n'est plus accessible depuis PHAROS
apparemment ! Est-ce standard ou sont-ce des idiosyncrasies ?

Merci !

PHILIPPE







       ________________________________________________
     Philipe GUILBERT
 Amateur et à travers
 Bricoleur interdépendant
 Docteur honoris causa en Blairologie comparée
 ( http://www.chez.com/harpicpc )
 97400 LA REUNION

     

To:             	java@u-strasbg.fr
Subject:        	Re: Conventions de nommage
From:           	Rodrigo Reyes <rodrigo.reyes@lcr.thomson-csf.com>
Date sent:      	29 Feb 2000 09:41:31 +0100
Send reply to:  	java@u-strasbg.fr

Philippe Guilbert <guilbertph@wanadoo.fr> writes:

> Qui pourrait me dire d'oùu sortent les conventions de nommages suivantes
> 	int _currentFlag = 0; 	int m_Flag = 12; Je n'ai rien trouvé sur ces
> deux notations dans le "Java Language Specification" qui d'ailleurs
> n'est plus accessible depuis PHAROS apparemment ! Est-ce standard ou
> sont-ce des idiosyncrasies ?

 L'idée générale de ces préfixes est de permettre une distinction
 visuelle entre les variables membres et les variables locales (qui se
 trouvent dans les méthodes). Cela permet d'éviter un certain nombre
 d'erreurs bêtes. Si ma mémoire est bonne, le préfixe "m_" est là pour
 désigner une variable membre.

 Dans le même genre, il y a la notation hongroise (heuuu.. là j'ai un
 doute, c'est hongroise ou polonaise ?) utilisée chez Microsoft, par
 exemple, mais là c'est une méthode plus douteuse, sur laquelle on peut
 polémiquer : elle consiste donner à la variable un préfixe qui indique
 son type.

-- 
Rodrigo Reyes,  rodrigo.reyes@lcr.thomson-csf.com
Mes propos ne sont pas ceux de mon employeur

     

From:           	Erik Mazoyer <erik.mazoyer@hyperoffice.fr>
To:             	"'java@u-strasbg.fr'" <java@u-strasbg.fr>
Subject:        	RE: Conventions de nommage
Date sent:      	Tue, 29 Feb 2000 10:22:23 +0100
Send reply to:  	java@u-strasbg.fr

Tu as raison, Microsoft utilise la notation hongroise.

Extrait de MSDN (Microsoft Developper Network) :
Hungarian Notation
Charles Simonyi
Microsoft Corporation
Reprinted November 1999
Summary: Charles Simonyi's explication of the Hungarian notation
identifier naming convention. (10 printed pages) A note from Dr. GUI:
Long, long ago in the early days of DOS, Microsoft's Chief Architect Dr.
Charles Simonyi introduced an identifier naming convention that adds a
prefix to the identifier name to indicate the functional type of the
identifier. This system became widely used inside Microsoft. It came to be
known as "Hungarian notation" because the prefixes make the variable names
look a bit as though they're written in some non-English language and
because Simonyi is originally from Hungary. As it turns out, the Hungarian
naming convention is quite useful-it's one technique among many that helps
programmers produce better code faster. Since most of the headers and
documentation Microsoft has published over the last 15 years have used
Hungarian notation names for identifiers, many programmers outside of
Microsoft have adopted one variation or another of this scheme for naming
their identifiers...



quand au m_, j'ai lu un jour qu'il fallait lire "my".
m_Flag = my flag.
m_ indique un champ d'instance de classe.
C'est d'ailleurs aussi, la notation utilisée par Microsoft en objet.

m_pMainWnd, champ d'instance de type pointeur sur la Wnd principale.

> -----Message d'origine-----
> De:	Rodrigo Reyes [SMTP:rodrigo.reyes@lcr.thomson-csf.com]
> Date:	mardi 29 février 2000 09:42
> À:	java@u-strasbg.fr
> Objet:	Re: Conventions de nommage
> 
> Philippe Guilbert <guilbertph@wanadoo.fr> writes:
> 
> > Qui pourrait me dire d'oùu sortent les conventions de nommages
> > suivantes 	int _currentFlag = 0; 	int m_Flag = 12; Je n'ai rien trouvé
> > sur ces deux notations dans le "Java Language Specification" qui
> > d'ailleurs n'est plus accessible depuis PHAROS apparemment ! Est-ce
> > standard ou sont-ce des idiosyncrasies ?
> 
>  L'idée générale de ces préfixes est de permettre une distinction
>  visuelle entre les variables membres et les variables locales (qui se
>  trouvent dans les méthodes). Cela permet d'éviter un certain nombre
>  d'erreurs bêtes. Si ma mémoire est bonne, le préfixe "m_" est là pour
>  désigner une variable membre.
> 
>  Dans le même genre, il y a la notation hongroise (heuuu.. là j'ai un
>  doute, c'est hongroise ou polonaise ?) utilisée chez Microsoft, par
>  exemple, mais là c'est une méthode plus douteuse, sur laquelle on peut
>  polémiquer : elle consiste donner à la variable un préfixe qui indique
>  son type.
> 
> -- 
> Rodrigo Reyes,  rodrigo.reyes@lcr.thomson-csf.com
> Mes propos ne sont pas ceux de mon employeur

     

From:           	Olivier Dedieu <Olivier.Dedieu@inria.fr>
Date sent:      	Tue, 29 Feb 2000 13:50:36 +0100 (MET)
To:             	java@u-strasbg.fr
Subject:        	Re: Conventions de nommage
Send reply to:  	java@u-strasbg.fr


>  Je n'ai rien trouvé sur ces deux notations dans le "Java Language
>  Specification" 

Les guidelines pour le codage ne sont pas explicitement decrite dans
la spec de Java.  Voila tout ce qui a ete referencé sur le sujet dans
Pharos (il y a celles de Sun) :
http://pharos.inria.fr/Java/search?term=s1:70


> qui d'ailleurs n'est plus accessible depuis PHAROS
>  apparemment ! 

L'URL n'etait plus valide. Ca pointe de nouveau sur le document
accessible. D'un maniere generale, les documents de references sont
classés avec le mot-clé 'References' apres vous pouvez rafiner pour
obtenir les 'book', 'tutorial', ... 
http://pharos.inria.fr/Java/search?term=s1:16

a+


---------------------------------------------------------------
 Olivier Dedieu - (INRIA - Bull / WebTools - Pharos)
 Web: http://www-sor.inria.fr/~dedieu  
 JavaChannel: http://pharos.inria.fr/Java/
 Pharos team: http://webtools.dyade.fr/pharos/
---------------------------------------------------------------

     

From:           	"Cedric Beust" <cedric@beust.com>
To:             	<java@u-strasbg.fr>
Subject:        	FW: Conventions de nommage
Date sent:      	Tue, 29 Feb 2000 09:54:50 -0800
Send reply to:  	java@u-strasbg.fr

> From: Philippe Guilbert [mailto:guilbertph@wanadoo.fr]

> 1) attributs qui commencent par un tiret bas, exemple :
>
> 	int _currentFlag = 0;
>
> 2) et dans le livre de Robinson et Vorobiev, certains attributs qui
> commencent par "m_", exemple :
>
> 	int m_Flag = 12;
>
> ???

Comme il a ete repondu, m est pour "data member", herite de C++. C'est une
convention classique dans le monde Windows (je ne pense pas que m_ vienne
de la notation hongroise, C++ n'existait pas quand Simonyi l'a inventee).

Le souligne' vient egalement de C++ (au passage, ce n'est pas conforme a
la norme, mais c'est quand meme devenu standard).

> Je n'ai rien trouvé sur ces deux notations dans le "Java Language
> Specification" qui d'ailleurs n'est plus accessible depuis PHAROS
> apparemment ! Est-ce standard ou sont-ce des idiosyncrasies ?

Il n'y a pas de standard dans ce domaine, et c'est un manque terrible.
Javasoft a "oublie'" de faire des recommandations dans ce domaine et c'est
ce qui nous vaut l'horrible

publib Foo(String myVariablee) {
  this.myVariable = myVariable;
}

Pourquoi c'est horrible ?

Il y a un bug dans le code ci-dessus, l'avez-vous remarque ?

Utiliser une notation syntaxique specifique pour les attributs (fields)
est un enseignement durement appris, c'est dommage qu'il ait ete perdu en
cours de route. C'est apparemment en cours de correction si j'en juge par
les extraits de code que je lis de plus en plus souvent.

Utilisez une convention, peu importe laquelle. Mais differenciez vos
attributs de vos variables locales.

Pour plus d'infos : http://beust.com/cedric/naming

--
Cedric
http://beust.com/cedric

     

Date sent:      	Tue, 29 Feb 2000 19:14:56 +0100
To:             	java@u-strasbg.fr
From:           	Virginie Watine <virginie.watine@isr.thomson-csf.com>
Subject:        	Re: FW: Conventions de nommage
Send reply to:  	java@u-strasbg.fr

At 09:54 29/02/2000 -0800, Cedric Beust wrote:

>Utilisez une convention, peu importe laquelle. Mais differenciez vos
attributs
>de vos variables locales.

J'approuve à 1000%.

--
Virginie Watine  I.S.R. 3, rue Ampere - 91349 Massy Cedex FRANCE
           Tel: +33 (0)1 69 76 23 52 - Fax: +33 (0)1 69 76 25 54
           Email: virginie.watine@isr.thomson-csf.com

     

To:             	java@u-strasbg.fr
Subject:        	Re: FW: Conventions de nommage
Date sent:      	Tue, 29 Feb 2000 19:28:24 +0100
From:           	Jacques Noye <Jacques.Noye@emn.fr>
Send reply to:  	java@u-strasbg.fr


Cedric Beust écrit :

> publib Foo(String myVariablee) {
>   this.myVariable = myVariable;
> }
> 
> Pourquoi c'est horrible ?
> 
> Il y a un bug dans le code ci-dessus, l'avez-vous remarque ?

Il risque d'y en avoir 2 autres : la classe publib ne va pas être 
trouvée et il va manquer un retour (puisque on retourne un objet de 
classe publib).

-- Jacques ;-)

PS : les noms verbeux sont aussi un problème et il y a pas mal de 
propriétés autres que la différence locale/attribut auxquelles on 
peut s'intéresser. Comme on s'appuie de plus en plus sur des
environnements de programmation sophistiqués, on pourrait aussi
imaginer un support de l'environnement de programmation (lint, 
coloriage dépendant d'une analyse du programme...).


     

Date sent:      	Wed, 01 Mar 2000 00:10:00 +0200
From:           	Philippe Guilbert <guilbertph@wanadoo.fr>
To:             	java@u-strasbg.fr
Subject:        	Re: Conventions de nommage
Send reply to:  	java@u-strasbg.fr

> Il n'y a pas de standard dans ce domaine, et c'est un manque terrible.
> Javasoft a "oublie'" de faire des recommandations dans ce domaine

Oui, effectivement : sur le site de SUN (
http://java.sun.com/docs/codeconv/index.html ), rien du tout sauf : 
"il est déconseillé d'utiliser _ et $ en début de nom de variable !"
C'est mince, effectivement ! Apparemment, SUN suppose que les
développeurs Java auront peut-être déjà acquis avec d'autres langages (C++
peut-être effectivement) des reflex de nommage, puisqu'il se content de
RESTREINDRE certaines habitudes prises logiquement AILLEURS...

> Pour plus d'infos : http://beust.com/cedric/naming

Oui, Cédric, je vais lire ton article tout de suite...

Mais alors vous m'effrayez quand vous parlez conventions Microsoft à la
sauce hongroise ! Qui parmi vous osera frayer un chemin à un standard de
la LISTE JAVA ??????

A bientôt !

Phil

     

Date sent:      	Wed, 01 Mar 2000 14:50:02 +0100
From:           	William Dodé <wilk@chez.com>
Send reply to:  	wilk@chez.com
Organization:   	Informaticien Indépendant
To:             	java@u-strasbg.fr
Subject:        	Re: FW: Conventions de nommage

Salut,

Quelles sont les conventions pour les noms des packages si l'on n'a pas de
nom officiel tels que com.sun etc... Je souhaiterai difuser quelques
sources et je me pose la question. En parcourant les divers petits sources
que j'ai péché sur le net je n'ai pas pu trouver de règle... Pour
l'instant je procède comme cela : Classes génériques :
 wilk.generic.swing : classes génériques ayant rapport avec swing
 wilk.generic.sql : idem raport avec sql
 wilk.generic.print : etc...

Projets indépendants :
 wilk.clientX.nom_projet_1 : projet indépendant
 wilk.clientY.nom_projet.nom_sousprojet... etc

Un truc que je ne comprends pas trop sur les imports, pourquoi ne pas
faire d'imports * ? J'aurait tendance à en rajouter pour détecter à la
compilation si je n'ai pas utilisé un nom de fonction similaire à un
autre. Tant qu'à faire...

ps: très bien les articles sur les conventions de nommage, j'ai perdu
tellement de temps à reprendre des vieux sources perso à cause d'erreurs
de nommage (faiblesses d'autodidacte ?...)

Existe-t-il des programmes qui se chargent d'appliquer ces règles sur un
source existant ?

a +++


-- 
William Dodé --- Informaticien Indépendant
http://www.chez.com/wilk <mailto:wilk@chez.com>

C'est fini ! Retour à l'accueil de la pseudo-archive