← Retour au blog
tech 21 juin 2026

La duplication de code vaut mieux qu'une mauvaise abstraction

Découvre pourquoi la duplication de code peut être plus bénéfique que de créer une mauvaise abstraction, et comment cela peut sauver ton projet logiciel.

Article inspiré de la source originale
Code duplication is far cheaper than the wrong abstraction (2016) ↗ sandimetz.com

Introduction

Dans le monde du développement logiciel, l'un des mantras les plus répandus est celui de la réutilisation du code. Cependant, Sandi Metz, dans son célèbre article de 2016, a mis en lumière un point crucial : "La duplication est bien moins coûteuse qu'une mauvaise abstraction". Mais pourquoi cette idée a-t-elle suscité autant de réactions ? Et surtout, comment peut-elle s'appliquer concrètement à tes projets ?

La tentation de l'abstraction

Le développement de logiciels est souvent une danse délicate entre simplicité et complexité. Lorsqu'un développeur rencontre des segments de code redondants, l'instinct naturel est d'abstraire ce code en une fonction ou une classe réutilisable. Cette approche a du sens sur le papier : elle réduit le code dupliqué et facilite la maintenance. Toutefois, l'abstraction trop hâtive peut engendrer des problèmes majeurs si elle est mal conçue.

Prenons un exemple concret. Imaginons un système de gestion de commandes où plusieurs modules calculent les taxes. Chaque module a ses propres spécificités. Si tu crées une abstraction trop générale pour gérer ces calculs, tu risques de te retrouver avec une logique conditionnelle complexe qui rendra le code difficile à lire et à maintenir.

Les dangers de la mauvaise abstraction

Une mauvaise abstraction peut transformer un code simple en un véritable cauchemar. Avec le temps, les développeurs ajoutent des paramètres et des conditions pour accommoder les nouveaux cas d'utilisation, rendant le code de plus en plus incompréhensible. C'est ce que Sandi appelle le "fallacy of sunk cost" : plus le code est complexe, plus on hésite à le modifier ou le supprimer, car on a déjà trop investi dedans.

Exemple chiffré

Selon une étude de Stripe en 2021, les développeurs passent en moyenne 42 % de leur temps à gérer des dettes techniques et des mauvaises abstractions, ce qui coûte à l'industrie des milliards chaque année. C'est un temps et un budget qui pourraient être investis dans l'innovation plutôt que dans la maintenance.

Quand la duplication devient un atout

Choisir la duplication plutôt qu'une mauvaise abstraction n'est pas un plaidoyer pour l'anarchie du code, mais une invitation à la prudence et à la réflexion. La duplication peut parfois offrir plus de clarté et de flexibilité. Par exemple, dans un projet où les spécifications sont susceptibles de changer fréquemment, il peut être plus judicieux de maintenir des duplications contrôlées plutôt que de s'enfermer dans une abstraction rigide.

Stratégies pour éviter les mauvaises abstractions

  1. Retarder l'abstraction : Ne crée pas d'abstraction trop tôt. Laisse le code évoluer et les patterns émerger.
  2. Revue de code régulière : Implique d'autres développeurs pour évaluer la clarté et la pertinence des abstractions.
  3. Tests unitaires : Assure-toi que chaque abstraction est bien couverte par des tests pour éviter les régressions lors des modifications.

Conclusion

La duplication de code, bien que souvent mal vue, peut être une alliée précieuse dans le développement logiciel. Elle peut te permettre d'éviter les pièges d'une abstraction prématurée et de garantir que ton code reste flexible et facile à comprendre.

Discutons de ton projet en 15 minutes.

code duplication wrong abstraction software development technical debt code maintenance
Newsletter Deepthix · 100% IA · chaque lundi 8h

Un agent IA lit la tech à ta place.

Notre agent IA scanne ~200 sources par semaine et te livre les meilleurs articles le lundi 8h. Gratuit. 1 clic pour se désinscrire.

Voir la page newsletter →

Tu veux automatiser tes opérations ?

Discutons de ton projet en 15 minutes.

Réserver un call