Ne vous répétez pas (don’t repeat yourself en anglais, aussi désigné par l’acronyme DRY) est une philosophie en programmation informatique consistant à éviter la redondance de code au sein d’une application afin de faciliter la maintenance, le test, le débogage et les évolutions de cette dernière.
La philosophie DRY est explicitée par la phrase suivante, formulée par Andy Hunt et Dave Thomas dans leur livre The Pragmatic Programmer : « Dans un système, toute connaissance doit avoir une représentation unique, non-ambiguë, faisant autorité ». Les auteurs appliquent ce principe pour inclure les bases de données, les plans de tests, le système de construction logiciel et même la documentation logicielle. Lorsque le principe DRY est bien appliqué, la modification d'un élément d'un système ne change pas les autres éléments non liés logiquement. De plus, tous les éléments liés logiquement changent uniformément, de manière prévisible et restent synchronisés. En utilisant les méthodes et les sous-routines dans leur code, Thomas et Hunt se reposent sur les générateurs de code source, les systèmes de construction automatique, et les langages de scripts pour respecter le principe DRY à travers les diverses étapes de construction d'un logiciel.
Cette philosophie prévaut dans l'architecture dirigée par les modèles, dans lequel les artefacts logiciels sont dérivés d'un modèle objet central décrit dans un langage tel qu'UML. Le code DRY est créé par transformation de données et les générateurs de code qui évitent au programmeur de copier-coller du code. Le code DRY facilite la maintenance de systèmes logiciels complexes, à partir du moment où les transformations de données sont faciles à créer et maintenir. Des outils tels que les annotations, XDoclet et XSLT sont des exemples de technique de codage DRY.
Un exemple de système requérant une duplication d'information sont les EJB 2.0 qui nécessitent une duplication d'information non seulement dans le code Java, mais aussi dans les fichiers de configuration.