Frage

Ich finde ich oft mit guten Namen für komplementäre Paare von Variablen zu kommen versuchen; wo zwei Variablen bezeichnen entgegengesetzte Konzepte, zwei Teilnehmer in einer Art Zwiegespräch, und so weiter.

Dies könnte besser durch ein Gegenbeispiel erklärt werden - wir halten eine Anwendung, die zwei Grafiken als Teil einer Printanzeige druckt. Sie sind in der Datenbank als TopLogo und LowerLogo gespeichert, die ich habe zu stoppen und überprüfen Sie jedes Mal, wenn ich sie benutzen, weil ich top ich erwarte bottom ergänzen und lower sollte upper ergänzen.

Es gibt einige offensichtliche Beispiele, die ich denke, gut funktionieren:

client / server
source / target zum Kopieren / Daten oder Dateien von einer Variablen zu einem anderen
bewegt minimum / maximum

, aber es gibt einige Konzepte, die gerade sich nicht für solche ordentlich Namensgebung verleihen. Wenn zum Beispiel durch Aufzeichnungen Paging, tut ‚liest‘ bedeuten ‚final‘ oder ‚zurück‘? Vor kurzem sah ich einige Code, der firstPage verwendet, previousPage, nextPage und finalPage die ambiuous lastPage vollständig zu vermeiden, was ich dachte, war sehr schlagen, damit diese Frage.

Haben Sie besonders ordentlich Variablennamen Paaren Sie kümmern würden, mit uns zu teilen? (Bonuspunkte, wenn sie sind die gleiche Länge, die den Code macht so viel sauberere in Fixschriften.)

War es hilfreich?

Lösung

Wie bei allen Arten von Code-Stil Konventionen, Konsistenz ist, was Sie anstreben sollen.
Ich würde das Entwicklungsteam auf „Standard“ Paare von Präfixen für allgemeine Szenarien zustimmen wie „Quelle / Ziel“ oder „von / bis“ und dann mit ihnen für das gesamte Projekt zu bleiben. Solange jeder Entwickler ist sich bewusst, was mit einem bestimmten Präfix in der Code-Basis zu verstehen ist, ist es einfacher, Missverständnisse zu vermeiden.
Ausnahmen von der Regel sollte in der Dokumentation zu klären, ob der variable Teil einer öffentlichen API, oder in den Kommentaren im Code ist, wenn es Sichtbarkeit ist auf eine einzelne Klasse oder Methode beschränkt ist.

Andere Tipps

In meinen Datenbanken finden Sie viel Gültig-Zustand zeitliche ( „Geschichte“) Tabellen enthalten ein Paar von Spalten mit den Namen start_date und end_date finden. Keine Bonuspunkte für mich, dann, weil ich eher das häufig verwendete ‚Ende‘ verwenden würde, als versuchen, mit einer intuitiven Alternative mit der gleichen Anzahl von Zeichen wie das Wort zu kommen ‚Start‘.

Ich neige dazu, diese obs auch bevorzugen, wenn mehr kontextspezifische Bedingungen lebensfähig sein können, z.B. (Formal ist die Einstellung zum Beispiel ihr Unternehmen war Gegenstand eines Erwerbs was, wenn ihre Beschäftigung als aus einem anderen Grund gestartet) lieber employee_start_date über employee_hire_date. Das heißt, würde ich person_birth_date über person_start_date bevorzugen:)

Während man nicht versuchen, in offensichtlichen Fällen semantisch kohärent zu sein - zum Beispiel geht maximal mit einem Minimum, und nicht „niedrigste“ - in gut strukturiertem OO-Code (die nicht alle Code, ich weiß) das Problem verschwindet mit einem guten IDE. Die Klassen sind kurz, Methoden sind kurz, und Variablen sind nur wenige in jeder Methode. So spielt es keine Rolle, was Sie die Variablenpaare nennen, so lange sie klar sind. Ihr Code möglicherweise nicht professionell aussehen, sondern echte Qualität ist in dem Code, nicht in dem aussieht von Ihrem Code.

Das Problem verschwindet weiter, wenn es gut JavaDoc oder was auch immer das Dokumentationssystem ist, und wenn eine gute Klassennamen haben, die mit ihnen gehen. Zum Beispiel, wenn Sie eine Instanz einer Klasse Connection haben und es hat ein Verfahren ein Verfahren namens setDestination, das in Ordnung ist, aber wenn Sie wissen, dass setDestination einen Parameter namens destination nimmt und es ist die Server Klasse, sie ist cool ... obwohl Sie es target, aimHere, placeToSendTheData oder whatever (und die entsprechenden Namen, source, comingFromHere und placeToGetTheDataFrom) nennen könnten es vorziehen. Plus das doc-System sagt , was die Sache ist für , und das ist von unschätzbarem Wert.

Das nächste, was klingt vielleicht dumm und ich bin sicher, dass ich hier unten auf Stackoverflow gestimmt, aber einzigartigen nicht-professionelle klingende Variablennamen haben einen großen Vorteil: Ich weiß, dass meine Variablen Namen wie placeWeWantTheDataToGo hat (und die IDE kümmert es einzutippen), aber die „schweren“ Jungs, die das JDK würde nie Verwendung solcher dummen Namen tun. So weiß ich sofort, dass die Variable eine von mir ist. Nebenbei bemerkt, wenn ich mit den Entwicklern in Spanien und Italien gearbeitet, schreiben sie Code mit spanischen Variablennamen (nicht immer, aber in der Regel). Dies bewirkt, dass die gleiche Wirkung. Wir können schnell sehen, dass die Conexion Klasse gehört uns, aber die Connection Klasse ist nicht

[Auch anstelle Ihre Variablennamen eingeben, weisen ihnen einen konstanten String irgendwo in Ihrem Code und verwenden Sie dies, so dass, wenn sie es nennen niedrigere oder Beruhigungsmittel statt niedrig, sie ist immer noch in Ordnung.]

Ja, ich versuche systematisch ergänzende Sätze von Variablen zu nennen, so dass die Symmetrie ist klar. Es ist nicht immer einfach; manchmal auch gar nicht möglich. Na ja, nicht möglich, mit den Regeln, die ich für mich festgelegt werden - was bedeutet, dass ich in der Regel versuchen, die Namen haben die gleiche Länge. Das ‚top‘ und ‚untere‘ Beispiel würde fährt mich bekloppt (vorausgesetzt, ich bin nicht bekloppt schon, was keineswegs sicher ist); Ich würde wahrscheinlich ‚obere‘ und ‚untere‘ verwenden, weil diejenigen, die gleiche Länge hat; ‚Top‘ und ‚unten‘ würde mich vereiteln, weil der Unterschied in der Länge.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top