Fondamentaux du développement

Python avancé : objet, concurrence, tests et performance

Écrire du Python robuste et efficace : décorateurs, générateurs, POO avancée, threads, réseau, tests et optimisation.

Demander ce programme
Durée
21 h · 3 jours
Niveau
Intermédiaire
Format
Présentiel · Distanciel · Mixte
Effectif max.
12 participants

Présentation

Ce programme approfondit Python pour les développeurs qui maîtrisent déjà les bases : fonctions d’ordre supérieur, générateurs, décorateurs, programmation objet avancée, concurrence, sockets, sérialisation, accès aux bases, tests et optimisation. Il montre aussi comment interfacer Python avec d’autres langages.

À qui s’adresse ce programme

  • Développeurs Python intermédiaires
  • Data engineers et ingénieurs backend
  • Équipes qui industrialisent des scripts

Prérequis

  • Pratique régulière de Python (fonctions, classes, modules)

Objectifs pédagogiques

  • Utiliser générateurs, décorateurs et fonctions d’ordre supérieur
  • Appliquer la programmation objet avancée
  • Écrire du code concurrent avec les threads
  • Communiquer en réseau avec les sockets
  • Persister avec JSON, pickle et bases de données
  • Tester avec unittest et pytest
  • Profiler et optimiser

Programme détaillé

6 modules · 21 h · 3 jours

Jour 1
Fonctions avancées et générateurs3,5 h
50 % théorie · 50 % pratique
  • Fonctions d’ordre supérieur
  • Module collections
  • Générateurs et itérateurs
  • Décorateurs
  • Introspection
Programmation objet avancée et concurrence3,5 h🛠 1 atelier
30 % théorie · 70 % pratique
  • Héritage multiple et MRO
  • Classes abstraites et descripteurs
  • Métaclasses : principes
  • Threads, verrous et sémaphores
  • Pools de threads
🛠 Ateliers pratiques
Atelier de concurrence1,5 h

Paralléliser un traitement de données.

✅ Livrable : Un script concurrent mesuré
Jour 2
Réseau et sérialisation3,5 h
50 % théorie · 50 % pratique
  • Sockets TCP et UDP
  • Client et serveur simples
  • Sérialisation : JSON et pickle
  • Manipuler du XML
  • Sécurité de la désérialisation
Bases de données3,5 h🛠 1 atelier
30 % théorie · 70 % pratique
  • SQLite et MySQL depuis Python
  • Requêtes préparées
  • Transactions
  • Introduction aux ORM
  • Organisation de la couche de données
🛠 Ateliers pratiques
Couche de données2 h

Écrire un module d’accès aux données réutilisable.

✅ Livrable : Un module de persistance
Jour 3
Intégration avec d’autres langages3,5 h
50 % théorie · 50 % pratique
  • Appeler du code C avec ctypes ou cffi
  • Liaisons modernes (pybind11)
  • Interopérabilité avec Java
  • Quand choisir une extension native
  • Packaging
Tests et optimisation3,5 h🛠 1 atelier
30 % théorie · 70 % pratique
  • unittest et pytest
  • Mocks et couverture
  • Profilage
  • Complexité algorithmique et structures
  • Bonnes pratiques de performance
🛠 Ateliers pratiques
Optimiser un script2 h

Profiler et accélérer un script lent.

✅ Livrable : Un rapport avant/après

Outils et technologies

MySQLPythonSQLiteVisual Studio Code

Méthodes pédagogiques

  • Alternance d’exposés courts et de travaux pratiques
  • Démonstrations en direct par le formateur
  • Projet fil rouge construit au fil des modules
  • Corrections collectives et échanges sur les bonnes pratiques

Évaluation

  • Exercices pratiques corrigés à chaque module
  • Mini-projet réalisé en fin de formation
  • Quiz de validation des acquis

Matériel requis

  • Un ordinateur avec une connexion internet
  • Python 3 et un éditeur de code

Ressources fournies

  • Support de cours et dépôt d’exercices corrigés

Débouchés

  • Un code plus idiomatique et plus rapide
  • Une suite de tests automatisés
  • Une boîte à outils de patterns Python

Les cours vidéo associés

Mes cours en vidéo qui accompagnent ce programme : pour préparer la formation ou réviser ensuite. Accès gratuit avec un compte.