Formation Python, Perfectionnement du code Mix
Laatste update : 18/12/2025
Pré-inscription
Présentation
En quatre jours, cette session âPython perfectionnementâ consolide les bases et ouvre lâaccĂšs aux techniques expertes : fonctions avancĂ©es, conception objet poussĂ©e, optimisation et exĂ©cution parallĂšle, puis industrialisation (packaging, CI/CD).
Chaque journée se conclut par un atelier modulable afin de mettre immédiatement en pratique les notions étudiées.
Objectifs
A l'issue de la formation, le stagiaire sera capable d'utiliser Python pour développer des applications plus performantes et optimisées.
- Approfondir la connaissance des concepts avancés de Python
- Utiliser les techniques avancées du langage Python
- Optimiser les performances de vos programmes à l'aide du monitoring et du parallélisme
- Packager et déployer ses artefacts Python
- Exploiter des librairies contribuant au succÚs du langage (data science & machine learning, cybersécurité, développement web, logiciels et outils...)
Doelpubliek
Voorafgaandelijk noodzakelijk
Programme
Jour 1 â MaĂźtriser les fonctionnalitĂ©s avancĂ©es du langage
Objectifs du jour
- Produire et consommer des données « au fil de l'eau » sans surcharge mémoire
- Ajouter un journal, un cache ou un chronomĂštre sans toucher au cĆur du code
- Sécuriser l'ouverture / fermeture des ressources externes
- Remplacer de longues cascades de conditions par des blocs lisibles
Contenu
- Fonctions productrices (générateurs) :
- Livrer les résultats un à un plutÎt qu'en bloc
- ChaĂźner plusieurs producteurs pour un pipeline efficace
- Fonctions « habillage » :
- Envelopper une fonction pour tracer, mettre en cache ou minuter
- Passer des paramÚtres d'habillage pour différents contextes
- Gestionnaires de contexte :
- Bloc « avec⊠» qui ouvre puis referme toujours fichier, connexion ou verrou
- Correspondance de motifs
- Lire et maintenir plus facilement les grandes branches conditionnelles
Atelier pratique
- Créer une mini-bibliothÚque « journal + chronomÚtre » et l'appliquer à un script.
Â
Jour 2 â Conception objet avancĂ©e & qualitĂ©
Objectifs
- Imposer un contrat d'interface commun à plusieurs développements
- Réutiliser un comportement ciblé sans multiplier les niveaux d'héritage
- Générer automatiquement des classes ou registres de plugins
- Couvrir le code par des tests complets et lisibles
Contenu
- Classes abstraites :
- Imposer un contrat d'interface avec abc.ABC
- Obliger les sous-classes à implémenter les méthodes clés
- Mixins et réutilisation ciblée :
- Injecter un horodatage, un identifiant unique⊠sans hiérarchie profonde
- Patterns de conception simple :
- Singleton via décorateur ou variable de module
- Factory via fonctions ou classes
- Composition vs Héritage : encapsuler une instance ou hériter ?
- Plugins : construire un registre de plugins chargé à l'exécution
- Tests avancés :
- Doubles d'objets
- Mesure de couverture
- Tests génératifs (property-based)
- Visualisation UML
Atelier pratique
- Refactoriser une hiérarchie existante, ajouter le contrat, puis écrire les tests couvrant 90 % du code
Â
Jour 3 - Performance, concurrence et optimisation
Objectifs du jour
- Localiser les goulots d'étranglement d'un programme Python
- Accélérer un calcul ou un traitement d'entrées/sorties lourdes
- Choisir entre parallĂ©lisme (multi-cĆur) et exĂ©cution asynchrone
- Quantifier le gain obtenu aprĂšs optimisation
Contenu
- Profilage visuel :
- Graphiques CPU/mémoire pour hiérarchiser les priorités d'optimisation
- Optimisations de structure :
- Sélectionner la collection la plus rapide
- Ăviter les conversions rĂ©pĂ©tĂ©es
- Utiliser pathlib pour la lisibilité et la portabilité
- Exécution parallÚle :
- RĂ©partir les tĂąches sur plusieurs cĆurs ou processus selon la charge
- Exécution non bloquante :
- Boucle d'évÚnements qui continue pendant les attentes réseau ou disque
- Réutilisation des connexions avec requests.session
Atelier pratique
- Mesurer puis accélérer l'analyse d'un gros fichier ; comparer le gain entre multi-processus et approche asynchrone
Â
Jour 4 â Packaging, documentation & dĂ©ploiement continu
Objectifs du jour
- Distribuer un projet Python sous forme de paquet installable partout
- Produire une documentation HTML Ă jour depuis le code
- Automatiser contrĂŽle de style, tests et publication via CI/CD
- Conteneuriser une appli Python dans une image légÚre
Contenu
- Fichier de configuration unique :
- Centraliser nom, version, auteurs, dépendances (exécution vs développement)
- Générer un wheel installable sur tout poste
- Documentation automatisée :
- Extraire les commentaires pour créer un site HTML consultable
- Maintenir la doc à jour grùce aux vérifications CI
- Typage statique léger :
- Annotations pour détecter les incohérences avant exécution
- IA & sécurité logiciel
- Génération automatique d'un squelette de test unitaire ou de script CI avec un assistant LLM
- Risques et bonnes pratiques (RGPD)
- ChaĂźne CI/CD de base :
- Ă chaque dĂ©pĂŽt : contrĂŽle de style â tests â construction â publication
- Conteneurisation avec une image Python « slim » prĂȘte Ă dĂ©ployer
- Usage pytest, ruff, tox/nox
Atelier pratique
- Transformer le module développé en paquet
- Générer la doc puis configurer un pipeline CI minimal qui lance linter et les tests automatiquement.
Pedagogische modaliteiten
Docaposte Institute propose plusieurs dispositifs pédagogiques adaptés aux apprenants :
- Formation en présentiel
- En groupe (inter-entreprises ou intra-entreprise)
- En individuel (monitorat)
- En journée ou en cours du soir (sur demande spécifique)
- Formation en distanciel
- Distanciel synchrone
- Distanciel asynchrone
Pedagogische middelen en ondersteuning
- Apports des connaissances communes.
- Mises en situation sur le thĂšme de la formation et des cas concrets.
- Méthodologie d'apprentissage attractive, interactive et participative.
- Ăquilibre thĂ©orie / pratique : 60 % / 40 %.
- Supports de cours fournis au format papier et/ou numérique.
- Ressources documentaires en ligne et références mises à disposition par le formateur.
- Pour les formations en présentiel dans les locaux mis à disposition, les apprenants sont accueillis dans une salle de cours équipée d'un réseau Wi-Fi, d'un tableau blanc ou paperboard. Un ordinateur avec les logiciels appropriés est mis à disposition (le cas échéant).
Modaliteiten van evaluatie en opvolging
En amont de la formation :
- Recueil des besoins des apprenants afin de disposer des informations essentielles au bon déroulé de la formation (profil, niveau, attentes particuliÚres...).
- Auto-positionnement des apprenants afin de mesurer le niveau de départ.
Â
Tout au long de la formation :
- Ăvaluation continue des acquis avec des questions orales, des exercices, des QCM, des cas pratiques ou mises en situation...
Â
A la fin de la formation :
- Auto-positionnement des apprenants afin de mesurer l'acquisition des compétences.
- Evaluation par le formateur des compétences acquises par les apprenants.
- Questionnaire de satisfaction Ă chaud afin de recueillir la satisfaction des apprenants Ă l'issue de la formation.
- Questionnaire de satisfaction à froid afin d'évaluer les apports ancrés de la formation et leurs mises en application au quotidien.
Toelatingsinformatie
Toelatingsprocedures
- Admission sans disposition particuliĂšre