Zum Inhalt

Namenskonvention

Verwende US English (GCG14001) recommendation level 1

Alle Identifier (Typen, Member, Parameter, Variablen etc.) sollte mit Wörtern aus dem amerikanischen Englisch gebildet werden.

  • Die Namen sollten leicht lesbar und grammatikalisch richtig sein.
    Beispiel: HorizontalAlginment ist besser als AlignmentHorizontal
  • Lesbarkeit ist wichtiger als Kürze.
    Beispiel: CanScrollHorizontally ist besser als ScrollableX
  • Bei den Namen sollte auf Schlüsselwörter aus den verbreiteten Programmiersprachen verzichtet werden.

Verwende die richtige Schreibweise für Sprachelemente (GCG14002) recommendation level 1

Abhängig von der jeweiligen Sprache sollte die richtige Schreibweise für Sprachelemente wie z. B. Klassen, Methoden und Variablen gewählt werden. Die am meisten verbreiteten sind Camel Case, Pascal Case, Snake Case und Kebab Case.

Verwende keine Zahlen in Variablen, Parametern und anderen Member (GCG14003) recommendation level 2

Solche Namen resultieren meisten aus Faulheit. Entweder weil man sich nicht genug Gedanken über einen passenden Namen gemacht hat, oder man mehrere Elemente, statt einer Liste implementiert hat.

Verwende keine Präfixe (GCG14004) recommendation level 2

Typen, Member, Parameter, Variablen etc. sollten nicht mit einem Präfix versehen werden, um ihren Typ oder Scope zu definieren. Bekannt sind z. B. die Präfixe g_ für global, s_ für static oder string, i_ für înteger und _ für private Member.

Nicht in allen Sprachen ist es möglich, diese Regel umzusetzen. In einigen Sprachen werden Backingfields mit dem Präfix _ versehen. In andere Sprachen ist dieses Präfix für private oder spezielle Member nötig.

Verwende keine Abkürzungen (GCG14005) recommendation level 2

Abkürzungen wie btn für Button und cmd für Command tragen nicht zur Lesbarkeit und Verständlichkeit bei und sollten daher nicht genutzt. Ebenfalls sollten Namen vermieden werden, die nur aus einem Buchstaben bestehen, z. B. i für index und q für query.

Ausnahme: es sollten nur Abkürzungen genutzt werden, die allgemein oder in der jeweiligen Domäne geläufig sind.

Benenne Member, Parameter und Variablen entsprechend ihrer Bedeutung, nicht ihres Typen (GCG14006) recommendation level 2

Der Name sollte die Funktion wiederspiegeln und nicht den dahinter stehenden Typen.

Namen für Listen und Maps sollten den Plural verwenden.

Nutze bei der Benennung von Typen Substantive, Substantiv-Phrasen oder Adjektiv-Phrasen (GCG14007) recommendation level 2

Benennung Beispiel
Substantiv IComponent
Substantiv-Phrase ICustomAttributeProvider
Adjektiv-Phrase IPersistable

Nutze bei der Benennung von Methoden Verben oder Verb-Objekt-Paare (GCG14008) recommendation level 2

Benennung Beispiel
Verb Show
Verb-Objekt-Paar ShowDialog

Die Namen sollten ein Hinweis darauf sein, was die Methode macht.

Wähle bei der Benennung von generischen Parametern aussagekräftige Namen (GCG14009) recommendation level 2

Präfixe generische Parameter mit dem Buchstaben T für Type.

Verwende einen Namen, der die Bedeutung des übergebenen Typen erklärt.

Wähle Namen entsprechend anderer Member innerhalb der jeweiligen Sprache oder des jeweiligen Frameworks (GCG14010) recommendation level 1

Um einen Entwickler, der bereits mit einer Sprache oder einem Framework vertraut ist, den Einstieg in ein Projekt möglichst leicht zu machen, sollte Namen verwendet werden, die in der jeweiligen Sprache bzw. dem jeweiligen Framework verwendet werden.

Vermeide Namen, die verwechselt werden können (GCG14011) recommendation level 1

Nur weil ein Ausdruck technisch korrekt ist, muss er nicht verständlich sein.

bool b001 = (lo == l0) ? (I1 == 11) : (lOl != 101);

Wiederhole nicht den Namen eines Typen innerhalb seiner Member (GCG14013) recommendation level 1

class Employee
{
    // Wrong!
    static GetEmployee() {...}
    DeleteEmployee() {...}

    // Right
    static Get() {...}
    Delete() {...}

    // Also correct.
    AddNewJob() {...}
    RegisterForMeeting() {...}
}

Vermeide Klassennamen die Wörter wie Utility oder Helper beinhalten (GCG14013) recommendation level 2

Klassen, die Wörter wie Utility oder Helper in dem Namen haben, sind meist statisch und entstehen durch Missachten von den Regeln der objektorientierten Programmierung.

Vermeide Methodennamen das Wort And beinhalten (GCG14014) recommendation level 2

Methoden, die das Wort And beinhalten, machen meist mehr als eine Sache und verstoßen damit gegen das Single Responsibility Principle.

Präfixen von booleschen Variablen und Member (GCG14015) recommendation level 2

Um die Aussagekraft von booleschen Variablen oder Member zu erhöhen, sollten diese mit den Worten is, has, can, allows oder supports versehen werden.


Letztes Update: 2021-09-26
Zurück zum Seitenanfang