Ne ismételd magad ( DRY ; angolul - "ne ismételd magad") egy szoftverfejlesztési elv , amelynek célja a különféle típusú információk ismétlődésének csökkentése, különösen sok absztrakciós rétegű rendszerekben . A DRY elv a következőképpen fogalmazódik meg: "Minden tudásnak egyedi, következetes és hiteles reprezentációval kell rendelkeznie a rendszeren belül" [1] . Hunt Dave Thomas fogalmazta meg a Pragmatic Programmer című könyvében . Ezt az elvet alkalmazták az adatbázissémákra, teszttervek, szoftver buildek, sőt dokumentáció is " [2] . A DRY elv sikeres alkalmazása esetén a rendszer egyetlen elemének megváltoztatása nem igényel más, logikailag nem kapcsolódó elemek módosítását. A logikailag összefüggő elemek kiszámíthatóan és egységesen változnak. A kódban való metódusok és függvények használata mellett Thomas és Hunt szükségesnek tartja a kódgenerátorok, automatikus fordítórendszerek használatát.
más néven az igazság egyetlen forrása a modellvezérelt architektúra rendszerekben , amelyekben a programtermékeket a fő objektummodellből nyerik ki, és olyan formában fejezik ki, mint az UML . A DRY kódot adatkonverzióval és kódgenerátorokkal hozzák létre, amelyek lehetővé teszik a szoftverfejlesztő számára, hogy elkerülje a kivágási, másolási és beillesztési műveleteket . Általában az ezen elv szerint írt kód megkönnyíti a nagy információs rendszerek kezelését. Az olyan eszközök, mint az XDoclet és az XSLT , DRY programozási technikák Az információk megkettőzését igénylő rendszerek például az Enterprise Java Beans 2. verziója, amely nem csak a Java kódban , hanem a konfigurációs fájlokban is megköveteli a többszörözést.
Példák olyan rendszerekre, amelyek megpróbálják kiküszöbölni az információk megkettőzését:Symfony , web2py , Yii , Django , Ruby on Rails [3] [4] , Phalcon keretrendszerek , Visual Studio LightSwitch és Enterprise Java Beans 3-as verziójú keretrendszerek.
A SZÁRAZ elv megsértését WET - "Írjon mindent kétszer" ( rus. Write mindent kétszer ) [5] vagy "Szeretnénk gépelni" ( rus. Szeretünk nyomtatni ) nevezni. Ez egy játék az angol „dry” ( orosz dry ) és a „wet” ( orosz wet ) szavakkal.