4 Stimmen

Wie vermeiden Sie Überschneidungen bei der Benennung von Schlüsselwörtern?

Normalerweise haben Sprachen Schlüsselwörter, die Sie nicht direkt mit der exakt gleichen Schreibweise und Groß-/Kleinschreibung für die Benennung von Dingen (Variablen, Funktionen, Klassen ...) in Ihrem Programm verwenden können. Doch manchmal ist ein Schlüsselwort die einzige natürliche Wahl, um etwas zu benennen. Wie können Sie diesen Konflikt in der von Ihnen gewählten Technologie vermeiden/umgehen?

0 Stimmen

Ähm ich würde dem nicht zustimmen, es ist eine vernünftige programmierbezogene Frage im Gegensatz zu all den Umfragen und SO-Meta-Fragen.

7voto

Jon Skeet Punkte 1325502

Normalerweise vermeide ich nur den Namen. Entweder finde ich einen anderen Namen oder ändere ihn leicht ab - z. B. clazz anstelle von class in C# oder Java. In C# können Sie puede das Präfix @ verwenden, aber das ist schrecklich:

int @int = 5; // Ick!

0 Stimmen

...oder klass. Ich werde @class in MVC verwenden, wenn ich HTML-Attribute aus dem offensichtlichen Grund einstelle.

0 Stimmen

Yulp...anscheinend gibt es 260.000 Wörter im Oxford English Dictionary, ich bin mir sicher, dass es einen passenden Kandidaten gibt, so dass man kein sprachliches Schlüsselwort verwenden muss :)

0 Stimmen

Es ist furchtbar...aber ich sehe es überall :(

5voto

Paul W Homer Punkte 2708

Ein Schlüsselwort ist an sich nicht so allumfassend, dass es Sie davon abhalten sollte, Ihre Variablen zu benennen. Da alle Namen nur verallgemeinerte Instanzen eines bestimmten Typs sind, können Sie jederzeit in der Abstraktion nach oben oder unten gehen, um einen anderen nützlichen Namen zu finden.

Wenn Sie z.B. ein System schreiben, das Studenten verfolgt, und Sie wollen ein Objekt, das ihr Studium in einem bestimmten Bereich darstellt, d.h. sie haben einen "Kurs" in einem bestimmten Fachgebiet belegt. Wenn Sie den Begriff nicht direkt verwenden können, oder den Plural "Kurse", oder eine Alternative wie "Studien", könnten Sie eine "instanziertere" Variante finden: studentClass, currentClass, etc. oder eine höhere Perspektive: "Kurse", "courseClass" oder ein spezifisches Attribut: dailyClass, nightClass, etc.

Es gibt viele Möglichkeiten, Sie sollten nur die einfachste und naheliegendste vorziehen, das ist alles.

Ich höre den Nutzern immer gerne zu, weil der Umfang ihrer Sprache hilft, den Umfang des Problems zu definieren. Wenn man lange genug zuhört, stellt man oft fest, dass sie viele verschiedene Begriffe für dieselben grundlegenden Dinge haben (mit nur feinen Unterschieden). Sie haben normalerweise die Antwort ...

Paul.

4voto

Eppz Punkte 3078

Mein System ist, keine Schlüsselwörter zu verwenden, Punkt!

Wenn ich eine Funktion/Variable/Klasse habe und es nur logisch erscheint, sie mit einem Schlüsselwort zu benennen, stelle ich dem Schlüsselwort ein beschreibendes Wort voran.

(AdjektivNomen)-Format. d.h.: PersonName statt Name, wobei "Name" ein Schlüsselwort ist.

2voto

Soviut Punkte 83233

In Python verwende ich in der Regel richtige Namespacing auf meine Module, um Namenskonflikte zu vermeiden.

import re
re.compile()

anstelle von:

from re import *
compile()

Wenn ich nicht vermeiden kann, dass Schlüsselwortnamen kollidieren, lasse ich manchmal einfach den letzten Buchstaben aus dem Namen meiner Variablen weg.

for fil in files:
    pass

0 Stimmen

Dies ist sinnvoll, um Konflikte zwischen Bezeichnern zu vermeiden, funktioniert aber nicht für Schlüsselwörter.

2voto

Marc Charbonneau Punkte 40221

Ich verwende einfach einen aussagekräftigeren Namen. Zum Beispiel wird "id" zu "identifier", "string" zu "descriptionString" und so weiter.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X