Prenez contact avec nous

Plan du cours

Jour 1 — Fondations Python Robustes et Outils

Fonctionnalités Python Modernes et Typage

  • Les bases du typage, les génériques, les Protocols et TypeGuard
  • Présentation des dataclasses, des dataclasses gelées et de attrs
  • Correspondance de motifs (PEP 634+) et usage idiomatique

Qualité du code et outils

  • Formateurs de code et linters : black, isort, flake8, ruff
  • Vérification statique de type avec MyPy et pyright
  • Hooks pre-commit et workflows de développement

Gestion de projet et packaging

  • Gestion des dépendances avec Poetry et les environnements virtuels
  • Structure des packages, points d'entrée et meilleures pratiques de versionning
  • Construction et publication de packages sur PyPI et registres privés

Jour 2 — Modèles de Conception et Pratiques Architecturales

Modèles de Conception en Python

  • Modèles créationnels : Factory, Builder, Singleton (variants pythoniques)
  • Modèles structurels : Adapter, Facade, Decorator, Proxy
  • Modèles comportementaux : Strategy, Observer, Command

Principes Architecturaux

  • Principes SOLID appliqués aux bases de code Python
  • Architecture Hexagonale/Clean Architecture et ses limites
  • Injection de dépendance et gestion de configuration

Modularité et Réutilisation

  • Conception de bibliothèques vs code applicatif
  • APIs, interfaces stables et versionning sémantique
  • Gestion de la configuration, des secrets et des paramètres spécifiques à l'environnement

Jour 3 — Concurrence, Async IO et Performance

Concurrence et Parallélisme

  • Fondamentaux du threading et implications du GIL
  • Multiprocessing et pools de processus pour les tâches liées au CPU
  • Quand utiliser concurrent.futures vs multiprocessing

Programmation Asynchrone avec asyncio

  • Patterns async/await, boucle d'événements et annulation
  • Conception de bibliothèques asynchrones et interopérabilité avec du code synchrone
  • Patterns liés à l'E/S, gestion de la contre-pression (backpressure) et limitation de débit

Profiling et Optimisation

  • Outils de profiling : cProfile, pyinstrument, perf, memory_profiler
  • Optimisation des chemins critiques et utilisation d'extensions C/Numba lorsque cela est approprié
  • Mesure de la latence, du débit et de l'utilisation des ressources

Jour 4 — Tests, CI/CD, Observabilité et Déploiement

Stratégies de Tests et Automatisation

  • Tests unitaires et fixtures avec pytest ; organisation des tests
  • Tests basés sur les propriétés avec Hypothesis et tests de contrat
  • Mocking, monkeypatching et test du code asynchrone

CI/CD, Release et Monitoring

  • Intégration des tests et des critères de qualité dans GitHub Actions/GitLab CI
  • Construction de conteneurs reproductibles avec Docker et les builds multi-étapes
  • Observabilité des applications : logs structurés, métriques Prometheus et traçage

Sécurité, Sécurisation et Bonnes Pratiques

  • Audit des dépendances, bases SBOM et analyse des vulnérabilités
  • Pratiques de codage sécurisé pour la validation des entrées et la gestion des secrets
  • Sécurisation au runtime : limites de ressources, droits utilisateurs et sécurité des conteneurs

Projet Intégrateur et Revue

  • Lab en équipe : concevoir et implémenter un petit service en utilisant les patterns du cours
  • Tests, contrôle de type, packaging et pipeline CI pour le projet
  • Revue finale, critique du code et plan d'amélioration concret

Résumé et Prochaines Étapes

Pré requis

  • Une solide expérience de la programmation Python de niveau intermédiaire
  • Une familiarité avec la programmation orientée objet et les tests de base
  • De l'expérience avec la ligne de commande et Git

Public cible

  • Développeurs Python seniors
  • Ingénieurs logiciels responsables de la qualité du code Python et de l'architecture
  • Lead techniques et ingénieurs MLOps/DevOps travaillant avec des bases de code Python
 28 Heures

Nombre de participants


Prix par participant

Nos clients témoignent (3)

Cours à venir

Catégories Similaires