Modern C++ Design
Date de publication : 10/05/2006 , Date de mise à jour : 27/03/2008
Par
Matthieu Brucher (http://matthieu-brucher.developpez.com/) (Blog)
Critique de Modern C++ Design d'Andrei Alexandrescu
I. Description de l'éditeur
II. Table des matières
III. Critique : Un extrêmisme modulaire
IV. Liens annexes
I. Description de l'éditeur
Dans Modern C++ Design, Andrei Alexandrescu ouvre de nouvelles voies pour les programmeurs C++. Montrant une créativité et une virtuosité extraordinaires, Alexandrescu offre une approche de premier ordre au design logiciel, unifiant les design patterns, la programmation générique et le C++, ce qui permet aux programmeurs de créer du code expressif, flexible et hautement réutilisable. Le livre introduit le concept de composants génériques, de patrons de design réutilisables qui permettent une transition plus simple et plus intuitive du design au code d'une application, de générer du code qui exprime mieux l'intention du design original, et de supporter la réutilisation de structures de design avec un recodage minimal. L'auteur poursuit en montrant comment appliquer cette approche à des questions récurrentes du monde réel que les programmeurs C++ rencontrent dans leur activité de tous les jours.
La totalité du code est disponible sur le Web, ainsi que la bibliothèque C++ Loki d'Alexandrescu qui propose de puissantes fonctionalités pour presque n'importe quel projet C++.
II. Table des matières
- TECHNIQUES.
- Policy-Based Class Design.
- Techniques.
- Typelists.
- Small-Object Allocation.
- COMPONENTS.
- Generalized Functors.
- Implementing Singletons.
- Smart Pointers.
- Object Factories.
- Abstract Factory.
- Visitor.
- Multimethods.
- Appendix A. Minimalist Multithreading Library.
III. Critique : Un extrêmisme modulaire
Tous les exemples proposés sont templatés, en fait à l'extrême. Dans la première partie, Alexandrescu montre ce qu'il appelle des politiques. Des politiques pour faire du code adaptable, par exemple, comment faire un smart pointer dans un cadre mono-threadé et un autre pour du multi-threads sans tout recoder et sans recompilation.
Une grande partie de l'ouvrage est dédié aux typelists et leur usage. Ces structures sont clairement expliquées, et pour une fois, on voit des applications : générer des classes héritant de plusieurs autres classes pour générer des hierarchies, des factories, ... A ce sujet, plusieurs patterns sont exposés et une implémentation type est proposée, templatée, avec des politiques à choisir et donc utilisable facilement.
IV. Liens annexes
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.