PYTHON PERFECTIONNEMENT : Analyser, fiabiliser et optimiser du code existant
PYTHON PERFECTIONNEMENT : Analyser, fiabiliser et optimiser du code existant
Description
Cette formation permet d’approfondir Python à travers l’analyse et l’amélioration de code existant. Elle couvre les concepts avancés du langage, la structuration, la qualité, la performance et l’utilisation de bibliothèques courantes, avec une approche orientée maintenance, fiabilisation et évolution de projets réels (y compris code legacy ou généré automatiquement).
Objectif
- Comprendre et analyser du code Python avancé
- Identifier les pièges et comportements implicites du langage
- Utiliser les fonctionnalités avancées (POO, décorateurs, context managers…)
- Fiabiliser un code via tests, gestion d’erreurs et bonnes pratiques
- Optimiser les performances et comprendre les mécanismes de concurrence
- Structurer, packager et industrialiser un projet Python
- Manipuler des bibliothèques courantes en contexte réel
Prérequis
Bonne maîtrise de Python, connaissance de la POO et expérience sur des scripts ou projets Python
Participants
Développeurs Python intermédiaires / avancés, équipes techniques travaillant sur du code existant ou toute personne souhaitant monter en expertise Python
Programme
🔹 Jour 1 — Comprendre et analyser du code Python avancé
RAPPELS AVANCÉS DU LANGAGE (VERSION “MAINTENANCE”)
- Références et mutabilité (mutable / immutable) : bugs classiques
- Passage d’arguments, valeurs par défaut, variables locales
- Variables de classe vs instance
- Structures de contrôle avancées : else sur for, while, try
- Imports : lecture de projet, dépendances, couplage
LECTURE ET COMPRÉHENSION DE CODE
- Identifier la logique métier
- Comprendre les flux de données
- Repérer les zones à risque
👉 TP : audit guidé d’un script “mystère” + cartographie des flux + modification métier sécurisée
🔹 Jour 2 — Structuration avancée avec fonctions et POO
FONCTIONS AVANCÉES
- Décorateurs : lecture et utilisation
- *args / **kwargs : API flexibles
- Closures : usages et limites
POO AVANCÉE
- property : contrôle d’accès
- Itérateurs et protocoles d’itération
- Context Managers : gestion des ressources
- Classes abstraites (ABC) : définir des contrats
CONCEPTION AVANCÉE
- Design Patterns : quand et comment les utiliser
- Métaclasses : compréhension (lecture de code existant)
👉 TP : refactorisation d’un code (IA / legacy) + ajout de tests (pytest) + sécurisation du comportement
🔹 Jour 3 — Qualité, performance et industrialisation
QUALITÉ ET DÉPLOIEMENT
- Installation de librairies (pip, PyPI)
- Packaging (setuptools)
- Environnements (virtualenv)
- Versioning et reproductibilité
PERFORMANCE ET CONCURRENCE
- Profiling avec cProfile
- Optimisation basée sur mesure
- Threading vs multiprocessing
- Introduction au calcul distribué (Dask)
LIBRAIRIES COURANTES (PANORAMA PROJET)
- Data : NumPy, Pandas, Matplotlib
- Scientifique : SciPy
- IA : Scikit-learn (pipeline simple, vigilance usage)
- Données et systèmes : XML, logs, accès réseau
- Accès base de données (SQL / ORM)
👉 TP final : analyse de logs XML + statistiques + visualisation + optimisation (profiling) + packaging du projet
Informations Pratiques
En distanciel, vous devez disposer d'un ordinateur avec une connexion Internet. En présentiel, les locaux disposent d'ordinateurs. Le formateur mobilise tous les moyens pédagogiques (théorie, exercices, quiz).