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
Nos clients témoignent (5)
Le fait d'avoir plus d'exercices pratiques utilisant des données plus proches de ce que nous utilisons dans nos projets (images satellites en format raster)
Matthieu - CS Group
Formation - Scaling Data Analysis with Python and Dask
Traduction automatique
J'ai trouvé que le formateur était très compétent et a répondu aux questions avec assurance pour clarifier la compréhension.
Jenna - TCMT
Formation - Machine Learning with Python – 2 Days
Traduction automatique
Une très bonne préparation et expertise de la part du formateur, une communication parfaite en anglais. Le cours était pratique (exercices + partage d'exemples de cas d'utilisation)
Monika - Procter & Gamble Polska Sp. z o.o.
Formation - Developing APIs with Python and FastAPI
Traduction automatique
La explanation
Wei Yang Teo - Ministry of Defence, Singapore
Formation - Machine Learning with Python – 4 Days
Traduction automatique
Formateur développe la formation selon le rythme des participants
Farris Chua
Formation - Data Analysis in Python using Pandas and Numpy
Traduction automatique