Plan du cours

Jour 1 — Fondations robustes de Python et outils

Fonctionnalités modernes de Python et typage

  • Bases du typage, génériques, Protocols et TypeGuard
  • Dataclasses, dataclasses figées et aperçu d'attrs
  • Correspondance de motifs (PEP 634+) et utilisation idiomatique

Qualité du code et outils

  • Mise en forme et analyse statique du code : black, isort, flake8, ruff
  • Vérification de type statique avec MyPy et pyright
  • Hooks pré-commit et flux de travail des développeurs

Gestion de projet et emballage

  • Gestion des dépendances avec Poetry et environnements virtuels
  • Structure des packages, points d'entrée et meilleures pratiques de versionnement
  • 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 de création : 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 et limites
  • Modèles d'injection de dépendances et gestion des configurations

Modularité et réutilisation

  • Conception du code de bibliothèque vs application
  • API, interfaces stables et versionnement sémantique
  • Gestion des configurations, secrets et paramètres spécifiques à l'environnement

Jour 3 — Concurrency, Async IO et performance

Concurrency et parallélisme

  • Fondamentaux des threads et implications du GIL
  • Multiprocessing et pools de processus pour les tâches CPU-bound
  • Quand utiliser concurrent.futures vs multiprocessing

Programmation asynchrone avec asyncio

  • Modèles async/await, boucle d'événements et annulation
  • Conception de bibliothèques asynchrones et interopérabilité avec le code synchrone
  • Modèles IO-bound, backpressure et limitation du taux

Profiling et optimisation

  • Outils de profiling : cProfile, pyinstrument, perf, memory_profiler
  • Optimisation des chemins chauds et utilisation d'extensions C/Numba si nécessaire
  • 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 fixtures avec pytest ; organisation des tests
  • Tests basés sur les propriétés avec Hypothesis et tests contractuels
  • Mocking, monkeypatching et tests de code asynchrone

CI/CD, release et monitoring

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

Sécurité, renforcement et meilleures pratiques

  • Audit des dépendances, bases SBOM et analyse de vulnérabilités
  • Pratiques de codage sécurisé pour la validation des entrées et la gestion des secrets
  • Renforcement en temps d'exécution : limites de ressources, droits utilisateur et sécurité des conteneurs

Projet final et revue

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

Résumé et étapes suivantes

Pré requis

  • Solides compétences en programmation Python de niveau intermédiaire
  • Familiarité avec la programmation orientée objet et les tests de base
  • Expérience de l'utilisation de la ligne de commande et de Git

Audience

  • Développeurs Python seniors
  • Ingénieurs logiciels responsables de la qualité du code Python et de son architecture
  • Chefs de projet 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 (5)

Cours à venir

Catégories Similaires