On n'aurait pas pu trouver meilleur titre pour cet ouvrage: "Pour mieux développer en C++". Soyons clair d'entrée de jeu: malgré sa taille modeste, ce livre n'est pas une introduction au C++, c'est une invitation au perfectionnement de techniques de programmation; il requiert donc une assez bonne connaissance du langage pour être exploité mais le guru restera toutefois sur sa faim, car ce n'est pas un ouvrage de référence non plus.
Il se décompose en trois parties principales:
- les mécanismes virtuels (polymorphisme, patrons, RTTI, héritage multiple & virtuel, classes d'interface)
- la STL et ses concepts
- les design patterns
La première partie permet d'appréhender le C++ dans son essence "objet". Il est ici clair qu'on ne programme pas en C++ comme on le fait en C. Les pistes données dans ces chapitres sont une aide appréciable à l'acquisition des nouveaux modes de pensée requis pour une bonne conception objet et peuvent éventuellement servir d'introduction à un livre plus complet dédié au sujet.
La seconde partie commence par introduire les conteneurs et itérateurs de la STL. On y traite aussi des "algorithmes", ces modèle de fonctions qui agissent sur les itérateurs, ainsi que des "smart pointers" qui limitent les problèmes de fuite de mémoire.
La troisième partie évoque les design patterns, avec chaque fois une implémentation possible. On retrouve ainsi le Composite, la Fabrication, la Fabrique Abstraite, le Singleton, l'Observateur et le Médiateur.
Ajoutons qu'il existe une anecdotique quatrième partie, sous forme d'annexes, avec notamment une introduction aux notations UML et une description du type "string".
Je mets 5 étoiles car le livre remplit parfaitement son rôle: s'insérer entre une introduction au langage et une collection d'ouvrages de référence sur les thèmes traités. Il distille donc effectivement les pistes pour "mieux développer en C++" et donnera peut-être envie au lecteur d'approfondir, ailleurs, un ou plusieurs des concepts clés du langage.