7 Namen die wir nie in Code sehen sollten

Namen sind ein wichtiges Thema um unser Absicht in Code zu übersetzen. Aber gibt es Namen, die wir nie in Code sehen sollten?

Hier sind sieben Beispiele solcher Namen. Du wirst sie sicher schon gesehen und geschrieben haben. Wenn wir diese Namen betrachten, sehen wir, wie diese verwirrend oder irreführend sind oder Informationen verschleiern.

it / iter

Es ist eine Abkürzung für Iterator. Stell dir vor du hast eine Buchkollektion. Nun kannst du einen Iterator kreieren (z.B. mit einem for Loop) und nennst diesen Iterator it. Dadurch verschleiern wir, was der Iterator wirklich ist, nämlich dass es uns Zugang zu einem Buch der Sammlung gibt. Wir sollten uns nicht darum kümmern, dass es ein Iterator oder Pointer oder Variable ist. Es repräsentiert ein Buch und das ist alles was uns interessiert. Lass es uns daher nicht it nennen, sondern book.

temp

Eine Variable, bei der wir nicht wirklich wissen, wie wir sie benennen sollten, aber wir wissen, dass sie nicht für lange da sein wird. Sie ist temporär und nennen sie temp. Aber die Variable ist da für etwas und representiert etwas. Zum Beispiel wenn wir zwei Variablen vertauschen, speichern wir den ersten Wert in eine Backup Variable, warum nennen wir diese nicht backup. temp hat keine Bedeutung.

…2

Du hast eine Funktion die Input annimmt und Output ausgibt und seine Sachen macht. Nun musst du eine neue Funktion kreieren, die der ersten sehr ähnlich ist. Du könntest diese zweite Funktion „Name der ersten Funktion“ + 2 nennen, so wie f2().

Dies mag Sinn ergeben, während wir die Funktion schreiben, aber stell dir vor, jemand liest diesen Code und sieht 2. Derjenige wird sich denken, hier ist eine Funktion und hier eine Funktion 2. Wo ist da der Unterschied? Lass uns daher die Zeit nehmen, um den Unterschied der beiden Funktionen herauszukristallisieren und in den Namen packen.

…And…

Wenn du eine Funktion doSomethingAndDoSomethingElse() hast, heisst dies, dass diese Funktion zwei Dinge miteinander macht. Dies ist nicht gut für eine Funktion.

Wenn wir And im Namen einer Funktion sehen, sollten wir gut aufpassen, denn dies ist ein Zeichen, dass wir zu viele Dinge auf einmal machen.

Wenn eine Funktion mit And eine einzige Sache macht, das heisst, sie bringt zwei Dinge zusammen, dann ist das Ok.

handle

Handle als Verb, wie in handleThings(), heisst das, dass wir nicht beschreiben was die Funktion macht.

Handle als Name für mich etwas an einem Koffer, an dem ich den Koffer nehmen und tragen kann. Ein Handle kann auch sein um etwas zu erreichen, wie ein Pointer, Iterator oder Reference. Aber das interessiert uns nicht, es ist wie mit it oder iter. Wir müssen es benennen mit dem was es repräsentiert. Wenn wir mit dem Handle ein Buch holen, nennen wir es doch book

a, b, x, …

Wir sollten keine Variablen haben, die nur aus einem Buchstaben bestehen. Was ist a? Wenn jemand diesen Code liest, kann das sehr verwirrend sein. Was bedeuten all die Buchstaben, die hier umschwirren?

typename T

Dies ist mehrheitlich ein C++ Ding. Einen typename sollte nie mit T benannt werden. Für was steht T? Type. Aber was sollte es sonst sein? Wenn du also mehr Information über einen Type hast, solltest du diese Information in den Namen des Types einflechten. Es verhält sich ähnlich wie mit Ein-Buchstaben-Variablen.

Wenn wir eine Kollektion von Büchern haben und in dieser Kollektion haben wir eine Variable, die die Grösse der Kollektion speichert. Nennen wir diese Variable i wenn es ein Integer ist? Warscheinlich nicht. Wenn es ein size T ist, nennen wir sie s? Nein! Wir nennen sie numberOfBooks oder size oder was auch immer, aber nicht ein Ein-Buchstaben-Namen der den Type reflektiert.


Ist all dies verboten? Sollten wir diesen Guidelines blind folgen? Ich denke nicht. Es gibt Situation, wo es Sinn macht, von diesen Guidelines abzuweichen:


struct Point {
    int x,
    int y
}

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie mehr darüber, wie Ihre Kommentardaten verarbeitet werden .

%d bloggers like this: