No te repitas ( DRY ; del inglés - "no te repitas") es un principio de desarrollo de software destinado a reducir la repetición de información de varios tipos, especialmente en sistemas con muchas capas de abstracción . El principio DRY se formula como: "Cada pieza de conocimiento debe tener una representación única, consistente y autorizada dentro del sistema" [1] . Fue formulado por Hunt Dave Thomas en su libro Pragmatic Programmer . Aplicaron este principio a " esquemas de bases de datos"., planes de prueba, compilaciones de software, incluso documentación " [2] . Cuando el principio DRY se aplica con éxito, cambiar un solo elemento del sistema no requiere cambios en otros elementos lógicamente no relacionados. Aquellos elementos que están lógicamente relacionados cambian de forma predecible y uniforme. Además de utilizar métodos y funciones en código, Thomas y Hunt consideran necesario utilizar generadores de código, sistemas de compilación automática.
El principio DRY, también conocido como Fuente única de la verdad en arquitectura basados en modelos en los que los artefactos del programa se extraen del modelo de objeto principal y se expresan en una forma como UML . El código DRY se crea utilizando conversión de datos y generadores de código que permiten al desarrollador de software evitar las operaciones de cortar, copiar y pegar . Por lo general, el código escrito de acuerdo con este principio facilita la gestión de grandes sistemas de información. Herramientas como XDoclet y XSLT técnicas de programación DRY Ejemplos de sistemas que requieren duplicación de información son Enterprise Java Beans versión 2, que requiere duplicación no solo en código Java sino también en archivos de configuración.
Ejemplos de sistemas que intentan eliminar la duplicación de información sonSymfony , web2py , Yii , Django , Ruby on Rails [3] [4] , Phalcon frameworks , Visual Studio LightSwitch y Enterprise Java Beans versión 3 frameworks.
Las violaciones del principio DRY se denominan WET: "Escriba todo dos veces" ( rus. Escriba todo dos veces ) [5] o "Disfrutamos escribiendo" ( rus. Nos gusta imprimir ). Este es un juego de palabras en inglés "seco" ( ruso seco ) y "húmedo" ( ruso mojado ).