
Száraz, nedves, forró, hideg. Ezek csak szavak, igaz? Azért vagyok itt, hogy elmondjam, talán többről van szó.

A legtöbb, ha nem minden programozó hallott már a DRY és WET kifejezésekről a kóddal kapcsolatban. De először is nyilvánítsuk ki, mit jelentenek ezek a betűszavak, hogy senki se legyen tájékozatlan.
DRY – Don’t Repeat Yourself
WET – Write Everything Twice
Mondjuk el egy pillanatra… melyik betűszó hangzik úgy, mintha az lenne a jobb kódolási gyakorlat? Ha a megérzésed a DRY felé lökne, akkor igazad lenne. Nos, az esetek 90%-ában.
Programozóként általában az a legjobb gyakorlat, ha arra törekszel, hogy a kódod DRY maradjon, tehát ne ismételd a kódodat. Vannak azonban olyan esetek, amikor egy kis nedvesség hozzáadása a kódodhoz megkönnyítheti az életedet.
Nézzünk először egy példát mindkettőre.
Íme, így néz ki egy WET kód: (Ruby-t használva)
class John
def build(n)
n + 1
end def destroy(n)
n - 1
end
end class Peter
def build(n)
n + 1
end
end
Észrevetted a Write Everything Twice foltokat?
Ebben az esetben mindkét osztály, John & Peter, képes használni a build metódust. Ha azonban a jövőben változtatni kellene a build metóduson, akkor azt kétszer kellene elvégezni, minden egyes helyen, ahol a build metódust használják.
Másrészt, ha a kód DRY lenne, akkor csak egyszer kellene elvégezni a változtatást. Ebben az esetben egy modul használata segíthet abban, hogy a kódunk DRY maradjon:
module Builder
def build(n)
n + 1
end
endclass John
include Builder def destroy(n)
n - 1
end
endclass Peter
include Builder
end
A modul használata mindkét osztály számára lehetővé teszi az építést. És természetesen John továbbra is megtartja a destroy metódusát.
A kódbázis DRY megtartása leginkább ott hasznos, ahol előreláthatólag viszonylag gyakran történnek változások. Ha DRY kódod van, az azt jelenti, hogy csak egy vagy néhány területen kell elvégezned ezeket a változtatásokat, nem pedig az összes olyan helyen, ahol ezt a kódot használhatod.
A legfontosabb talán az, hogy a DRY kód csökkenti a hibázás esélyét. Képzeljük el, hogy egy azonos kódot öt különböző helyen kell módosítani, de az egyik helyen elfelejtjük megváltoztatni a kódot… Látjuk a problémát? Vagy összeomlik a programod, vagy ami talán még rosszabb, egy elavult eljárást használsz, miközben normálisnak tűnik.
Ezzel együtt a DRY kódnak is megvannak az érdemei. Ha arra számítasz, hogy az azonos kód később különböző irányokba ágazik el, akkor a WET kód megkönnyítheti ezt a jövőbeli változtatást.
Emellett a túlságosan DRY kód fejfájást okozhat a következő programozónak, aki a kódodat használja, beleértve téged is. Ez abból eredhet, hogy fárasztóan sok logikai ugrást kell végrehajtani annak érdekében, hogy kitaláljuk, milyen tényezők játszanak szerepet egy adott kódsorban.
Ezek alapján általános szabályként elmondható, hogy tartsa a kódot DRY-nak, emberek. A holnap embere értékelni fogja.