Ne ismételd önmagad

szoftverfejlesztési alapelv
Ez a közzétett változat, ellenőrizve: 2021. augusztus 10.

A számítógép-programozásban a ne ismételd önmagad (angolul don't repeat yourself, DRY) egy szoftverfejlesztési alapelv, ami a redundancia, és az abból eredő hibalehetőségek minimalizálását tűzi ki célul. Ehhez absztrakciók felhasználásával csökkenteni kell a szoftverminták ismétlődését, valamint az adatokat normalizálni.

Az elvet úgy fogalmazzák meg, mint: Egy rendszerben minden egyes adatnak legyen egyetlen, meghatározott, felelős reprezentációja. Ezt Andy Hunt és Dave Thomas fogalmazta meg The Pragmatic Programmer című könyvükben. Alkalmazását széles körben ajánlják, kiterjesztve hatókörét adatbázissémákra, teszttervekre, fordítórendszerre, még a dokumentációra is.[1] Következetes alkalmazása esetén egy módosítás nem eredményezheti azt, hogy valahol, egy logikailag nem kapcsolódó más helyen is módosítani kelljen a szoftveren. Ezzel együtt a logikailag kapcsolódó részekben minden egyformán és megjósolhatóan változik. Metódusok és szubrutinok mellett Thomas és Hunt hagyatkozik kódgenerátorokra, automatikus fordítórendszerekre és szkriptnyelvekre, hogy figyeljék az elv betartását a különböző rétegek között.

Mivel a DRY angolul azt jelenti, hogy száraz, az elv megsértésére úgy hivatkoznak, hogy WET, mivel a WET azt jelenti angolul: „nedves”. Ezt többféleképpen is feloldják, mint: "write everything twice" (=„írj mindent kétszer”), "we enjoy typing" („mi élvezzük a gépelést”) vagy "waste everyone's time" („pazaroljuk mindenki idejét”).

Ezek a hibás (WET) megoldások előfordulnak többrétegű webalkalmazásokban, ahol például egy webalkalmazás kérdőívén be kell szúrni egy kommentdobozt. Így a comment string több helyen is ismétlődik, a kommentdoboz, a címke is ezt hordozza, de tartalmazza HTML tag, egy beolvasó függvény neve, egy privát változó neve; megjelenik adatbázis DDL-ben, lekérdezésekben és így tovább. A DRY elv erre azt a megoldást kínálja, hogy használjunk keretrendszert, és csak a legfontosabb szerkesztési feladatot végezzük kézzel, így egy helyen tartva az új változók, új tudás hozzáadását.[2][3][4]

  1. Dave Thomas, interviewed by Bill Venners: Orthogonality and the DRY Principle, 2003. október 10. (Hozzáférés: 2006. december 1.)
  2. Justin Lee: DRY is for losers, 2006. március 8. [2014. március 27-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. augusztus 31.)
  3. Alex Papadimoulis: The WET Cart, 2011. december 8. (Hozzáférés: 2012. május 21.)
  4. Kevin Greer: FOAM DRY + WET, 2016. február 5. (Hozzáférés: 2016. március 9.)

Fordítás

szerkesztés

Ez a szócikk részben vagy egészben a Don't repeat yourself című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.

  NODES