La duplication de code coûte moins cher qu'une mauvaise abstraction
Les développeurs adorent le principe DRY.
Vous voulez éviter de vous répéter. Vous voulez un code élégant et réutilisable.
Mais cet objectif mène souvent à un piège : l'abstraction prématurée.
Répéter du code semble incorrect. Pourtant, la duplication est souvent moins coûteuse qu'une mauvaise abstraction.
Nous essayons de construire des systèmes modulaires parfaits. Nous recherchons des modèles et extrayons la logique pour gérer la complexité.
Des abstractions bien conçues aident le logiciel à monter en charge.
Mais de nombreuses abstractions sont construites trop tôt. Si vous ne comprenez pas pleinement le problème, votre abstraction devient un fardeau.
Une mauvaise abstraction cause plusieurs problèmes :
- Sur-ingénierie : Vous construisez des solutions complexes pour des problèmes simples.
- Rigidité : Votre code devient difficile à modifier car il tente de prédire un futur qui n'arrive jamais.
- Intention obscurcie : La logique métier se cache sous des couches d'interfaces génériques. Cela rend le débogage difficile.
- Couplage fort : Des parties de votre système se retrouvent liées à l'abstraction elle-même.
Le coût est élevé. Vous passez du temps à lutter contre votre propre architecture au lieu de résoudre les problèmes des utilisateurs. Cela ralentit votre équipe et rend le refactoring difficile.
Je ne vous dis pas de tout copier et coller. Je suggère une approche pragmatique.
Utilisez la duplication contrôlée comme un outil. Utilisez-la dans les domaines où les exigences changent rapidement ou là où vous faites face à l'incertitude.
Attendez de voir clairement le modèle avant de construire l'abstraction.