Formation Python avancé

Formation Python avancé

Cette formation de 3 jours permet d'approfondir la maîtrise du langage Python, de structurer des applications complexes grâce aux design patterns et à l'architecture hexagonale, de maîtriser la programmation asynchrone et d'optimiser les performances de vos projets.

1800,00 
time_line 3 jours (21 heures)
Réserver une session Voir le programme
target_line

Objectifs

  • Structurer un projet Python moderne et gérer ses dépendances (uv, pip, environnements virtuels).
  • Maîtriser la programmation asynchrone avec asyncio (fonctions de base et fonctionnalités avancées).
  • Concevoir et implémenter les principaux design patterns adaptés à l'écosystème Python.
  • Organiser un projet selon les principes de l'architecture hexagonale.
  • Mesurer, profiler et optimiser le code Python (CPU, mémoire, complexité).
version_line

Programme de la formation

I. Rappels & fondamentaux Python

  • Rappels sur la syntaxe et les bonnes pratiques Python
  • Programmation orientée objet : classes, héritage, composition
  • Gestion des erreurs et exceptions
  • Organisation d’un projet : modules et packages
  • Gestion des dépendances : pip, environnements virtuels, uv
  • Structuration et bonnes pratiques d’un projet Python moderne

II. Programmation asynchrone : fondamentaux

  • Comprendre la programmation synchrone vs asynchrone
  • Fonctionnement de l’Event Loop
  • Coroutines
  • async / await
  • Création et exécution de tâches avec asyncio.create_task()
  • Exécution concurrente avec asyncio.gather()
  • Mise en pratique sur des traitements I/O concurrents

III. Programmation asynchrone : avancée

  • Structured concurrency avec TaskGroup
  • Gestion des exceptions dans les tâches asynchrones
  • Timeout et cancellation
  • Context managers asynchrones (async with)
  • Itérateurs et générateurs asynchrones (async for, yield)
  • Bonnes pratiques et pièges courants avec asyncio
  • Mise en pratique sur un cas concret

IV. Design Patterns & décorateurs

  • Rappel du principe et de l’intérêt des design patterns
  • Utilisation et création de décorateurs Python
  • Mise en œuvre des principaux patterns utiles en Python :
    • Factory / Factory Method
    • Strategy
    • Adapter
    • Repository
    • Dependency Injection
    • Observer / Event-driven
    • Command
  • Choisir le bon pattern en fonction du besoin

V. Architecture hexagonale

  • Principes de l’architecture hexagonale
  • Domain, ports et adapters
  • Séparation métier / infrastructure
  • Dependency Inversion et injection de dépendances
  • Organisation d’un projet Python en architecture hexagonale

👉 TP : refactoring / réécriture d’une application existante en architecture hexagonale

VI. Tests, profiling & optimisation

  • Rappels sur les tests unitaires et bonnes pratiques
  • Benchmarking et mesure des performances
  • Timeit et cProfile
  • Profiling CPU
  • Profiling mémoire
  • Identification des hot spots
  • Analyse de la complexité algorithmique
  • Choix des structures de données adaptées
  • Optimisation progressive d’un code Python à partir des mesures

Modalités d'évaluation

L’évaluation des acquis est réalisée en fin de formation par le biais d’exercices visant à vérifier l’atteinte des objectifs pédagogiques.

Sessions adaptées à vos besoins

Formation sur-mesure

Vous souhaitez une formation adaptée à votre entreprise ou à votre équipe ? Planifiez une session dédiée selon vos besoins et disponibilités. Choisissez la date, le format et bénéficiez d'un accompagnement personnalisé avec la possibilité de réaliser la formation dans nos locaux à Lille ou en distanciel.

Rejoignez une session

Envie de monter en compétences rapidement ? Inscrivez-vous à l'une de nos sessions de formation déjà programmées ! Rejoignez d'autres professionnels et apprenez aux côtés de nos experts.

Prendre contact

Obtenez votre attestation de réussite

Attestation de formation

À l'issue de chaque formation, obtenez une attestation de réussite confirmant de vos nouvelles compétences. Ce document valorise votre expertise et constitue un atout précieux pour booster votre carrière et mettre en avant votre maîtrise des technologies enseignées.

Besoin de plus d'informations ?