Tutorial:Variablennamen
Dieser Guide soll dabei helfen, Variablen gut zu benennen.
Inhaltsverzeichnis |
Grundsätzliches
Bei der Benennung der Variablen kommt es an auf:
- Systematik; Die Variablen müssen nach einem logisch aufgebautem Prinzip benannt sein
- Eindeutigkeit; Es muss klar sein, was eine Variable enthält
- Sortierung; Die variablen sollten mit Präfixen so benannt werden, dass sie sinnvoll sortiert sind
- Prägnanz; Die Variablennamen sollten so kurz sein wie möglich, aber so lang wie nötig
Der eigentliche Name
Der eigentliche Variablenname ist das wichtigste. Er kann um Präfixe oder Suffixe erweitert werden, bildet aber dennoch den Kern des Namens. Er sollte so gewählt werden, dass klar ist, was die Variable letztlich enthält, während das Präfix den Zweck, und das Suffix die Form der Daten in der Variable angeben.
Der Name sollte so präzise, wie möglich sein. "gate" ist kein guter Name, da nicht klar ist, welches Tor gemeint sein könnte. Besser wäre "MordorGate", "nextClosedGate", "lastOpenedGate", "gateToGoal" oder ähnliches. Wer sich im Kopf die Frage stellt, "Was ist in der Variable?" und sich eine eindeutige Antwort einmal im Kopf aufsagt, hat einen perfekten Namen praktisch schon fertig. Wenn man auf die Frage "Welches/Welcher/Welche?" fragen kann, ist der Name noch nicht gut.
Variablennamen sollten Englisch sein, da man so internationaler ist, und Ärger mit Umlauten oder ähnlichem vermeidet.
Präfixe
Präfixe (zu Deutsch: Vorsilben) sind kurze Buchstabenfolgen, die einem Variablennamen vorrangestellt werden. Sie sind sehr wichtig, da man mit ihnen die Sortierung der Variablen im Variablen-Editor und beim Auswählen eines Parameters im GUI beeinflussen kann.
Man sollte jeder Variable ein Präfix geben, das aussagt, zu welchem Teil der Map sie gehört. Dabei wird jedem Teilsystem der Map ein willkürliches Präfix zugeordnet.
Beispiele für Präfixe:
- "inv" für ein Inventarsystem
- "tele" für ein Teleportersystem
- "sel" für ein Hero-Selection-System
- "save" für ein Save-Load-System
- ...
Durch diese Art von Präfixen, kann man sich bei der Arbeit an einem bestimmten System der Map auch auf Variablen mit dem entsprächenden Präfix konzentrieren.
Suffixe
Suffixe (zu Deutsch: Nachsilben) sind kurze Buchstabenfolgen, die am Ende eines Variablennamens stehen. Sie stehen erst nach dem eigentlichen Namen der Variable, und sind daher geeignet, zusätzliche Informationen zu der Variable zu liefern. Dabei sollte man zum Beispiel angeben, wie mit dem Inhalt der Variable verfahren werden muss.
Beispiele für Suffixe:
- "count" oder "cnt" für eine Anzahl
- "kill_cnt" = Anzahl der Kills
- "point_cnt" = Anzahl der Punkte
- "portalsNeeded_cnt" = Anzahl der noch benötigten Portale
- ""
- "max" und "min" für Grenzwerte
- "gold_max" = Wert, ab dem Gold in das wertvollere Holz umgewandelt wird (viele Tower-Defence Maps)
- "ref" oder "handle" für Handle-Werte, die mit dem Return-Bug erzeugt wurden
- timer_handle = Referenz auf einen Timer
- "local" oder "loc" für Variablen, die verwendet werden wie lokale Variablen. ZB um Zwischenrechnungen im GUI durchzuführen. (Dateninkonsistenz über Waits hinaus beachten!)
- "location_local" = eine lokale Position, die nur in einer Variable gespeichert wird, um zB ein Memory-Leak zu entfernen.
- ...
Suffixe unterscheiden sich nicht stark von Angaben aus dem eigentlichen Namen. Wer hier klar trennen möchte, der sollte im Suffix nur technische Hintergrundinformationen wie "local" oder "handle" verwenden, und auf solche Suffixe wie "cnt", "max" und "min" lieber verzichten. Allerdings sollten diese dann im eigentlichen namen auch in irgendeiner Form wieder auftauchen, da sonst die Eindeutigkeit der variable darunter leidet. Teilweise unterscheiden sich Teile des Kernnamens syntaktisch nicht von Suffixen, und die Unterscheidung ist sinnlos. Grundsätzlich gilt, Wenn ein Name Aufschluss über den Inhalt der Variable gibt, ist er gut ;)
Arrays
Arrays werden im Prinzip so genannt, wie andere Variablen auch. Man kann Arrays im Plural schreiben, um sie von Nicht-Arrays abzugrenzen ("my_units[]"), oder im Namen angeben, wozu der Index des Arrays dient ("PlayerKillCnt[]" = Anzahl der Kills aller Spieler, "PlayerHero[]" = Held jedes Spielers, "UnitStack" = Ein Stapel von Einheiten), wobei dies manchmal nicht nötig ist (creepWaypoints[] = Wegpunkte der Creeps).

USA
Argentina
Thyke.