- Cours pratique
- Informatique
Formation Python : Bonnes pratiques et Design patterns

- Durée
- 4 jours
- Niveau
- Intermédiaire
- Modalités
- Distanciel
Description de la formation Python Bonnes Pratiques
Cette formation Python Bonnes pratiques et Design patterns vous apprend les bonnes pratiques de programmation avec Python.
Lors de ce cours, les participants approfondissent leur expérience de la programmation avec Python pour rendre leurs applications fiables et stables et pour appliquer des design patterns (patrons de conception) qui leur permettront de résoudre les principales difficultés qu'ils rencontrent dans la conception de logiciels avec Python.

Objectifs pédagogiques
Concrètement, à l'issue de cette formation Python Bonnes pratiques et Design patterns vous aurez acquis les connaissances et les compétences nécessaires pour :
- Appliquer des design patterns et des bonnes pratiques pour développer des applications avec Python
- Exploiter des fonctionnalités avancées de programmation Python pour concevoir des programmes fiables
- Créer et gérer des threads de contrôle concurrents
- Générer des requêtes et des réponses aux services Web REST et utiliser les données renvoyées
- Suivre l'exécution du programme et améliorer les performances
- Lancer des tests unitaires sur les programmes et les modules Python, les installer et les distribuer.
Objectifs opérationnels
Savoir maîtriser les bones pratiques Design patterms avec Python.
Programme
Contenu du cours, module par module
9 modules
- Étendre les classes pour définir des sous-classes
- Hériter des plusieurs super-classes et classes mixin
- Ajouter des propriétés à une classe
- Définir des classes abstraites de base
Écriture de code Python
- Personnaliser les itérations et les indexations avec des méthodes « magiques »
- Modifier le code de façon dynamique avec le « monkey patching »
Traitement des exceptions
- Lever des exceptions personnalisées
- Réduire la complexité du code avec les gestionnaires de contexte et l'instruction with
Tests : Les bonnes pratiques
- Développer et lancer des tests unitaires Python
- Simplifier les tests automatiques avec le paquetage Nose
Vérification du comportement du code
- Investiguer les dépendances entre objets avec le paquetage Mock
- Mettre en œuvre les assertions avec le paquetage MagicMock
Identification des erreurs
- Journaliser les messages pour les audits et le débogage
- Vérifier le code à la recherche de bogues avec PyLint
Débogage du code Python
- Extraire les informations sur les erreurs à partir des exceptions
- Suivre l'exécution du programme avec l'environnement de développement intégré PyCharm
Patrons structurels
- Mettre en œuvre les patrons décorateurs avec @
- Contrôler les accès à un objet avec le patron Proxy
Patrons comportementaux
- Utiliser le patron d'itération avec les générateurs Python
- Définir un algorithme squelette avec le patron de méthode
- Autoriser des couplages lâche entre classes avec le patron observateur
Services Web REST Python
- Développer un service REST
- Générer des réponses JSON pour des clients Ajax
Clients REST Python
- Envoyer des requêtes REST depuis un client Python
- Utiliser les données JSON et XML renvoyées
Mesurer l'exécution de l'application
- Chronométrer l'exécution des fonctions avec le module « timeit »
- Suivre l'exécution du programme via « cProfile »
- Manipuler le suivi de l'exécution de manière interactive avec « pstats »
Les fonctionnalités du langage Python pour l'optimisation des performances
- Déterminer les structures de données efficaces parmi listes, dictionnaires et tuples
- Transformer et filtrer des ensembles de données avec les compréhensions
- Remplacer l'interpréteur traditionnel Python par PyPy
Gestion des versions des modules
- Installer les modules depuis le dépôt PyPi avec pip
- Portabilité du code entre les différentes versions de Python
Paquetage des modules et des applications Python
- Définir des environnements Python isolés avec « virtualenv »
- Préparer la distribution d'un paquetage avec « setuptools »
- Importer les modules Python dans un dépôt local
Processus légers (threads)
- Créer et gérer plusieurs threads de contrôle avec la classe Thread
- Synchroniser des threads avec des verrous
Traitements lourds
- Exécuter des commandes du système d'exploitation comme sous-processus
- Synchroniser des processus avec les files d'attente
- Exécuter des traitements en parallèle avec les groupes de processus et des exécuteurs
Travaux pratiques
Ce cours alterne théorie et travaux pratiques pour une meilleure assimilation des notions évoquées.
Les travaux pratiques abordés lors de ce cours sont les suivant :
- Appliquer des design patterns courants à des programmes Python
- Vérifier que le code est correct avec les tests unitaires et les mock objects
- Développer des services Web REST et des clients REST
- Déceler les erreurs et déboguer le code Python
- Créer et gérer des threads et des processus
- Installer et distribuer des programmes et des modules.
Programme mis à jour le 27/06/2022
Public concerné
Cette formation est destinée aux programmeurs, développeurs, ingénieurs en logiciels, testeurs et responsables techniques souhaitant approfondir leurs connaissances du langage Python.

