À retenir
- Une seule source de vérité pour chaque morceau de logique.
- Facilite grandement la maintenance et la mise à jour du code.
- Réduit les risques de bugs liés à l'oubli d'une mise à jour sur une copie.
Ce principe est une règle d'or qui consiste à éviter d'écrire plusieurs fois la même logique ou le même code dans un programme. L'idée est simple : si vous devez modifier une règle de calcul ou un texte, il est bien plus efficace de n'avoir à le faire qu'à un seul endroit plutôt que de traquer toutes ses copies dans votre projet.
Étymologie
Il s'agit de la traduction littérale de l'acronyme anglais DRY (Don't Repeat Yourself). Ce concept a été formalisé par Andrew Hunt et David Thomas dans leur livre de référence The Pragmatic Programmer, publié pour la première fois en 1999.
Exemples d'usage
- Utiliser une fonction pour calculer les frais de port d'une commande au lieu de réécrire la formule mathématique sur chaque page du site marchand.
- Créer un composant de bouton unique pour une interface mobile afin que tous les boutons aient la même apparence sans redéfinir leurs couleurs à chaque fois.
Cas d'usage
On applique ce concept en développement web (CSS, composants), en administration système (scripts d'automatisation) et dans la gestion des bases de données (normalisation pour éviter de stocker deux fois la même information).
Bonnes pratiques
La meilleure pratique consiste à factoriser le code : extraire les parties communes pour les placer dans des fonctions ou des modules réutilisables. Attention toutefois à ne pas tomber dans l'excès (l'abstraction prématurée) : si deux morceaux de code se ressemblent mais n'ont pas la même finalité, les fusionner peut rendre le programme inutilement complexe.
Synonymes
Antonymes
Conseil
Si vous effectuez un copier-coller de code, c'est le signal d'alarme ! Arrêtez-vous et demandez-vous si vous ne pourriez pas créer une fonction ou une variable pour centraliser ce bloc. C'est ainsi que l'on passe d'un code 'bricolé' à un code professionnel.
Questions fréquentes
Quel est l'opposé de DRY ?
On parle de principe WET (Write Everything Twice), ce qui signifie 'écrire tout deux fois', souvent par paresse ou manque de conception.
Est-ce toujours une bonne idée ?
Presque toujours, sauf si cela rend le code illisible ou crée des dépendances trop complexes entre des parties du programme qui n'ont rien à voir.