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 similaires à celles que nous utilisons dans nos projets (images satellites au 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
Très bonne préparation et expertise de l'animateur, communication parfaite en anglais. Le cours était pratique (exercices + partage d'exemples d'usage).
Monika - Procter & Gamble Polska Sp. z o.o.
Formation - Developing APIs with Python and FastAPI
Traduction automatique
L'explication
Wei Yang Teo - Ministry of Defence, Singapore
Formation - Machine Learning with Python – 4 Days
Traduction automatique
Le formateur développe la formation en fonction du rythme des participants
Farris Chua
Formation - Data Analysis in Python using Pandas and Numpy
Traduction automatique