Skip to content

CTH Bazaar

Blog

Menu
Menu

DRY vs WET Code

Posted on Dezember 27, 2021 by admin
John Long

Follow

Nov 12, 2017 – 3 min read

Trocken, nass, heiß, kalt. Das sind doch nur Worte, oder? Ich bin hier, um Ihnen zu sagen, dass sie mehr sein können.

Art by Noah Bradley

Die meisten, wenn nicht alle Programmierer werden von den Begriffen DRY und WET gehört haben, da sie sich auf Code beziehen. Aber lassen Sie uns zunächst erklären, wofür diese Akronyme stehen, damit niemand schlecht informiert ist.

DRY – Don’t Repeat Yourself

WET – Write Everything Twice

Nehmen Sie sich eine Sekunde Zeit, um darüber nachzudenken… welches Akronym klingt, als wäre es die bessere Programmierpraxis? Wenn Ihr Gefühl Sie in Richtung DRY stupst, dann liegen Sie richtig. Nun, in 90 % der Fälle.

Als Programmierer ist es in der Regel die beste Praxis, sich zu bemühen, den Code DRY zu halten, d.h. ihn nicht zu wiederholen. Aber es gibt Zeiten, in denen ein wenig Feuchtigkeit im Code das Leben ein wenig einfacher machen kann.

Lassen Sie uns zuerst einen Blick auf ein Beispiel von beiden werfen.

Hier ist, wie etwas WET-Code aussieht: (unter Verwendung von 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

Haben Sie die „Write Everything Twice“-Punkte entdeckt?

In diesem Fall haben beide Klassen, John & Peter, die Möglichkeit, die Build-Methode zu verwenden. Wenn jedoch in Zukunft eine Änderung an der Build-Methode vorgenommen werden soll, muss sie zweimal durchgeführt werden, und zwar an jeder Stelle, an der die Build-Methode verwendet wird.

Wäre der Code hingegen trocken, müssten wir diese Änderung nur einmal vornehmen. In diesem Fall könnte die Verwendung eines Moduls dazu beitragen, unseren Code DRY zu halten:

module Builder
def build(n)
n + 1
end
endclass John
include Builder def destroy(n)
n - 1
end
endclass Peter
include Builder
end

Die Verwendung eines Moduls ermöglicht es beiden Klassen, zu bauen. Und natürlich behält John seine Destroy-Methode bei.

Die Codebasis DRY zu halten, ist vor allem dort hilfreich, wo man mit häufigen Änderungen rechnet. DRY-Code bedeutet, dass Sie diese Änderungen nur in einem oder wenigen Bereichen vornehmen müssen und nicht an allen Stellen, an denen dieser Code verwendet werden könnte.

Vielleicht am wichtigsten ist, dass DRY-Code die Fehleranfälligkeit verringert. Stellen Sie sich vor, Sie müssen eine Änderung am identischen Code an fünf verschiedenen Stellen vornehmen, aber Sie vergessen, den Code an einer dieser Stellen zu ändern… Sehen Sie das Problem? Entweder stürzt Ihr Programm ab, oder, was noch schlimmer ist, es verwendet eine veraltete Prozedur, während es normal erscheint.

Abgesehen davon hat WET-Code durchaus seine Vorzüge. Wenn Sie vorhersehen, dass derselbe Code später in verschiedene Richtungen abzweigt, kann WET-Code diese zukünftige Änderung erleichtern.

Außerdem kann zu trockener Code dem nächsten Programmierer, der Ihren Code verwendet, Kopfschmerzen bereiten, was Sie selbst einschließen kann. Das kann daher rühren, dass man mühsam viele logische Sprünge machen muss, um die Faktoren herauszufinden, die in einer bestimmten Codezeile eine Rolle spielen.

Als allgemeine Faustregel gilt also: Halten Sie Ihren Code DRY, Leute. Ihr von morgen werdet es zu schätzen wissen.

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Neueste Beiträge

  • Sieh dir das All-Star-Video zu Pharrell und Jay-Zs neuem BLM-inspirierten „Entrepreneur“
  • Kommanditgesellschaft
  • Technologietransfer
  • Bounce Energy
  • Was bedeutet eigentlich Qualität statt Quantität? 5 Schlüssellektionen

Archive

  • Januar 2022
  • Dezember 2021
  • November 2021
  • Oktober 2021
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語
©2022 CTH Bazaar | Built using WordPress and Responsive Blogily theme by Superb