C++ : Bonnes pratiques et design patterns

Formation #397 - 4 jours

La possibilité de s'appuyer sur du code écrit par quelqu'un d'autre, d'éviter les pièges et d'appliquer des idiomes et des patterns reconnus peut améliorer considérablement l'efficacité du processus de programmation. Au cours de cette formation, vous apprendrez à augmenter votre productivité en combinant outils, idiomes, syntaxe et bibliothèques pour écrire du code C++ concurrentiel. Les nombreux travaux pratiques proposés sont conçus pour vous apporter une expérience concrète de développement de code C++ de qualité.

  • Concevoir et mettre en œuvre des solutions orientées objet performantes avec C++ et les fonctionnalités des bibliothèques et des langages C++11 / 14
  • Améliorer la qualité de votre code C++ et le réutiliser avec des design patterns
  • Créer des bibliothèques robustes avec des espaces de nommage, des modèles et des exceptions
  • Utiliser la bibliothèque C++ standard et STL
  • Mettre en forme les sorties sous forme de texte pour modifier les résultats

  • Appliquer des design patterns pour améliorer la qualité du code
  • Modifier la structure d'une application pour gagner en souplesse, en solidité et en efficacité
  • Appliquer les principaux composants de la bibliothèque STL
  • Ajouter des variantes au pattern Observer

Aux développeurs de logiciels qui ont suivi un cours d'introduction à C++ récemment, ainsi qu'aux programmeurs autodidactes plus expérimentés qui veulent en savoir plus sur les bibliothèques, les outils modernes et la conception de logiciels orientés objet.

Vous devez connaître les principes fondamentaux de la programmation C++ et comprendre les concepts suivants utilisés dans C++ :

  • Classes et objets
  • Héritage
  • Polymorphisme ou fonctions virtuelles
  • Surcharge des fonctions
Des études ont montré qu'il faut environ 6 mois pour devenir un bon programmeur C++.

Principes fondamentaux de l'orientation objet

  • Héritage, encapsulation et polymorphisme
  • Classes, objets et attributs
  • Associations, messages et méthodes
  • Interfaces et classes abstraites

Le langage UML (Unified Modeling Language)

  • Caractéristiques d'UML
  • Combiner UML et C++

Les outils de développement

  • Automatiser le cycle de vie avec des AGL (Atelier de Génie Logiciel)
  • Génération de code et reverse engineering (conception inversée)
  • Outils de débogage et navigateurs

Présentation des design patterns

  • Rôle des design patterns
  • Catégories de patterns : conception, comportement et structure
  • Description des design patterns

Les patterns en action

  • Synchroniser plusieurs vues avec Observer
  • Gérer les structures de données récursives avec Composite
  • Réduire la duplication du code avec Template Method
  • Gérer la création des objets avec Singleton
  • Découpler la création des objets avec Factory
  • Séparer les algorithmes des structures de données avec Visitor

Standard Template Library (STL)

  • Structure de la STL
  • Déclarer et alimenter les conteneurs de séquence et les conteneurs associatifs
  • Accéder aux conteneurs avec des itérateurs
  • Appliquer des algorithmes standards et personnalisés
  • Utiliser les objets fonctions et les expressions lambda

Bibliothèque iostream

  • Entrées / Sorties standards
  • Mettre en forme les résultats sous forme de texte
  • Gérer les erreurs dans les données en entrée
  • Types de caractères étendus et normes internationales

Bibliothèque des threads (processus légers)

  • Créer et gérer les threads
  • Gérer l'accès exclusif à des données partagées

Gestion de la mémoire

  • Détecter et réduire la surcharge de la mémoire
  • Éviter les fuites de mémoire avec les modèles unique_ptr et shared_ptr
  • Surcharger les opérateurs new et delete
  • Créer et utiliser des pointeurs intelligents

Stockage des fichiers

  • Préparer les classes pour le stockage de fichiers simple
  • Stocker et récupérer des objets avec les bibliothèques de sérialisation Boost

Développer du code plus facile à réutiliser

  • Éviter les conflits avec les espaces de noms
  • Utiliser des templates pour de la réutilisation sûre

Améliorer la solidité et l'efficacité

  • Utilisation cohérente et pertinente de const pour renforcer l'encapsulation
  • Partager l'état entre différents objets légers
  • Comprendre les références r-value et la syntaxe du déplacement

Ce que vous devez faire... et pourquoi vous devez le faire

  • Destructeurs virtuels
  • Opérateurs d'affectation et constructeurs de copie

Fonctionnalités à manipuler avec précaution

  • Membres publics vs. membres amis
  • Informations sur le type d'exécution vs. fonctions membres virtuelles
  • Héritage multiple et virtuel

Sessions planifiées inter-entreprises

Inscrivez-vous à une de nos sessions en sélectionnant un mode de suivi :

10 octobre 2017 - 2220 € - À Paris ou À distance
5 décembre 2017 - 2220 € - À Paris ou À distance

Aucune session ne vous convient ? Faites-nous part de vos disponibilités dans votre demande de devis.

Demander un devis

Intra-entreprise

Organisez cette formation Learning Tree sur votre lieu de travail avec notre solution intra-entreprise.

Demander un devis

Financez votre formation

  • Programmes Visa Société et Passeport
  • Réduction Return to Learn

Pour en savoir plus, cliquez ici.

Votre formation à distance et en direct

Sans frais supplémentaires, depuis tout lieu possédant une connexion Internet, connectez-vous en temps réel et en direct à une session dispensée par nos formateurs grâce à AnyWare™, la plateforme de formation en distanciel de Learning Tree.

Notre catalogue

Vous souhaitez parcourir toute notre offre de formation ultérieurement ?

Téléchargez notre catalogue

Suivez une formation Learning Tree et profitez des avantages de SUPINFO International University !

Pour toute formation que vous aurez suivi chez Learning Tree, SUPINFO International University vous offre pendant un an le statut Advanced Member d'une valeur de 250€.
Ce statut privilégié vous permettra de profiter de ressources pédagogiques sélectionnées par SUPINFO :

* Services disponibles prochainement.