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 :

Pourquoi n'utilisez-vous pas la convention de nommage de la STL ?


Sujet :

C++

  1. #21
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Et pourtant, quand on lit leurs docs, on retrouve des codes où ils nomment à la Pascal, comme si ça les soulageait de pouvoir ENFIN placer des majuscules
    Ah oui, et où ça ?
    Si c'est pour nommer les concepts de CetteManière, il s'agit de la manière standard.

  2. #22
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 142
    Par défaut
    Non non, c'est pas pour des concepts.
    Rien qu'ici, par exemple : http://www.boost.org/doc/libs/1_36_0.../tutorial.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    struct HelloWorld 
    {
      void operator()() const 
      { 
        std::cout << "Hello, World!" << std::endl;
      } 
    };

  3. #23
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut expériences
    Si le propos n'est pas d'aider à l'écriture mais à la lecture, où sont les différences?

    Comparez:

    • ceci_est_un_mot
    • ceciEstUnMot


    En remplaçant l'espace par '_', la frontière de chaque mot est préservée.
    Ce qui saute aux yeux, c'est la suite de mots puis leurs liaisons par des '_' discrets qui nous indiquent qu'il s'agit d'un "nom composé".

    Dans la deuxième notation, on voit d'abord un tas qui signale qu'il ne peut s'agir que d'un "nom composé". Nous décodons les mots dans un deuxième temps... et on va sans doute être un peu choqué par la difficulté qu'ajoute ce formatage à notre compréhension de "ceci est un mot".

    Le fait que çà ait un sens n'est pas neutre dans la perception de "lisibilité". Avec une suite du genre "xyz foo bar", ça donne:
    • xyz_foo_bar
    • xyzFooBar


    Côté lisibilité, les différences s'estompent: normal, il n'y a plus grand chose à lire! Contraitement au cas précedent, la deuxième forme est peut être plus rassurrante, elle présente un nom composé qu'on décodera (peut être) plus tard...

    Cette petite expérience devrait nous faire préférer le '_' dans codage des noms composés lorsqu'ils s'agit d'une suite (importante) de mots qui méritent d'être lus et du camelCase ailleurs.

    Mais je ne pense pas que cette définition soit suffisament stricte pour être standardisable.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #24
    Membre émérite Avatar de HanLee
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2004
    Messages : 738
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Si le propos n'est pas d'aider à l'écriture mais à la lecture, où sont les différences?

    Comparez:

    • ceci_est_un_mot
    • ceciEstUnMot


    En remplaçant l'espace par '_', la frontière de chaque mot est préservée.
    Ce qui saute aux yeux, c'est la suite de mots puis leurs liaisons par des '_' discrets qui nous indiquent qu'il s'agit d'un "nom composé".

    Dans la deuxième notation, on voit d'abord un tas qui signale qu'il ne peut s'agir que d'un "nom composé". Nous décodons les mots dans un deuxième temps... et on va sans doute être un peu choqué par la difficulté qu'ajoute ce formatage à notre compréhension de "ceci est un mot".
    D'un point de vue ergonomicien, la différence de lisibilité n'est PAS subjective.
    Elle encouragerait plutôt la première forme (elle casse l'uniformité).

    Par contre, on a tendance à trouver la seconde forme plus jolie, parce que le '_' rompt avec l'homogénéité d'un mot.
    Typographiquement, c'est moche parce que c'est pas bien aligné avec les lettres.

    ceci-est-un-mot est plus agréable, moins agressif, par exemple.

  5. #25
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par three minute hero Voir le message
    Le plus troublant c'est le cas des développeurs de boost.
    Ils ont fait le choix de nommer à la C pour faire corps avec la STL (et dans leur cas, faire corps, c'est peu dire). Et pourtant, quand on lit leurs docs, on retrouve des codes où ils nomment à la Pascal, comme si ça les soulageait de pouvoir ENFIN placer des majuscules, comme si en réalité ça les pesait de nommer à la C et que s'ils avaient vraiment eu le choix, ils auraient nommé à la Java.
    Utiliser des conventions de nommage differentes pour le code d'une bibliotheque et les exemples montrant comment s'en servir est une technique qui permet de differencier facilement les deux. Je doute qu'il faille chercher plus loin.

  6. #26
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Citation Envoyé par three minute hero Voir le message
    Deuxièmement :
    J'ai bien aimé l'argument disant que la STL se fondait un peu dans les mot-clés du langage lui-même (int, double / vector, string). Cependant, il semblerait que les concepts que nous réservent C++0x aient adoptés un nommage CamelCase (tels que InputIterator, OutputIterator). On aura donc du CamelCase dans la STL. Comment différencier d'un coup d'œil un concept de la STL avec une classe maison si un using namespace std est présent ?
    Par ailleurs, quelle convention pensez-vous adopter pour vos concepts ?
    La plupart des biblios de boost ont toujours nommés leurs concepts en camel case, probablement pour mimer la convention usuelle utilisée dans les arguments template (chose qui a bien peu d'importance vu que les arguments template ne peuvent en aucun cas sortir de leur classe/fonction).

  7. #27
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Personellement, je n'aime pas trop la_notation_comme_ca, justement parce que le '_' ressemble trop à une espace, et que je trouve que quand on lit du code style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ma_classe_qui_est_tres_jolie mon_objet_a_moi;
    On n'arrive justement pas très bien à savoir d'un coup d'œil où s'arrête un nom, où commence l'autre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaClasseQuiEstTresJolie monObjetAMoi;
    A l'avantage de prendre moins de place à l'écran, et surtout de bien packager ce qui va ensemble. Là où je veux voir une espace, ce n'est pas entre les parties d'un identificateur, mais entre les identificateurs seulement. C'est là qu'elle a sa place.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  8. #28
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 142
    Par défaut
    En fait, je ne souhaitais pas lancer un débat sur les préférences de chacun en ce qui concerne le nommage en général, mais plutôt dépendemment d'un langage et de sa librairie standard.
    Par ailleurs, en ce qui me concerne, je n'ai pas de préférence particulière entre le CamelCase et le… comment il s'appelle, l'autre, formellement ?

    @zais_ethael
    Je ne parle pas de Boost quand je parle des concepts. Sur les pdf du comité ISO de C++0x concernant les concepts, on a un aperçu des noms que vont porter les concepts de la future STL.

    @Jean-Marc.Bourguet
    Oui, tu dois avoir raison

  9. #29
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Pour ma part, je n'utilise pas la convention de nommage à la SL/STL en général... Mais :
    - Si dans un projet j'utilise beaucoup Boost par exemple, j'aurais tendance à vouloir homogénéiser mon code... Par contre rien à faire, je commence le nom de mes classes par une majuscule.

    La bibliothèque que je trouve la plus lisible est en fait Loki

Discussions similaires

  1. Quel framework PHP utilisez-vous et pourquoi ?
    Par Lana.Bauer dans le forum Bibliothèques et frameworks
    Réponses: 194
    Dernier message: 04/02/2014, 14h33
  2. Pourquoi n'utilisez vous pas SAP BI
    Par Bill54 dans le forum Approche théorique du décisionnel
    Réponses: 38
    Dernier message: 04/12/2013, 16h24
  3. [Templates] Quel système utilisez-vous ? Pourquoi ?
    Par narmataru dans le forum Bibliothèques et frameworks
    Réponses: 270
    Dernier message: 26/03/2011, 00h15
  4. Quelle version d'Eclipse utilisez-vous ? Pourquoi ?
    Par Ricky81 dans le forum Eclipse
    Réponses: 54
    Dernier message: 28/08/2006, 09h10
  5. [langage] Pourquoi utilisez-vous Perl ?
    Par R3iTt0R dans le forum Langage
    Réponses: 10
    Dernier message: 23/06/2004, 14h17

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