Richtige Methodennamen
Grob gesagt, sollte ein guter Methodenname alles beschreiben, was die Methode tut bzw. was darin passiert. Dies ist aber oft einfacher gesagt als getan.
Namen für Prozeduren
Bei Prozeduren gilt der Grundsatz Methodename = Starkes Verb + Objekt.
Starke Verben sind z.B. print, calculate, check etc. Beispiele für Methodenname, die solche starken Verben verwenden wären:
printReport(); calcMonthlyRevenues(); checkOrderInfo()
Zu vermeiden sind aussageschwache, “Wischi-Waschi”-Verben wie handle, perform, process, dealWith und dergleichen. Solche Verben sagen wenig über den Zweck der Methode aus. Es gibt natürlich Ausnahmen: “handle” kann z.B. verwendet werden, wenn im technischen Sinn etwas behandelt wird (z.B. ein Event).
Zu beachten ist, dass in der Objektorientieren Programmierung das Objekt meist weggelassen werden kann, weil das Objekt ja durch den Aufruf selbst impliziert wird.Statt
Report.printReport() // redundant
sollte also
Report.print()
verwendet werden.
Namen für Funktionen
Funktionen geben Werte zurück, der Name der Funktion soll diesen Wert beschreiben. Beispiele für gute Funktionsnamen sind daher:
cos(); nextCustomerId(); printerReady(); currentPenColor();
Prinzipen für Methodennamen
Oben wurde bereits erwähnt, dass ein Methodenname alles beschreiben sollte, was in der Methode geschieht. Dies impliziert einen weiteren Grundsatz: Methodennamen sollen so lang als nötig sein (und so kurz als möglich).
D.h. im Methodennamen sollen Ausgaben und Seiteneffekte der Methode enthalten sein:
Beispiel: Eine Methode, die Berichtssummen berechnet und eine globale Druckvariable verändert, sollte nicht
computeReportTotals()
heißen , sondern so benannt sein:
computeReportTotalsAndSetPrintingReadyVar()
Natürlich ist dies ein “dummer” und viel zu langer Name, trotzdem ist er noch besser als wenn “verschwiegen” wird, was in der Methode passiert.
Probleme bei der Namensgebung
Wie im vorherigen Beispiel gezeigt, kann die genaue Einhaltung der Namensgebungs-Regeln zu sehr langen und eigentlich unbrauchbaren Methodennamen führen. Meist liegt das Problem aber tiefer, nämlich darin, dass die Methode keinen richtigen (oder keinen eindeutigen) Zweck hat.
Positiv gesehen, kann die Namensgebung so zu einer wertvollen Hilfe bei der Bewertung von Methoden als ganzes werden: wenn es einfach ist, einen guten, aussagekräftigen Namen für die Methode zu finden, die die Funktion sowie Seiteneffekte vollständig beschreibt, ist die Methode gut designt. Im umgekehrten Fall sollte jedenfalls das Design der Methode noch einmal überdacht werden.
Namenskonventionen
Viele Programmiersprachen haben Konventionen, wie Standardaktionen in Methodennamen bezeichnet werden. Solche Namenskonventionen sind entweder explizit dokumentiert oder implizit in der API der jeweiligen Plattform enthalten. Das Einhalten von solchen Konventionen ist – wie immer – vorteilhaft, da Missverständnisse dadurch vermieden werden.