Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.9.1 - Qt Creator : 4.3.1 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

Les bonnes pratiques en C++

Je ne sais pas pour vous mais j'ai lu plusieurs livres sur les bonnes pratiques en programmations, avec des conseils souvent opposé d'un livre a l'autre ;)

Je pense particulièrement au livre "Tout sur le code" de Microsoft Press qui fut un temps un de mes livres de chevet...

Et vous quel fut le livre qui vous a bien servi dans ce domaine ?

Réponses

  • Coïncidence amusante, je vient de voir que chez D-Booker, on peux trouver ce livre la "Coder efficacement" un peu dans la même optique mais spécifique a notre langage préféré ;)

    image

    Ce genre de livre devrait être imposer en lecture a tout ceux qui découvre le C++ (surtout notre forte proportion d'étudiants) mais aussi au vieux de la vieille (comme moi) qui pourront se mette au gout du jours des nouvelles façon de coder en C++.

    L'autre jours, chez un client, un petit jeune m'a dis "tu codes a la papa, faut évoluer papy", vraiment aucun respect, ces jeunots :D

    je me suis donc mis en quête de découvrir ces nouvelles façons de coder, alors je me souhaite d'avance une bonne lecture mais je ne suis pas sur que la nouveauté soit synonyme d’efficacité, je verrai bien...

    Et vous, quel sont vos livres de chevet ?
  • Le livre de Philippe (koala01 sur les autres forums ;) ) est régulièrement cité sur les forums C++ francophones. C'est un livre très intéressant à lire.

    Un autre que j'aime bien, c'est Game Programming Patterns (version en ligne gratuite, version papier payante). A jour, très intéressant pour de nombreux design pattern, pas uniquement pour les jeux.

    Le troisième que je conseille, c'est Effective Modern C++, probablement un des meilleurs livre pour le C++11/14. (Il existe d'autres livres très bien, comme "C++ Primer", "The C++ Language" ou "Tour of C++", qui intègrent le C++11, mais dans un cours plus général. Le livre de Meyers contient uniquement les mises à jour du C++11/14).

    Il y a pleins d'autres livres que je conseille, mais ces 3 là sont un bon début pour les bonnes pratiques ;)
  • Merci pour tes liens.

    Perso, je privilégie le Français car il m'arrive trop souvent de mal traduire certaines explications dans les livres en VO...
  • Il faut avouer que tu n'es pas le seul :) J'aime bien aussi lire en Français, ça repose. Malheureusement, il manque pas mal de ressources en Français.

    (HS : d’ailleurs, j'en profite pour signaler que je suis entrain de mettre à jour ma série de tuto sur l'installation de Qt 5.5 : Installation et premiers pas avec Qt 5.5 ;) )
  • Quel dommage que l'on en ai pas une copie sur QtFR ;)
  • (C'est sous licence Creative Common, ne te prive pas)
  • Bonjour à vous deux,

    perso je bouquine de temps en temps le livre cité par gbdivers de Stroustrup : The C++ Programming Language (c++11).
    Très bon bouquin à mon goût. Je révise de temps en temps :D
    Sans compter sur le blog de gbdivers. ]:D
  • Ah, ok. C'est toi qui lit mon blog. Je me demandais qui était ce "vous avez eu 1 visite ce mois ci". :)

    Ce livre est très bien, mais pas très pédagogique (et pas écrit de toute façon pour être pédagogique. C'est pour cela qu'il a écrit d'autres livres)
  • Bonsoir !

    Moi les bonnes pratiques je les ai de naissance. Donc pas besoin d'un bouquin. Mais je relis parfois Stroustrup pour corriger ses fautes.
  • rhooo, quel gros appel au troll bien velus :D
  • Bien sûr, je déconne. Plus sérieusement, j'avais un bouquin il y a des années (je dois toujours l'avoir d'ailleurs) c'était "Proverbes de programmation" chez Dunod (auteur : Arsac ?? faut que je recherche)
    Paru avant que le C++ n'existe.
    Grandiose. Des conseils de bonne pratique pas seulement pour coder, mais (surtout) pour analyser en amont. Développer des algos efficaces, minimiser le risque de bugs... Excellent. Fabuleux.
    M'a laissé un souvenir lumineux.
  • Tient, je vais voir si ton bouquin est encore "trouvable"...
  • Comment organisez-vous vos fichiers en-têtes ?

    Un fichier .h = ...

    1/ une seule classe ?
    2/ plusieurs classes conceptuellement liées ?
    3/ autre ?

    exemple de classes liées :
    une ScoreCard gère une grande fonctionnalité.
    L'affichage est fait par une QTableView
    qui a pour modèle un ScoreCardModel
    elle s'appuie sur une classe Grid
    qui elle-même est un assemblage de Cell
    Model, Grid, Cell ne sont pas connus dans le reste de l'appli.
    Vous mettez tout en vrac dans le même en-tête, ou vous faites 5 headers ?
  • 1/

    La définition de l'api complète d'une classe (surtout avec Qt, les macros Q_OBJECT, Q_PROPERTY, etc. qui vont pour interfacer avec le QML, les signaux et slots, etc) + la doc, remplissent généralement assezle fichier .h pour ne pas avoir à mettre plusieurs classes dans le même fichier;
  • Salut,
    je ferai au minimum 3 .h :
    1 pour la vue, 1 pour le modèle, 1 ou 2 pur Grid et Cell.
    Après, en général je fais un fichier xxx_p.h pour chaque .h et utilise les d/q-pointer comme le fait Qt.
  • @babaOroms : "d/q-pointer" ???
  • q/d pointer = opaque pointer = private implementation = implicite sharing.
    Cf https://wiki.qt.io/D-Pointer

    Avec le C++11, il n'est plus nécesssaire d'avoir des QObject pour créer des slots, et donc j'utilise beaucoup moins les classes private (et donc la nécessité d'avoir un fichier .h supplémentaire). J'utilise un simple struct, qui est définie dans le .cpp

    // . h

    class MonObject : public QObject {
    public:
    explicit MonObject(QObject* parent = nullptr);
    virtual ~MonObject();
    private:
    struct MonObjectPrivate;
    QScopedPointer<MonObjectPrivate> d_;
    };

    // .cpp

    struct MonObject::MonObjectPrivate {
    ...
    };

    ...
Connectez-vous ou Inscrivez-vous pour répondre.