URL: https://linuxfr.org/news/coder-efficacement-bonnes-pratiques-et-erreurs-a-eviter Title: Coder efficacement, bonnes pratiques et erreurs à éviter Authors: pmdbr BAud, Nÿco, Thom, olivierweb et Benoît Sibaud Date: 2014年03月12日T09:07:11+01:00 License: CC By-SA Tags: programmation_fonctionnelle, programmation, c++, orientée, objet, c et bonnes Score: 30 Développer une application peut rapidement devenir un enfer si vous n'avez pas anticipé certaines difficultés et fait les bons choix au moment de sa conception. Ce livre vous aidera à vous poser les bonnes questions et à tirer le meilleur parti de la programmation objet, en particulier en C++, sans tomber dans les pièges les plus fréquents. Il clarifie certains concepts délicats et passe en revue un ensemble de bonnes pratiques, qui rendront vos projets plus évolutifs et plus faciles à maintenir.  ---- [Présentation du livre sur le site de l'éditeur](http://www.d-booker.fr/programmation-et-langage/157-coder-efficacement.html) [Entretien avec l'auteur](http://www.d-booker.fr/content/56-interview-de-philippe-dunski) [Sommaire détaillé](http://www.d-booker.net/GALERIE/public/coder_cpp/_0164_coder_cpp-tdm.pdf) [Présentation de l'éditeur D-BookeR sur LinuxFr.org](http://linuxfr.org/news/presentation-editions-d-booker) ---- Organisé en quatre parties, ce livre traite successivement des principes de base, des fondements de la programmation orientée objet et des spécificités du C++ pour finir sur une étude de cas complète (création d'un jeu d'échecs en 3000 lignes) qui montre comment les mettre en œuvre dans la pratique. L'auteur insiste sur la nécessité d'anticiper les évolutions sans tomber dans l'écueil de _l'over-engineering_, il met en relief des erreurs courantes comme le fait de tester, d'une manière ou d'une autre, le type dynamique (réel) d'un des objets qu'on ne connaît que sous la forme de leur type de base pour décider de l'utilisation qu'on en fera. Il fournit ensuite un exemple illustrant le risque encouru. Plus spécifiquement sur le C++, il invite à renoncer définitivement à certaines habitudes du C totalement injustifiées en C++, il clarifie l'emploi des pointeurs et des références, il encourage à recourir à la constance, il montre comment tirer parti de la forme canonique de Coplien (constructeur par défaut, constructeur par copie, operateur d'affectation et destructeur virtuel ou non), etc. L'étude de cas vise avant tout à illustrer plus concrètement comment mettre en pratique, avec pragmatisme, ses recommandations. Ce livre n'est pas un manuel d'apprentissage du C++. Un autre ouvrage du même auteur dédié au C++14 est en cours de rédaction. Tous les exemples sont en C++11. En présentation, la situation où l'on souhaite une valeur numérique constante. Il y a plusieurs manières de les déclarer. * À l'aide du préprocesseur. Mais il n'y a aucun contrôle sur le type de données. ```c++ #define FIRST 1 #define SECOND 2 #define LAST 0xFF ``` * À l'aide de constantes statiques. Cette méthode corrige le problème du type de données. Néanmoins, le fait d'énumérer correctement tous les cas dans un test reste le problème du programmeur. ```c++ static const unsigned int first = 1; static const unsigned int second = 2; static const unsigned int last = 0xFF; ``` * Le cas d'une énumération, en bonne et due forme, règle pas mal de ces problèmes. ```c++ enum MyEnum{ first = 1; second = 2; last = 0xFF } ``` Il s'en suit alors quelques pages présentant les nouveautés et les bons usages du C++11 sur les énumérations. L'auteur Philippe Dunski est expert en C++/Qt/boost et il intervient régulièrement sur developpez.com pour aider les autres membres. Il écrit de manière très personnelle et vivante, ce qui rend la lecture du livre très agréable, même sur les aspects les plus pointus.