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

Exceptional C++ Style

Date de publication : 08/06/2006 , Date de mise à jour : 27/03/2008

Par Matthieu Brucher (http://matthieu-brucher.developpez.com/) (Blog)
 

Critique d'Exceptional C++ Style d'Herb Sutter

I. Description
II. Table des matières
III. Critique : Très utile
IV. Liens annexes


I. Description

Le "style" d'un logiciel consiste à trouver l'équilibre entre ce qu'on appelle l' overhead et la fonctionalité, l'élégance et la maintenabilité, la flexibilité et l'excès. Dans Exceptional C++ Style , le gourou légendaire du C++, Herb Sutter présente 40 nouveaux scénarios de programmation afin d'analyser non seulement le quoi, mais aussi le pourquoi et de vous aider à trouver l'équilibre dans votre logiciel.

Organisé autour de problèmes et solutions pratiques, ce livre offre une nouvelle vision de détails cruciaux du C++ et de leur relations et de nouvelles stratégies pour les techniques de programmation clé du C++ actuel - y compris la programmation générique, la STL, les exceptions. Vous trouverez des réponses à des questions telles que :

  • Que peut-on apprendre à propos du design de bibliothèques à partir de la STL ?
  • Comment éviter de créer du code templaté non générique ?
  • Pourquoi ne pas spécialiser des fonctions tempaltées ? Que faire à la place ?
  • Comment la gestion des exceptions peut-elle aller au-delà des instructions try et catch ?
  • Quand et comment exposer les parties privées d'une classe ?
  • Comment créer des classes plus sûres pour le contrôle des versions ?
  • Quel est le coût réel de l'utilisation des conteneurs standards ?
  • Comment l'utilisation de const optimise réellement votre programme ?
  • Comment le mot-clé inline affecte-t-il réellement la performance ?
  • Quand le code qui semble faux compile et s'exécute parfaitement et pourquoi s'en soucier ?
  • Qu'est qui est mauvais dans le design des std::string ?
Exceptional C++ Style vous aidera à créer, mettre en place l'architecture et coder avec style tout en permettant plus de robustesse et de performance dans tous vos logiciels C++.

(Traduction du dessous de couverture)


II. Table des matières

  • GENERIC PROGRAMMING AND THE C++ STANDARD LIBRARY.
    • 1. Uses and Abuses of vector.
    • 2. The String Formatters of Manor Farm, Part 1: sprintf.
    • 3. The String Formatters of Manor Farm, Part 2: Standard (or Blindingly Elegant) Alternatives.
    • 4. Standard Library Member Functions.
    • 5. Flavors of Genericity, Part 1: Covering the Basis [sic].
    • 6. Flavors of Genericity, Part 2: Generic Enough?
    • 7. Why Not Specialize Function Templates?
    • 8. Befriending Templates.
    • 9. Export Restrictions, Part 1: Fundamentals.
    • 10. Export Restrictions, Part 2: Interactions, Usability Issues, and Guidelines.
  • EXCEPTION SAFETY ISSUES AND TECHNIQUES.
    • 11. Try and Catch Me.
    • 12. Exception Safety: Is It Worth It?
    • 13. A Pragmatic Look at Exception Specifications.
  • CLASS DESIGN, INHERITANCE, AND POLYMORPHISM.
    • 14. Order, Order!
    • 15. Uses and Abuses of Access Rights.
    • 16. (Mostly) Private.
    • 17. Encapsulation.
    • 18. Virtuality.
    • 19. Enforcing Rules for Derived Classes.
  • MEMORY AND RESOURCE MANAGEMENT.
    • 20. Containers in Memory, Part 1: Levels of Memory Management.
    • 21. Containers in Memory, Part 2: How Big Is It Really?
    • 22. To new, Perchance to throw, Part 1: The Many Faces of new.
    • 23. To new, Perchance to throw, Part 2: Pragmatic Issues in Memory Management.
    • OPTIMIZATION AND EFFICIENCY.
    • 24. Constant Optimization?
    • 25. inline Redux.
    • 26. Data Formats and Efficiency, Part 1: When Compression Is the Name of the Game.
    • 27. Data Formats and Efficiency, Part 2: (Even Less) Bit-Twiddling.
  • TRAPS, PITFALLS, AND PUZZLERS.
    • 28. Keywords That Aren't (or, Comments by Another Name).
    • 29. Is It Initialization?
    • 30. double or Nothing.
    • 31. Amok Code.
    • 32. Slight Typos? Graphic Language and Other Curiosities.
    • 33. Operators, Operators Everywhere.
  • STYLE CASE STUDIES.
    • 34. Index Tables.
    • 35. Generic Callbacks.
    • 36. Construction Unions.
    • 37. Monoliths "Unstrung," Part 1: A Look at std::string.
    • 38. Monoliths "Unstrung," Part 2: Refactoring std::string.
    • 39. Monoliths "Unstrung," Part 3: std::string Diminishing.
    • 40. Monoliths "Unstrung," Part 4: std::string Redux.

III. Critique : Très utile

Troisième opus, et ça se sent. Des piqûres de rappel des 2 précédents livres, mais on sent un essouflement certain. Les questions sont encore plus décousues - sauf la fin sur les std::string - et les réponses sont parfois paradoxales par rapport à ce qui était dit par le passé.

Par exemple, l'histoire des const dans ce livre souligne principalement qu'il ne sert pas au compilateur pour optimiser le code, mais plutôt au programmeur à faire des optimisations lui-même lorsqu'il sait que le code le permet, même s'il indique que les futurs compilateurs pourraient le permettre. D'ailleurs, il parle pas mal du futur, édition des liens globale, compilation à la volée, ... même de tentative infructueuses de recréer des unions dans le C++ mais que la tentative a échouée de peu car les compilateurs ne sont pas assez puissants. On sent peut-être une certaine justification ou correction par rapport aux livres précédents où les gens ont mal compris certaines solutions, ont conclu trop vite par rapport à des avantages, atouts des solutions données, alors qu'il ne voulait clairement pas aller au-delà de ce qu'il disait, les gens ont tenté de lire entre les lignes quelque chose qui n'existait pas. Ce livre permet de recadrer, à mon avis, l'excitation qui a pu surgir des 2 premiers livres.


IV. Liens annexes

info Critique sur la page de livres C++
info Achat sur Amazon.fr
info Lien vers le site de l'éditeur


Valid XHTML 1.1!Valid CSS!

Copyright © 2006 Matthieu Brucher. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.