
Torrt, vått, varmt, kallt. Det är bara ord, eller hur? Jag är här för att berätta att de kan vara mer.

De flesta, om inte alla, programmerare kommer att ha hört talas om termerna DRY och WET när de gäller kod. Men låt oss först förklara vad dessa akronymer står för så att ingen blir illa informerad.
DRY – Don’t Repeat Yourself
WET – Write Everything Twice
Ta en sekund för att fundera… vilken akronym låter som om den skulle vara den bättre kodningsmetoden? Om din aning gav dig en vink om DRY, skulle du ha rätt. Tja, 90 % av tiden.
Som programmerare strävar du efter att hålla din kod DRY, dvs. att inte upprepa din kod, vilket i allmänhet är den bästa metoden. Men det finns tillfällen då lite fukt i din kod kan göra ditt liv lite lättare.
Låt oss först ta en titt på ett exempel på vardera.
Här är hur lite WET-kod ser ut: (med hjälp av 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
Fick du syn på Write Everything Twice-spotarna?
I det här fallet har båda klasserna, John & Peter, möjlighet att använda build-metoden. Men om en framtida ändring skulle göras i byggmetoden måste den göras två gånger, på varje ställe där byggmetoden används.
Å andra sidan, om koden var DRY, skulle vi bara behöva göra den ändringen en gång. I det här fallet kan användningen av en modul hjälpa oss att hålla vår kod DRY:
module Builder
def build(n)
n + 1
end
endclass John
include Builder def destroy(n)
n - 1
end
endclass Peter
include Builder
end
Användningen av en modul ger båda klasserna möjlighet att bygga. Och John behåller förstås fortfarande sin destroy-metod.
Att hålla din kodbas DRY är mest användbart på ställen där du förutser att ändringar sker ganska ofta. Att ha DRY-kod innebär att du bara behöver göra dessa ändringar på ett, eller några få områden, i stället för på alla ställen där koden kan komma att användas.
Men kanske viktigast av allt, att ha DRY-kod minskar risken för fel. Föreställ dig att en ändring måste göras i identisk kod på fem olika ställen, men du glömmer att ändra koden på ett av dessa ställen… Ser du problemet? Antingen kommer ditt program att krascha, eller kanske ännu värre, använda en föråldrad procedur samtidigt som det verkar normalt.
Med detta sagt har WET-kod sina fördelar. Om du räknar med att den identiska koden senare kommer att gå åt olika håll kan WET-kod göra den framtida ändringen lättare.
Till yttermera visso kan alltför DRY-kod skapa huvudvärk för nästa programmerare som använder din kod, vilket kan inkludera dig själv. Detta kan bero på att man måste göra en tråkig mängd logiska hopp för att ta reda på vilka faktorer som spelar in i en viss kodrad.
Med detta sagt, som en allmän tumregel, håll din kod DRY folk. Morgondagens du kommer att uppskatta det.