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 :

"Modern C++ Design" ringard ?


Sujet :

C++

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut "Modern C++ Design" ringard ?
    Hello,

    Quelqu'un aurait-il déjà fait le compte de ce qui aujourd'hui peut être considéré comme obsolète dans le livre Modern C++ Design, du fait de l'existence de Boost et de l'arrivée de C++11 ?

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Doubs (Franche Comté)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    Bonjour,

    Je n'ai pas pris le temps de le faire, mais la seul chose que je vois de vraiment obslète ca serait l'utilisation de Loki pour les typelist (mpl propose mieux), et certains code à base de typelist qui peuvent se simplifier avec les variadics.

    Sinon l'ensemble des idées évoqués et des patterns implémentés (une partie des patterns du GoF qui ont fait leurs preuves) restent toujours d'actualité.

    Si je prends le somaire :

    I.

    1. La nouvelle norme et boost n'y changent rien.
    2. Il pourrait rajouter qu'il existent beaucoup de type traits dans la bibliothèques standards et boost, et préciser que des "type intégrale" (un type qui représente un entier) existent dans boost et la bibliothèque standard.
    3. Celui-ci pourrait être remanier en profondeur en parlant de mpl et des variadics.
    4. Rien à changer, même si ca existe dans boost, en exliquer le fonctionnement fait partie de l'objectif de l'auteur.

    II.

    5. Bien que ce pattern existent maintenant dans boost et dans la bibliothèque standard. Un livre parlant de conception qui ferait une impasse total dessus oculterait un gros morcreau (pattern command). Coté techniques, ca reste toujours valable.
    6. La nouvelle norme change un peu la donne pour le coté MT, je ne vois rien d'autre (pattern singleton).
    7. Celui-ci pourrait parler de std/boost::shared_ptr/unique_ptr/weak_ptr, mais ce pattern offre des questions de designs via politique intéressant (non-orthogonalité du MT/OwnerShip) et montre la richesse du design par politiques (possibilité de générer facilement un ensemble assez grand de pointeurs intelligents tous différent).
    8. La nouvelle norme et boost n'y changent rien. (object factory)
    9. La nouvelle norme et boost n'y changent rien. (abstract factory)
    10. La nouvelle norme et boost n'y changent rien. (visitor)
    11. La nouvelle norme et boost n'y changent rien. (multi-dispatch)

    On peut aussi noter qu'en général quand boost est mentionné dans un livre c'est que l'élément de boost dont on parle va passer dans la prochaine norme, sinon il n'est en général cité qu'à titre d'exemple de bibliothèque (ie c'est pas parcequ'un concept a été introduit d'en boost que la littérature proposant une implémentation différente du concept est intuile).

    Par contre, ce qui commence à devenir un peu plus obsolète (ama), c'est Loki.

    Edit: Pour les visitor et factory, boost propose bien quelque chose, mais c'est assez différent de l'implémentation proposé par Alexandrescu (donc ca ne change rien au contenue du chapitre, AMA).

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Citation Envoyé par Flob90 Voir le message
    Je n'ai pas pris le temps de le faire, mais la seul chose que je vois de vraiment obslète ca serait l'utilisation de Loki pour les typelist (mpl propose mieux), et certains code à base de typelist qui peuvent se simplifier avec les variadics.
    C'est justement ce qui a motivé la création de ce fil.

    Citation Envoyé par Flob90 Voir le message
    I.
    3. Celui-ci pourrait être remanier en profondeur en parlant de mpl et des variadics.
    Le problème est que beaucoup des éléments de ce chapitres sont utilisés dans d'autres, notamment la deuxième partie (ex : fabrique abstraite).

    Citation Envoyé par Flob90 Voir le message
    4. Rien à changer, même si ça existe dans boost
    Quelle bibliothèque ?

    Citation Envoyé par Flob90 Voir le message
    II.

    5. Bien que ce pattern existent maintenant dans boost et dans la bibliothèque standard. Un livre parlant de conception qui ferait une impasse total dessus occulterait un gros morceau (pattern command). Coté techniques, ça reste toujours valable.t
    Une référence à ce qui existe actuellement serait toutefois bienvenu.

    Citation Envoyé par Flob90 Voir le message
    Par contre, ce qui commence à devenir un peu plus obsolète (ama), c'est Loki.
    Loki étant une transposition (et plus, à présent) du livre, j'en déduis que ce qui reste intéressant dans le livre n'est pas le côté fonctionnel, mais une exploration approfondie du codage à base de templates ?

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Doubs (Franche Comté)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    Quelle bibliothèque ?
    boost.pool, ca s'appelle pas SmallObjectAllocator, mais les principes sont assez proche (on alloue un segment continue puis on le gère en interne).

    Une référence à ce qui existe actuellement serait toutefois bienvenu.
    Je sais pas si Alexandrescu a prévu de faire une réédition, mais ca ne change rien à le contenue profond du livre.

    Loki étant une transposition (et plus, à présent) du livre, j'en déduis que ce qui reste intéressant dans le livre n'est pas le côté fonctionnel, mais une exploration approfondie du codage à base de templates ?
    Le titre du livre étant "Modern C++ Design" ce qui est intéressant est la mise en avant de la possibilité en C++ (grâce aux template) de décomposer un design en comportements hortogonaux et de les assembler à la compilation.

    Au fond tant que la syntaxe du C++ permet l'utilisation de l'héritage et des TTP les idées évoquées restent valables.

  5. #5
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut
    Je sais pas si Alexandrescu a prévu de faire une réédition, mais ca ne change rien à le contenue profond du livre.
    Si, il en a parlé lors des conférences Going Native il y a quelqeus semaines. En gros, il pense pouvoir faire une nouvelle version avec le contenu de l'ancien très condensé mais avec de nouveaux trucs, notemment exploitant les variadic template avec des paramettres variadic template... pour faire des policy encore mieu.

    Je vous invite à regarder le premier ou le second "panel" de Going Native où lui et Herb Sutter parle des livres à venir et du fait que pour certains il va falloir qu'on ai plus d'expérience pratique avec C++11 pour rassembler de vrai conseils dans des livres.

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