Pourquoi est-ce important dans les projets réels ⏱️
Maintenabilité — c'est la vitesse du changement sans chutes ni nerfs. Plus le code est facile à lire et à tester, plus les versions sont rapides et moins il y a de bogues. Ces 5 erreurs sont les plus courantes, commençons par elles.
❌ Nombres et chaînes magiques
Les « 3 », « 0,15 » et « S » non évidents vous font deviner ce que cela signifie.
# était
if user_status == 3:
discount = 0.15
# est devenu
VIP_USER = 3
LOYALTY_DISCOUNT = 0.15
if user_status == VIP_USER:
discount = LOYALTY_DISCOUNT💡 Utilisez des constantes, des énumérations (Enum) et des configurations — le sens devient clair.
❌ Fonctions kilométriques
La fonction de 150 lignes fait tout à la fois : analyse l'entrée, valide, écrit dans la base de données, dessine un rapport.
# divisez en étapes
def parse_request(req): ...
def validate(data): ...
def save(data, db): ...
def build_report(data): ...
def handle(req):
data = parse_request(req)
validate(data)
save(data, db="main")
return build_report(data)Les petites fonctions sont plus faciles à tester, à réutiliser et à lire.
❌ Duplication de code
Le copier-coller conduit à une divergence de logique : à un endroit, ils ont corrigé, à un autre, ils ont oublié.
# était (deux blocs de calcul de taxe similaires)
def calc_tax_order(total): return total * 0.07
def calc_tax_invoice(total): return total * 0.07
# est devenu
def calc_tax(amount, rate=0.07):
return amount * rate🔁 Déplacez les éléments répétitifs dans une fonction, une classe ou un module ; dans les modèles, utilisez des macros/partials.
❌ Mauvais noms
Les noms f, x, processData sans contexte cassent la tête.
# était
def f(x): return x*7/100
# est devenu
def calculate_tax(price: float, tax_rate: float = 0.07) -> float:
return price * tax_rateDonnons des noms par domaine : ce que l'entité considère/fait exactement.
❌ Aucun commentaire ni documentation
Le code explique « comment », mais il faut souvent une réponse « pourquoi ». Les décisions et hypothèses complexes sans commentaires sont un piège.
def allocate_slots(users):
"""
Distributes slots to users.
The algorithm is greedy: first VIP, then PRO, then FREE.
This is critical for SLA partners.
"""
...📚 Maintenez les README, les docstrings et les commentaires courts sur les endroits non triviaux.

📊 Résumé : erreurs et comment les traiter
Erreur | Quels sont les risques | Correction |
|---|---|---|
Nombres / lignes magiques | Perte de sens, risques de modifications incorrectes | Constantes, Enum, configs |
Fonctions longues | Mauvais test, difficile à lire | Décomposition en étapes courtes |
Duplication | Divergence de logique, bogues lors des changements | Déplacement vers les fonctions/modules |
Mauvais noms | Diminution de la vitesse de lecture/d'intégration | Noms par logique de domaine |
Pas de documentation | Manquement aux délais, dépendance des « détenteurs de connaissances » | Docstrings, README, commentaires brefs |
Mini check-list avant les relations publiques ✅
Y a-t-il de la « magie » — des nombres/lignes sans signification ?
Les fonctions sont plus courtes ~ 30-40 lignes et font une seule chose ?
Copier-coller supprimé ? Répétition dans le module général.
Les noms se lisent-ils à la volée ? (méthodes, variables, fichiers)
Y a-t-il des docstrings/README pour l'entrée d'un débutant ?
Les tests couvrent-ils la logique clé ?
Où s'entraîner avec de bonnes pratiques 💡
Dans Codique nous rendons l'apprentissage de la programmation passionnant et compréhensible : nous avons des cours intéressants avec des tâches qui aident à améliorer les compétences étape par étape.
Et nous avons aussi un chaîne de télégram, où nous discutons d'idées intéressantes, partageons nos expériences et analysons ensemble les tâches, apprendre devient non seulement utile, mais aussi amusant.
Laquelle des cinq erreurs est la plus courante dans vos projets ?
