Prenez contact avec nous
 Durée 28 heures

Plan du cours

Jour 1 — Fondements robustes de Python et outils

Fonctionnalités modernes de Python et saisie de types

  • Bases de la saisie de types, généricité, Protocols et TypeGuard
  • Dataclasses, dataclasses figées (frozen dataclasses) et aperçu de attrs
  • Appariement de motifs (PEP 634+) et utilisation idiomatique

Qualité du code et outils

  • Formateurs et linters de code : black, isort, flake8, ruff
  • Vérification statique des types avec MyPy et pyright
  • Accroches pre-commit et flux de travail des développeurs

Gestion de projet et empaquetage

  • Gestion des dépendances avec Poetry et environnements virtuels
  • Disposition des paquets, points d'entrée et meilleures pratiques de numérotation des versions
  • Construction et publication de paquets sur PyPI et des registres privés

Jour 2 — Patrons de conception et pratiques d'architecture

Patrons de conception en Python

  • Patrons de création : Factory, Builder, Singleton (variantes pythoniques)
  • Patrons structurels : Adapter, Facade, Decorator, Proxy
  • Patrons comportementaux : Strategy, Observer, Command

Principes d'architecture

  • Application des principes SOLID aux bases de code Python
  • Architecture hexagonale/clean et limites
  • Patrons d'injection de dépendances et gestion de la configuration

Modularité et réutilisation

  • Conception du code de bibliothèque par rapport au code d'application
  • API, interfaces stables et numérotation sémantique
  • Gestion de la configuration, des secrets et des paramètres spécifiques à l'environnement

Jour 3 — Concurrence, E/S asynchrones et performance

Concurrence et parallélisme

  • Fondements du threading et implications du GIL
  • Multiprocessing et pools de processus pour les tâches limitées par le CPU
  • Quand utiliser concurrent.futures plutôt que multiprocessing

Programmation asynchrone avec asyncio

  • Patrons async/await, boucle d'événements et annulation
  • Conception de bibliothèques asynchrones et interopérabilité avec le code synchrone
  • Patrons limités par l'E/S, rétrocontrôle (backpressure) et limitation de débit (rate limiting)

Profilage et optimisation

  • Outils de profilage : cProfile, pyinstrument, perf, memory_profiler
  • Optimisation des chemins chauds et utilisation d'extensions C/Numba lorsque c'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 test et automatisation

  • Tests unitaires et fixations 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, publication et supervision

  • Intégration des tests et des portes de qualité dans GitHub Actions/GitLab CI
  • Construction de conteneurs reproductibles avec Docker et builds multi-étapes
  • Observabilité des applications : journalisation structurée, métriques Prometheus et traçage

Sécurité, durcissement et bonnes pratiques

  • Audit des dépendances, bases de SBOM et scan des vulnérabilités
  • Pratiques de codage sécurisé pour la validation des entrées et la gestion des secrets
  • Durcissement à l'exécution : limites de ressources, droits des utilisateurs et sécurité des conteneurs

Projet de synthèse et revue

  • Travail d'équipe : concevoir et implémenter un petit service en utilisant les patrons du cours
  • Tests, vérification des types, empaquetage et pipeline CI pour le projet
  • Revue finale, critique du code et plan d'amélioration actionnable

Résumé et prochaines étapes

Pré requis

  • Expérience solide en programmation Python de niveau intermédiaire
  • Connaissance de la programmation orientée objet et des bases du test logiciel
  • Expérience avec l'utilisation de la ligne de commande et de Git

Public cible

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

Nombre de participants


Prix par participant

Nos clients témoignent (3)

Cours à venir

Catégories Similaires