Prérequis
Afin de suivre ce stage, il est nécessaire d'avoir suivi la formation Python (réf. OPYT) ou de posséder les connaissances équivalentes telles qu'une expérience professionnelle d'au moins 3 mois de programmation avec Python.
J’évalue mes connaissances pour vérifier que je dispose des prérequis nécessaires pour profiter pleinement de cette formation en faisant le test de prérequis.
Faire le testFinancement
Cette formation peut être prise en charge par votre entreprise, seule ou avec l’appui de son opérateur de compétences. Nous fournissons le devis et les pièces attendues par l’OPCO.
4,2/5
5 avis
« Mon avis sur le contenu du stage : "Le contenu a évolué au cours de la formation en fonction du publique ce qui est appréciable." Mon avis sur le formateur : "Le formateur a réussi à recueillir notre feedback en distanciel ce qui est assez impressionnant. Il s'est montré disponible et à toujours répondu à nos sollicitations. Son niveau technique est excellent. Merci" Ce que j'ai le plus apprécié : "Possibilité de partage des écrans de tous les participants (vraiment intéressant pour montrer aux autres nos travaux et problèmes)." Ce que j'ai le moins apprécié : "Peut-être plus difficile d'avoir des échanges entre nous." »
PONTHIEUX ArnaudVEOLIA RECHERCHE ET INNOVATION « Mon avis sur le contenu du stage : "La formation était bien complète et a permis de parcourir beaucoup de fonctionnalités de python. Nous avons suivant nos métiers des besoins différents dans l'utilisation de python et les cours et exercices étaient très variés pour convenir à tous. " Mon avis sur le formateur : "Notre formateur connaît parfaitement son domaine et est très pédagogue. Il a su répondre à nos questions et adapter les supports car nous avons tous des niveaux d'utilisation différents de Python. " »
BM « Mon avis sur le contenu du stage : "Le contenu était un peu trop dense par rapport au temps imparti, avec un enchaînement assez rapide, du coup il était difficile d'assimiler les notions vues." »
MD
Les avis figurant ci-dessus sont issus des fiches d’évaluation que remplissent les participants à la fin de la formation. Ils sont ensuite publiés automatiquement si les personnes ont explicitement accepté que nous les diffusions.
Formations liées
- Web Services REST - Mise en œuvre avec PythonRéf. OPYW3 joursIntermédiaireProchaine session : 19 oct.2 090 €
- SOAP Web Services - Mise en oeuvre avec Jakarta EERéf. SWES3 joursIntermédiaireProchaine session : 14 déc.
- Web Services REST - Mise en œuvre en C#Réf. DWSR3 joursIntermédiaireProchaine session : 26 oct.2 090 €
- Web services REST en PHPRéf. WSPHP3 joursIntermédiaireProchaine session : 16 déc.2 090 €