Kapitel 76. Nimm die "Trennung der Belange" ernst

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Dave Farley

Wenn du Informatik studiert hast, hast du vielleicht über eine Idee gelernt, die Trennung von Belangen genannt wird.1 Sie lässt sich am besten mit dem Spruch "Eine Klasse eine Sache, eine Methode eine Sache" beschreiben. Die Idee ist, dass deine Klassen und Methoden (und Funktionen) immer auf ein einziges Ergebnis ausgerichtet sein sollten.

Überlege dir genau, welche Aufgaben deine Klassen und Methoden haben. Manchmal unterrichte ich Kurse in testgetriebenem Design. Ich verwende das Addieren von Brüchen als einfache Kodierübung, um TDD zu erkunden. Der häufigste erste Test, den die Leute schreiben, sieht oft so aus:

assertEquals("2/3", Fractions.addFraction("1/3", "1/3"));

Für mich schreit dieser Test nach "schlechtem Design". Erstens: Wo ist der Bruch? Er existiert nur implizit, vermutlich innerhalb der Funktion addFraction.

Schlimmer noch, lass uns darüber nachdenken, was hier vor sich geht. Wie würden wir das Verhalten der Funktion addFraction beschreiben? Vielleicht so etwas wie "Sie nimmt zwei Strings, analysiert sie und berechnet ihre Summe". Sobald du das Wort "und" in der Beschreibung einer Funktion, Methode oder Klasse siehst oder denkst, sollten in deinem Kopf die Alarmglocken ...

Get 97 Dinge, die jeder Java-Programmierer wissen sollte now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.