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 :

[Débat] convention de nommage


Sujet :

C++

  1. #61
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Je suis d'accord avec le début de ton post, mais:
    1. Bien que j'aie pris le réflexe de comparer explicitement pointeurs et entiers, je ne compare pas un booléen à true ou false, puisque le booléen représente déjà une condition.
    2. Franchement, les préfixes, ça aide. Autant pour m_ on peut à la rigueur s'en passer, autant pour les variables statiques et globales on a besoin de tous les rappels qu'on peut avoir.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  2. #62
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Certes, on peut reformater, et c'est ce que je fais régulièrement. Mais je ne dis pas le bronx quand il s'agit de fusionner des codes via git -- quand il n'a a donc pas de commit-hook qui reformate à la volée.

    Pour les "m_", ma foi je m'en sers, et j'avoue que c'est bien pratique quand on reprend des codes qui sont tout sauf courts. Cela permet de voir d'où vient une variable sans pourrir le code avec des this-> qui ne sont pas mieux. Rarement, cela permet aussi de réaliser des micro-optimisations à moindre coût : on calcule un résultat via une boucle qui stocke les valeurs intermédiaires dans une variable locale, et on "sauve/commite" à la fin dans une variable membre éponyme, au détail du "m_" en plus.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  3. #63
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Pour les espaces/tabs, au pire on peut demander à l'IDE de transformer les tabs en espaces. La plupart des IDE le font maintenant.

    Concernant les préfixes, je suis très étonné par vos remarques. Mais elles sont sensées. Comme quoi, il faut toujours se remettre en question.

    Note: c'est moi que je remet en question hein, pas vous
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  4. #64
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Citation Envoyé par r0d Voir le message
    Pour les espaces/tabs, au pire on peut demander à l'IDE de transformer les tabs en espaces. La plupart des IDE le font maintenant.
    Sauf que souvent, ça fait de la merde. Globalement, il faut distinguer ce que j’appelle l’indentation sémantique (je commence un nouveau bloc, j’indente) et l’indentation esthétique (je fais commencer mes paramètres sur une nouvelle ligne et sur la même colonne).

    L’indentation sémantique se gère très bien avec des tabulations. L’indentation esthétique se gère uniquement avec des espaces, et mélanger les deux donne généralement un résultat catastrophique dès qu’on change la taille des tabulations --> obligé de gérer l’indentation sémantique avec des espaces…

    C’est d’autant plus con que globalement, l’indentation « esthétique » devrait être uniquement de l’affichage au niveau de l’IDE, pas exister réellement dans le fichier. Quant à l’indentation sémantique, je suis de ceux qui seraient partisan d’une erreur de compilation (comme en python) si elle n’est pas bonne .

  5. #65
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 113
    Points : 32 960
    Points
    32 960
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par r0d Voir le message
    Pour les espaces/tabs, au pire on peut demander à l'IDE de transformer les tabs en espaces. La plupart des IDE le font maintenant.
    Sauf qu'à plusieurs sur un projet, avec plusieurs centaines/milliers de fichiers et d'autant plus de lignes...
    Si tu t'amuses à réindenter, tu vas surtout pourrir ton commit
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #66
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Citation Envoyé par white_tentacle Voir le message
    Sauf que souvent, ça fait de la merde. Globalement, il faut distinguer ce que j’appelle l’indentation sémantique (je commence un nouveau bloc, j’indente) et l’indentation esthétique (je fais commencer mes paramètres sur une nouvelle ligne et sur la même colonne).

    L’indentation sémantique se gère très bien avec des tabulations. L’indentation esthétique se gère uniquement avec des espaces, et mélanger les deux donne généralement un résultat catastrophique dès qu’on change la taille des tabulations --> obligé de gérer l’indentation sémantique avec des espaces…

    C’est d’autant plus con que globalement, l’indentation « esthétique » devrait être uniquement de l’affichage au niveau de l’IDE, pas exister réellement dans le fichier. Quant à l’indentation sémantique, je suis de ceux qui seraient partisan d’une erreur de compilation (comme en python) si elle n’est pas bonne .
    Tout-à-fait d'accord, j'ai pris les mêmes réflexes de séparation entre les deux types.

    Même si je ne fais jamais ceci:
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    void foofoofoo(int bar,
             int baz);
    Quand je trouve que ceci est plus simple et tout aussi lisible:
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void foofoofoo(
    	int bar,
    	int baz);
    (dépendant du langage ou du beautificateur intégré à l'IDE, j'utilise une tab ou un espace simple)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #67
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Mouais. Je sais pas. Je n'ai jamais rencontré de problème d'indentation. Mais j'avoue que sur la majorité des projets sur lesquels j'ai travaillé, tout les développeurs utilisaient le même IDE. Et même lorsque ce n'était pas le cas, c'étaient des IDE suffisamment bien faits pour qu'il n'y ait pas ce problème (en général code::blocks && msvc).

    Quant à la question de l'indentation "esthétique", je découvre encore quelque chose. Vous écrivez donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void foofoofoo(
    	int bar,
    	int baz);
    Pourquoi ne pas écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void foofoofoo(int bar, int baz);
    J'ai l'impression qu'il y a encore quelque chose qui m'échappe.
    Le problème c'est lorsqu'il y a trop de paramètres?
    Si c'est le cas, je considère que c'est une erreur de conception, pas une erreur d'indentation. Il faut dire que j'ai été élevé avec la MFC, et que depuis que j'en suis sorti, je ne supporte plus les fonctions avec trop de paramètres. Au pire je passe par une structure conteneur.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  8. #68
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Pour être précis, généralement, dans mes projet personnels en C ou C++ j'écris ça:
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void foofoofoo(
    	int bar, //[in] Description de ce que fait le paramètre
    	int baz  //[in] Description de ce que fait le paramètre
    	); //Description courte de valeur de retour, s'il y en a une
    Bien sûr, cela ne s'applique pas aux langages où j'utilise un générateur de doc.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #69
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 045
    Points : 11 368
    Points
    11 368
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Pour être précis, généralement, dans mes projet personnels en C ou C++ j'écris ça:
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void foofoofoo(
    	int bar, //[in] Description de ce que fait le paramètre
    	int baz  //[in] Description de ce que fait le paramètre
    	); //Description courte de valeur de retour, s'il y en a une
    Bien sûr, cela ne s'applique pas aux langages où j'utilise un générateur de doc.
    Tu n'utilises pas Doxygen ?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  10. #70
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Citation Envoyé par r0d Voir le message
    Quant à la question de l'indentation "esthétique", je découvre encore quelque chose. Vous écrivez donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void foofoofoo(
    	int bar,
    	int baz);
    Pourquoi ne pas écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void foofoofoo(int bar, int baz);
    J'ai l'impression qu'il y a encore quelque chose qui m'échappe.
    Le problème c'est lorsqu'il y a trop de paramètres?
    Le problème, c'est aussi (et surtout) si les paramètres sont des types assez longs, dans des namespaces, parfois des instanciations particulière d'une classe template.

    Certains trouveront parfois cela beaucoup trop verbeux, mais il n'est pas rare que dans mon code le nom complet d'un type dépasse les 30 caractères...

  11. #71
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void foofoofoo(
    	int bar, //[in] Description de ce que fait le paramètre
    	int baz  //[in] Description de ce que fait le paramètre
    	); //Description courte de valeur de retour, s'il y en a une
    Moi j'ai arrêté d'appliquer une méthode systématique pour les commentaires. Désormais, je ne commente que ce qui n'est pas clairement explicité sans ambigüité par les noms de variables et de fonctions. Car le problème des commentaires, c'est un peu comme la duplication de code: ça implique des modifications supplémentaires à chaque modification. Je préfère donc éviter tant que faire se peut.

    Citation Envoyé par white_tentacle Voir le message
    Le problème, c'est aussi (et surtout) si les paramètres sont des types assez longs, dans des namespaces, parfois des instanciations particulière d'une classe template.

    Certains trouveront parfois cela beaucoup trop verbeux, mais il n'est pas rare que dans mon code le nom complet d'un type dépasse les 30 caractères...
    Personnellement, dans ce cas j'utilise des typedef. Cela permet de limiter la verbosité, mais surtout, ça permet d'enrichir la sémantique.

    Comme quoi, tous les chemins mènent à Rome
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

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