Projet final et méthodologie
Se connecter pour s'inscrireVotre progression
Syllabus
-
-
Objectifs
-
Validations de compétences
-
Public cible
Aucun public cible spécifié pour ce module.
-
Besoins techniques
-
Prérequis
- Aucun prérequis
-
Niveau
-
Historique du module
Aucune action enregistrée
Projet final et méthodologie
-
Projet fil rouge : gestionnaire de dépenses
Le projet porte sur tout le cours. Il est volontairement modeste en dépendances — seule la bibliothèque standard — et Livrable avec des tests.
Le sujet
Un gestionnaire de dépenses personnelles : ajouter des dépenses, les classer par catégorie, produire un rapport mensuel, et persister les données dans un fichier JSON.
Contraintes
- Un fichier
depenses.pypour le modèle et les règles métier, un fichiertest_depenses.pypour les tests, un point d'entréemain.py. - Aucune dépendance externe : uniquement la bibliothèque standard.
- Chaque fonction doit être courte, testée, et documentée par une docstring.
- Les entrées utilisateur invalides produisent un message clair, jamais une trace Python brute.
- Les données sont écrites avec
json.dumpet relues au démarrage. - Au moins 12 tests couvrent le cas nominal, les cas limites et les erreurs.
Structure attendue
gestionnaire/ ├── main.py ├── depenses.py └── test_depenses.pyConduite du projet
Étape Livrable Critère de fin 1. Modèle de données classe Depensetests unitaires au vert 2. Métier ajout, filtrage, rapport tests unitaires au vert 3. Persistance lecture/écriture JSON aller-retour vérifié 4. Interface menu en console parcours complet testé 5. Qualité PEP 8, docstrings relecture sans commentaire On ne passe à l'étape suivante que quand la précédente est vérifiée. C'est ce qui distingue un projet qui avance d'un projet qui s'épuise.
- Un fichier
-
Méthodologie et bonnes pratiques
Les règles qui font la différence
- Lisibilité avant astuce. Si une expression demande une seconde de réflexion, elle est trop compliquée.
- Le code lu plus souvent qu'il n'est écrit. Nommer clairement vaut mieux que commenter.
- Une fonction, une responsabilité. Une fonction qui fait trois choses ne se teste pas.
- La bibliothèque standard d'abord. Écrire soi-même ce qu'elle fournit est une perte de temps.
- Gérer l'erreur là où elle est prévisible. Pas
de
exceptsilencieux.
PEP 8, l'essentiel
- quatre espaces d'indentation, jamais des tabulations
- 79 à 99 caractères par ligne
- deux lignes vides entre les fonctions de haut niveau
snake_casepour les fonctions et variables,PascalCasepour les classes
Outils utiles
python -m venvetpippour l'environnement et les dépendancesunittestpour les tests (inclus)pip install ruff: vérificateur de style et de bogues, très rapidepip install black: formatage automatique
Un projet sans
requirements.txtn'est pas reproductible : la liste des dépendances fait partie du code.Pour aller plus loin
- Données :
pandaspour l'analyse,matplotlibpour les graphiques. - Web :
Flask(léger) ouDjango(complet). - Automatisation :
openpyxlpour Excel,requestspour les API. - Tests de style :
pytest, alternative moderne àunittest.
-
Ressources et évaluation
Méthodes d'évaluation
- Quiz à la fin de chaque module, sur la syntaxe et les concepts.
- Atelier : un exercice guidé avec livrable.
- Projet final : évalué sur les tests, la lisibilité et le respect des contraintes.
- Code review : chaque atelier est relu avec des remarques concrètes.
Critères d'évaluation du projet
- fonctionnel : toutes les contraintes sont respectées
- qualité : tests au vert, code relu, style respecté
- progressé : étapes livrées dans l'ordre, avec commits identifiables