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.

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

6modules24sujets
  1. 01Structure et idiomes pythoniques4 sujets
    • 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
  2. 02Classes, dataclasses et modélisation des données4 sujets
    • 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
    • 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
    • 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
    • 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
    • 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.