Ne ismételd magad (DRY, vagy Ne ismételje meg önmagát) a szoftverfejlesztés egy alapelve, amelynek célja a szoftverminták ismétlődésének csökkentése, absztrakciók helyettesítése vagy az adatok normalizálása, a redundancia elkerülésének érdekében.
A DRY elvet a következőképpen fogalmazzák meg: "Minden tudásnak egyetlen, egyértelmű, reprezentációval kell rendelkeznie egy rendszeren belül". Az elvet Andy Hunt és Dave Thomas fogalmazta meg a Pragmatikus Programozó könyvében. Meglehetősen széles körben alkalmazzák az "adatbázis-sémákat, tesztterveket, az összeállítási rendszert, és még akár a dokumentációt is". A DRY elv sikeres alkalmazásakor a rendszer bármely elemének módosítása nem igényli, más logikailag független elemek megváltoztatását. Ezenkívül a logikusan összefüggő elemek kiszámíthatóan és egyenletesen változnak, így ezek szinkronban vannak. A módszerek és szubrutinok kódban történő felhasználása mellett Thomas és Hunt kódgenerátorokra, automatikus összeállítási rendszerekre és szkriptnyelvekre támaszkodtak, hogy a DRY alapelveket az egyes rétegek között megfigyeljék.
DRY vs WET megoldások A DRY megsértéseit általában WET megoldásoknak nevezik, amelyeket általában "minden alkalommal írj", "kétszer írj mindent", "élvezzük a gépelést" vagy "mindenki időt pazaroljunk" kifejezésre. A WET megoldások gyakoriak a többrétegű architektúrákban, ahol a fejlesztőknek fel lehet bízni például egy kommentármező hozzáadását egy webes alkalmazás űrlapjára. A "komment" szöveges karakterlánc megismétlődik a címkében, a HTML-címkében, az olvasási funkció nevében, egy privát változóban, az adatbázis DDL-ben, a lekérdezésekben és így tovább. A DRY megközelítés kiküszöböli ezt a redundanciát olyan keretek felhasználásával, amelyek csökkentik vagy megszüntetik az összes szerkesztési feladatot, kivéve a legfontosabb feladatokat, és meghosszabbítják az új tudásváltozók hozzáadhatóságát egy helyen.
Források
További információk
Don't Repeat Yourself at WikiWikiWeb Once and Only Once at WikiWikiWeb 97 Things Every Programmer Should Know (O'Reilly) The myth of over-normalization (discussion of academic extremes vs. real-world database scenarios)
Fordítás
Kategória:Programtervezési minták