4D Training & Consultancy

Développement logiciel

Python intermédiaire et pratiques de code propre

Conçue pour les développeurs dont le code Python fonctionne mais résiste au changement. Le programme couvre dataclasses, générateurs, décorateurs, gestionnaires de contexte et annotations de types, puis applique les refactorings qui transforment un module interminable en unités testées contrôlées par black, ruff et mypy.

4 joursPrésentiel interne, en ligne ou sur mesureÉquipes corporate et groupes professionnelsNiveau: Intermédiaire

Aperçu

Un apprentissage pratique pour le transfert en situation de travail.

Le symptôme habituel est un module que seul son auteur ose modifier : des fonctions à onze paramètres, des indicateurs qui changent le comportement trois niveaux plus bas, des blocs copiés-collés qui ont divergé, et une file de revue où nul ne sait si un changement est sûr. Cette formation traite le problème comme structurel, non comme une question de style. Les participants découvrent les mécanismes du langage qui suppriment réellement la duplication — dataclasses, générateurs, décorateurs, gestionnaires de contexte, protocoles — puis répètent les refactorings d'extraction sur du code dépourvu de tests.

Prérequis

Au moins six mois de pratique de Python. Les participants doivent déjà écrire des fonctions, manipuler des dictionnaires et lire des fichiers.

Objectifs

  • Refactoriser de longs modules procéduraux en fonctions, classes et dataclasses cohérentes.
  • Appliquer générateurs et protocole d'itération pour traiter de gros volumes sans saturer la mémoire.
  • Écrire des décorateurs et gestionnaires de contexte supprimant la logique transverse répétée.
  • Annoter une base de code existante et faire respecter les types progressivement avec mypy.
  • Configurer black, ruff et pre-commit pour retirer les débats de style de la revue de code.
  • Concevoir des hiérarchies d'exceptions et des contrats d'erreur exploitables par l'appelant.

Public cible

  • Développeurs Python livrant du code fonctionnel mais difficile à maintenir
  • Ingénieurs data dont les notebooks sont devenus des scripts de production
  • Développeurs backend venant de Java, C# ou PHP vers Python
  • Responsables techniques définissant les standards d'une base de code Python
  • Ingénieurs d'automatisation maintenant l'outillage interne partagé
  • Relecteurs de code cherchant un vocabulaire commun sur la qualité Python

Programme

Une structure claire pour le parcours d'apprentissage.

Programme

Les points du programme sont regroupés dans un seul bloc au lieu de créer un module par ligne.

Module 1 : Structure et idiomes pythoniques

Itération et déballage idiomatiques au lieu de boucles pilotées par index

Compréhensions, expressions génératrices et cas où une boucle reste plus claire

EAFP contre LBYL et le coût des vérifications défensives excessives

Nommage, organisation des modules et règles PEP 8 qui pèsent réellement en revue

Module 2 : Classes, dataclasses et modélisation des données

Décider quand une classe se justifie et quand une fonction suffit

dataclasses et namedtuples pour représenter des enregistrements structurés

Propriétés, méthodes de classe, méthodes statiques et méthodes spéciales

Composition plutôt qu'héritage, illustrée en aplatissant une hiérarchie profonde

Module 3 : Itérateurs, générateurs et pipelines paresseux

Le protocole d'itération et l'écriture de générateurs avec yield

Traiter en flux un fichier de plusieurs gigaoctets sans le charger en mémoire

itertools pour découper, regrouper et fenêtrer des flux d'enregistrements

Pipelines de générateurs comparés à la construction de listes intermédiaires

Module 4 : Décorateurs, gestionnaires de contexte et réutilisation

Fermetures, functools.wraps et décorateurs préservant les signatures

Chronométrage, réessai, cache et journalisation d'audit écrits une seule fois

contextlib pour gérer ressources, états temporaires et nettoyage

Regrouper des blocs try/finally dupliqués dans une portée unique gérée

Module 5 : Typage, outillage et contrôles qualité automatisés

Annotations pour fonctions, conteneurs, Optional, Union et Protocol

Introduire mypy dans une base non typée sans interrompre les livraisons

black, ruff et ordre des imports configurés une fois dans pyproject.toml

Hooks pre-commit bloquant le code non formaté ou non linté avant la revue

Module 6 : Atelier de refactoring et de revue

Lire un module hérité et cartographier ses responsabilités réelles

Extraire fonction, extraire classe et remplacer les drapeaux par du polymorphisme

Supprimer la duplication sans créer d'abstractions prématurées

Mener une revue en direct sur la base d'une check-list qualité convenue

Supports fournis

  • Manuel de formation, exemples de code commentés et notes de référence
  • Environnement de laboratoire et dépôts de démarrage
  • Exercices, check-lists et modèles de code réutilisables
  • Certificat de participation 4D
  • Accompagnement technique après la formation

Options de formation

Les programmes peuvent être organisés en entreprise, en ligne ou dans un format hybride selon le calendrier, la localisation et les objectifs de vos équipes. Lorsqu'un certificat ou un examen externe est inclus, les règles et frais de certification restent soumis aux politiques de l'organisme certificateur, tandis que 4D assure la formation et l'accompagnement à la préparation.

Pourquoi choisir 4D

4D apporte l'un de vos modules réels en salle et le refactorise en direct : la discussion porte sur vos chaînes d'héritage et vos utilitaires dupliqués, pas sur un exemple d'école. Les participants repartent avec un pyproject.toml configuré, une installation pre-commit et une check-list de revue déjà débattue et validée par l'équipe.

Contacter 4D

Planifiez le bon parcours de formation ou de conseil pour votre équipe.

Partagez quelques détails et 4D orientera votre demande vers la formation, le conseil, l’évaluation, Phoenix ou un programme sur mesure.