Methoden und Variablen richtig benennen

Ich began neulich das Buch von Robert C. Martin über Clean Code zu lesen. Dabei bin ich über einige wissenswerte Dinge gestoßen, wenn es darum geht Dinge richtig zu benennen. Falls Du das Buch noch nicht gelesen hast, kann ich dir dieses Buch nur wärmstens empfehlen. Dabei handelt es sich für mich schon fast um eine Pflichtlektüre, wenn du professionell Software entwickelst.

Ein Hauptaspekt ist dort die Benennung von Dingen, wie Methoden, Klassen und Variablen. Auch mich beschäftigt das schon sehr lange. Während meines Studiums hatte ich neben der Uni mit einem Kommilitonen an einem Projekt gearbeitet. Wir lernten einiges von einander und verstanden die Sprache, die wir sprachen (im Code). Dort empfand ich es noch als „nicht so wichtig“, wie man Dinge nennt, man hat es Intuitiv schon irgendwie hinbekommen.

Den größten Berührungspunkt hatte ich mit der Vergabe von Variablennamen, als ich mein Studium beendet hatte und die ersten bestehenden Projekte geerbt hatte. Die Projekte wurden zuvor von nur einer Person verwaltet und entwickelt. Man erkannte das meist schon an einer riesigen JavaScript Datei mit weit über 3000 Codezeilen, was sich las wie ein gigantischer Spaghetti-Code. Ab diesem Moment wusste ich, es ist wichtig wie man Dinge benennt.

Es ist wichtig Dinge so klar wie möglich zu benennen so, dass es jeder, ohne spezielles Wissen zu besitzen, versteht. Verzichte dabei auf Abkürzungen. Egal welche Abkürzungen du im Namen verwendest, es führt zwangsläufig zu Missverständnissen oder großen Fragezeichen. Selbst wenn Dir Variablennamen „zu lang“ vorkommen, denke daran, ein langer und präziser Name der das ausdrückt, für was diese Variable steht ist immer besser als ein kurzer Name, welcher Interpretationsspielraum lässt.

Schauen wir uns mal ein kleines Beispiel an. Was passiert hier?

int void doStuff(int x) {
  return x * 1.8;
}

Wofür steht x und was bedeutet x? Was bedeutet 1.8 und warum nicht 1.9?

Wenn sowohl die Methode als auch die Variable sinnvoll benannt wäre, könnte ich ohne die Formel zu verstehen, sofort sagen, was genau hier vor sich geht. Wir sehen also welches Potenzial Sprache haben kann. Lass uns das Beispiel einem kurzen Refactoring unterziehen:

static final CELSIUS_TO_FAHRENHEIT_FACTOR = 1.8;
int void convertToFahrenheit(int celsius) {
  return celsius * CELSIUS_TO_FAHRENHEIT_FACTOR;
}

Siehst Du den Unterschied?

Denke immer daran welche Macht von unserer Sprache ausgeht und wie unmissverständlich wir Dinge beschreiben und ausdrücken können. Uns Entwicklern hilft dies, in dem wir Code leichter lesen und verstehen können. Oder um es in den Worten von Robert C. Martin zu sagen: „Wir sind Autoren“.

2610cookie-checkMethoden und Variablen richtig benennen

Kommentar verfassen