
Droog, Nat, Heet, Koud. Dat zijn maar woorden, toch? Ik ben hier om u te vertellen dat het misschien meer is.

De meeste, zo niet alle, programmeurs zullen wel eens gehoord hebben van de termen DRY en WET als ze betrekking hebben op code. Maar laten we eerst eens uitleggen waar deze acroniemen voor staan, zodat niemand slecht geïnformeerd is.
DRY – Don’t Repeat Yourself
WET – Write Everything Twice
Neem eens een moment de tijd om na te denken… welk acroniem klinkt als een betere codeerpraktijk? Als je gevoel je in de richting van DRY duwde, zou je gelijk hebben. Nou, 90% van de tijd.
Als programmeur is het streven om je code DRY te houden, dus niet je code te herhalen, over het algemeen de beste praktijk. Maar er zijn momenten waarop het toevoegen van wat vocht aan uw code uw leven een beetje gemakkelijker kan maken.
Laten we eerst eens kijken naar een voorbeeld van elk.
Hier is hoe wat WET code eruit ziet: (met Ruby)
class John
def build(n)
n + 1
end def destroy(n)
n - 1
end
end class Peter
def build(n)
n + 1
end
end
Heb je de Write Everything Twice vlekken gezien?
In dit geval hebben beide klassen, John & Peter, de mogelijkheid om de build methode te gebruiken. Maar als er in de toekomst iets aan de bouwmethode zou moeten worden veranderd, zou dat twee keer moeten gebeuren, op elke plek waar de bouwmethode wordt gebruikt.
Aan de andere kant, als de code DRY was, zouden we die verandering maar één keer hoeven door te voeren. In dit geval zou het gebruik van een module kunnen helpen om onze code DRY te houden:
module Builder
def build(n)
n + 1
end
endclass John
include Builder def destroy(n)
n - 1
end
endclass Peter
include Builder
end
Het gebruik van een module geeft beide klassen de mogelijkheid om te bouwen. En natuurlijk behoudt John nog steeds zijn destroy-methode.
Het DRY houden van je codebase is het handigst op plaatsen waar je verwacht dat er vrij vaak veranderingen zullen plaatsvinden. Het hebben van DRY-code betekent dat je die wijzigingen slechts op één of een paar plaatsen hoeft door te voeren, in plaats van op alle plaatsen waar die code kan worden gebruikt.
Het belangrijkste is misschien wel dat het hebben van DRY-code de kans op fouten verkleint. Stel u voor dat identieke code op vijf verschillende plaatsen moet worden gewijzigd, maar u vergeet de code op een van die plaatsen te wijzigen… Ziet u het probleem? Ofwel uw programma zal crashen, of misschien nog erger, een verouderde procedure gebruiken terwijl het normaal lijkt.
Dat gezegd hebbende, WET-code heeft wel zijn verdiensten. Als u verwacht dat de identieke code later in verschillende richtingen zal veranderen, kan het hebben van WET-code die toekomstige verandering vergemakkelijken.
Daarnaast kan te DRY code hoofdpijn veroorzaken bij de volgende programmeur die uw code gebruikt, waaronder u misschien zelf. Dit kan het gevolg zijn van het maken van een vervelende hoeveelheid logische sprongen om erachter te komen welke factoren een rol spelen in een bepaalde regel code.
Dit gezegd hebbende, als een algemene vuistregel, houd uw code DRY mensen. De u van morgen zal het waarderen.