Clean code - FioDams/FioDams GitHub Wiki
Le "Clean Code" (Code Propre en français) est un concept popularisé par Robert C. Martin dans son livre "Clean Code: A Handbook of Agile Software Craftsmanship". Il s'agit d'un ensemble de principes et de pratiques visant à produire un code source lisible, maintenable et efficace. Voici quelques points clés du Clean Code :
-
Nommage clair et significatif :
- Utilisez des noms descriptifs pour les variables, fonctions et classes.
- Évitez les abréviations ambiguës.
-
Fonctions courtes et à responsabilité unique :
- Chaque fonction devrait faire une seule chose et la faire bien.
- Limitez la taille des fonctions (idéalement moins de 20 lignes).
-
Commentaires judicieux :
- Le code devrait être auto-explicatif.
- Utilisez des commentaires pour expliquer le "pourquoi" plutôt que le "comment".
-
Formatage cohérent :
- Suivez un style de formatage cohérent dans tout le projet.
- Utilisez des outils de formatage automatique si possible.
-
Gestion des erreurs appropriée :
- Traitez les exceptions de manière appropriée.
- Évitez de retourner des codes d'erreur numériques.
-
Ne répétez pas (DRY - Don't Repeat Yourself) :
- Évitez la duplication de code.
- Factorisez le code commun dans des fonctions ou des classes réutilisables.
-
Principes SOLID :
- Single Responsibility Principle (SRP)
- Open/Closed Principle (OCP)
- Liskov Substitution Principle (LSP)
- Interface Segregation Principle (ISP)
- Dependency Inversion Principle (DIP)
-
Tests unitaires :
- Écrivez des tests unitaires pour chaque fonction.
- Assurez-vous que les tests sont propres et maintenables.
-
Refactoring régulier :
- Améliorez continuellement la structure du code sans en changer le comportement.
-
Simplicité :
- Préférez des solutions simples et directes.
- Évitez la sur-ingénierie.
Voici un exemple simple pour illustrer certains de ces principes :
File: /src/user_management.py
# Mauvais exemple
def process(d):
for i in d:
if i['a'] > 10:
print(f"High value: {i['a']}")
# Bon exemple
def print_high_values(data):
THRESHOLD = 10
for item in data:
if item['value'] > THRESHOLD:
print(f"High value: {item['value']}")
# Utilisation
user_data = [{'value': 5}, {'value': 15}, {'value': 8}]
print_high_values(user_data)
Dans cet exemple, la version "propre" du code :
- Utilise des noms descriptifs (print_high_values, data, item, THRESHOLD).
- A une responsabilité unique (imprimer les valeurs élevées).
- Est plus lisible et auto-explicative.
- Utilise une constante pour le seuil, facilitant les modifications futures.
En appliquant ces principes, vous pouvez créer un code plus facile à comprendre, à maintenir et à faire évoluer, ce qui est essentiel pour des projets à long terme et le travail en équipe.