🐍 **REFACTORING PYTHON — DES FONCTIONS À LA MODULARITÉ | Partie 2**
CodeEnJava
0:00 / 0:00
🐍 **REFACTORING PYTHON — DES FONCTIONS À LA MODULARITÉ | Partie 2**
23 просмотра · 6 дней назад
CodeEnJava
62 подписчика
23 просмотра · 6 дней назад
🐍 *REFACTORING PYTHON — DES FONCTIONS À LA MODULARITÉ | Partie 2*
Dans cette deuxième vidéo consacrée au **refactoring Python**, nous poursuivons l'évolution du projet **« Analyse des participants avec les ensembles »**.
🎯 *Objectif :* transformer progressivement le programme en une application plus **modulaire, lisible, réutilisable et maintenable**, grâce aux fonctions et à la séparation des responsabilités.
---
🔄 RETOUR SUR LA PREMIÈRE PARTIE
Avant de poursuivre, nous faisons le point sur les modules déjà créés :
📁 `data_menu.py` → données des menus
📁 `utils.py` → fonctions utilitaires
📁 `reader.py` → saisie utilisateur
📁 `menu.py` → affichage des menus
Une présentation réalisée avec Genially accompagne cette évolution :
🔗 https://view.genially.com/6a9e9f6c814...
---
⌨️ ÉVOLUTION DE `reader.py`
Nous enrichissons le module `reader.py` afin de centraliser les saisies utilisateur.
Deux fonctions sont notamment utilisées :
🔹 `read_integer_min_max()` → lire et contrôler un entier
🔹 `read_str()` → lire et contrôler une chaîne non vide
Nous abordons également :
`while True`
`try / except`
`ValueError`
`TypeError`
`isinstance()`
validation des paramètres
contrôle des valeurs
L'objectif est de rendre les fonctions plus **robustes et réutilisables**.
---
⚙️ CRÉATION DE `services.py`
Nous créons ensuite le module :
📁 *`services.py`*
Son rôle est de regrouper les fonctions réalisant les **opérations sur les groupes de participants**.
Quatre fonctions sont étudiées :
🔹 `groupe_set()` → transformer la liste des groupes en dictionnaire
🔹 `is_items_str()` → valider le contenu du dictionnaire
🔹 `display_groupes()` → afficher les groupes
🔹 `select_group()` → sélectionner un groupe
---
🔗 RÉUTILISER LES FONCTIONS
Une notion essentielle apparaît : **une fonction peut appeler une autre fonction**.
Par exemple :
```text
select_group()
↓
is_items_str()
↓
display_groupes()
↓
read_integer_min_max()
```
On évite ainsi de dupliquer le code et chaque fonction conserve une **responsabilité clairement définie**.
---
🏗️ VERS UNE APPLICATION MODULAIRE
L'architecture évolue progressivement vers :
```text
data.py → données
reader.py → saisies utilisateur
services.py → opérations métier
menu.py → affichage des menus
main.py → orchestration
```
On retrouve ainsi le principe :
*Données → Services → Interface → Programme principal*
C'est cette séparation des responsabilités qui constitue l'un des objectifs essentiels du **refactoring**.
---
🧠 NOTIONS ABORDÉES
🐍 Fonctions Python
🐍 Paramètres et valeurs de retour
🐍 `return`
🐍 `while True`
🐍 `try / except`
🐍 `TypeError` et `ValueError`
🐍 `isinstance()`
🐍 Dictionnaires
🐍 Validation des données
🐍 Réutilisation des fonctions
🐍 Modularité
🐍 Refactoring
---
💻 CODE SOURCE
Le projet complet est disponible sur GitHub :
🔗 https://github.com/CodeEnJava/2026-se...
Vous pouvez ainsi suivre les différentes étapes du refactoring et l'évolution progressive de l'architecture.
---
👍 Si la vidéo vous plaît, pensez à *liker**, à vous **abonner à CodeEnJit* et à activer la 🔔 pour suivre les prochaines séances.
💬 Vos questions et remarques sont les bienvenues dans les commentaires.
#Python #Refactoring #FonctionsPython #Modularité #ProgrammationPython #CodePython #ApprendrePython #CodeEnJava