Repetera inte dig själv ( DRY ; från engelska - “do not repeat yourself”) är en mjukvaruutvecklingsprincip som syftar till att minska upprepningen av information av olika slag, särskilt i system med många abstraktionslager . DRY-principen är formulerad som: "Varje kunskap måste ha en unik, konsekvent och auktoritativ representation inom systemet" [1] . Det formulerades av Andy och Thomas i deras bok Pragmatic Programmer . De tillämpade denna princip på " databasscheman, testplaner, mjukvarubyggen, till och med dokumentation " [2] . När DRY-principen tillämpas framgångsrikt, kräver ändring av ett enskilt element i systemet inte ändringar av andra, logiskt orelaterade element. De element som är logiskt relaterade förändras på ett förutsägbart och enhetligt sätt. Förutom att använda metoder och funktioner i kod anser Thomas och Hunt att det är nödvändigt att använda kodgeneratorer, automatiska kompileringssystem.
DRY-principen, även känd som Single Source of Truth i modelldrivna arkitektursystem där programartefakter extraheras från huvudobjektmodellen och uttrycks i en form som UML . DRY-kod skapas med hjälp av datakonvertering och kodgeneratorer som låter programutvecklaren undvika klipp, kopiera och klistra in operationer . Vanligtvis gör kod skriven enligt denna princip det lättare att hantera stora informationssystem. Verktyg som XDoclet och XSLT DRY-programmeringstekniker Exempel på system som kräver dubblering av information är Enterprise Java Beans version 2, som kräver dubblering inte bara i Java -kod utan även i konfigurationsfiler.
Exempel på system som försöker eliminera dubblering av information ärSymfony , web2py , Yii , Django , Ruby on Rails [3] [4] , Phalcon- ramverk , Visual Studio LightSwitch och Enterprise Java Beans version 3-ramverk.
Brott mot DRY-principen kallas WET - "Skriv allt två gånger" ( rus. Skriv allt två gånger ) [5] eller "Vi tycker om att skriva" ( rus. Vi gillar att skriva ut ). Det här är en lek med de engelska orden "dry" ( Russian dry ) och "wet" ( Russian wet ).