IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Underscore convention de nommage


Sujet :

C#

  1. #1
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut Underscore convention de nommage
    Bonjour,

    J'utilise underscore pour préfixer mes variables privées et protected.
    De la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    public class Toto
    {
        private string _nom;
        public string Nom {get {return _nom;}}
     
       public function ChangeNom(string nom)
       {
          _nom = nom;
       }
    }
    Un collègue me dit que le underscore en préfixe ne sera bientôt plus accepté supporté par le compilateur.
    Avez- vous des infos la dessus ?

    Pour être plus précis, il parlait plutôt du VB.Net. Pouvez-vous confirmer?

    Merci

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 075
    Points
    28 075
    Par défaut
    Plus accepté par qui ?

    Les conventions de nommages ne sont que des règles de bonnes pratiques. Intrinsèquement rien en t'oblige à les appliquer.

    Le problème est que chaque langage, chaque communauté, etc ont tendance à avoir leur propres règles parfois contradictoire les une avec les autres. Ensuite chaque développeur peut aussi avoir tendance à prendre ses propres libertés avec les règles qu'il est censé appliquer.

    Sauf à avoir des règles réellement imposées, par exemple convention au sein de ton entreprise, je ne vois pas ce qui pourrait ne plus accepter un nommage plus qu'un autre.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    merci pour la réponse.
    CF edit :
    "...ne sera plus supporté par le compilateur"

  4. #4
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 075
    Points
    28 075
    Par défaut
    Je n'en ai pas entendu parler, et j'y crois peu, pour le compilateur, un nom est un nom, de toute façon le nom des variables n'est pas utiliser dans le code compilé (il n'est même pas conservé normalement).

    Ceci dit, si tu as de la littérature sur le sujet, je suis intéressé.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  5. #5
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    Eh bien non, je n'arrive pas à confirmer cette information.
    Personnellement, je doute que ce soit vrai...

  6. #6
    Membre expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Points : 3 568
    Points
    3 568
    Par défaut
    J'y crois pas non plus. Au pire, ça pourrait être mis en warning par défaut dans les outils style StyleCop, Resharper,etc... sans plus.
    Microsoft MVP : Windows Platform

    MCPD - Windows Phone Developer
    MCPD - Windows Developer 4

    http://www.guruumeditation.net

    “If debugging is the process of removing bugs, then programming must be the process of putting them in.”
    (Edsger W. Dijkstra)

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 255
    Points : 193
    Points
    193
    Par défaut
    En tous cas personnellement, je trouve ça une bonne pratique de préfixé ses variable privée par un underscore.
    Life myLife = new Life ("eat","sleep","code");

  8. #8
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    En tous cas personnellement, je trouve ça une bonne pratique de préfixé ses variable privée par un underscore.
    Ce n'est pas mon cas. Je sais que c'est une question de goûts et de couleurs, mais je trouve que c'est de la surinformation qui ne sert pas à grand chose.

    Quelle différence y a t-il avec m_* ou même la notation hongroise ? Robert C. Martin recommande dans son bouquin "Clean Code" d'éviter toutes ces notations.

    De toute manière, l'IDE est capable de dire de quelle genre de variable il s'agit ...


    Je n'en ai pas entendu parler, et j'y crois peu, pour le compilateur, un nom est un nom, de toute façon le nom des variables n'est pas utiliser dans le code compilé (il n'est même pas conservé normalement).
    Le compilateur ne se fiche pas des noms de variable. Voici les nommages autorisés en VB.Net : http://msdn.microsoft.com/fr-fr/libr.../81ed9a62.aspx

    Le nom des variables est gardé en IL en tout cas, sinon nous ne les aurions pas en décompilant. Par contre, ils sont perdus après la compilation JIT je pense.


    Pour ce qui est du problème initial, je n'en ai pas entendu parler et ça m'étonnerait qu'il se mettre à changer ça du jour au lendemain (Imagine les millions ou milliards de lignes de code à changer). Surtout que sur le lien que j'ai cité plus haut, c'est la doc de VS2012 et les underscore sont toujours utilisables. Tu est donc tranquille pendant un moment !
    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

  9. #9
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Citation Envoyé par MaximePalmisano Voir le message
    Le nom des variables est gardé en IL en tout cas, sinon nous ne les aurions pas en décompilant. Par contre, ils sont perdus après la compilation JIT je pense.
    Le nom des variables n'est pas gardé dans l'IL. Par contre ils sont conservé dans le fichier de symbole (pdb).

  10. #10
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    Le nom des variables n'est pas gardé dans l'IL. Par contre ils sont conservé dans le fichier de symbole (pdb).
    Comment expliquer qu'on ait les bons noms de variable en décompilant une dll sans pdb ?
    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

  11. #11
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 075
    Points
    28 075
    Par défaut
    attention au mode de compilation. En mode debug, le code source est inclu au binaire.

    Et puis en parlant de code binaire, on exclu le code IL. LE code IL n'est pas un code compilé, mais simplement un langage de programmation (code source) qui est ensuite interprété à l’exécution.
    La "compilation" sous .Net n'est pas une, c'est juste une conversion de code source d'un langage (VB, C#, ...) en code source IL
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  12. #12
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    Merci pour vos réponse.

    Je ferme la discussion. A priori le underscore en début de variable sera encore supporté pendant plusieurs années (dizaines d'années ? )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Convention de nommage
    Par ites dans le forum Langage SQL
    Réponses: 11
    Dernier message: 12/09/2008, 17h00
  2. [PL/SQL] Convention de nommage
    Par dcollart dans le forum Oracle
    Réponses: 1
    Dernier message: 10/07/2006, 16h50
  3. Convention de nommage J2EE ? Ou ?
    Par n!co dans le forum Java EE
    Réponses: 11
    Dernier message: 19/01/2006, 09h22
  4. Petite question sur les conventions de nommage en Java
    Par implosion dans le forum Langage
    Réponses: 7
    Dernier message: 18/01/2006, 15h54
  5. Convention de nommage dans le code
    Par firejocker dans le forum Langage
    Réponses: 4
    Dernier message: 01/08/2005, 14h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo