Wie soll ich eine java.util.Map benennen? [closed]

Lesezeit: 4 Minuten

Benutzer-Avatar
Alex B

Ich habe ein java.util.Map die einen logischen Namen einem Satz von Parametern zuordnet, die mit diesem Namen verwendet werden.

Map<String,Parameters> howShouldINameThee = ...;

Was ist der beste Name für diese Karte?

Soll ich einfach gehen und das einfach anrufen parameters oder parametersMap?

Muss ich Informationen über den Schlüssel in den Namen aufnehmen, z paramtersByName damit, wie man die benutzt String Schlüssel ist offensichtlicher?

Benutzer-Avatar
Markus Bolusmjak

Eine Karte bildet etwas ab zu etwas anderes.
Ich verwende gerne Namen wie uidToPerson. “To” ist der kürzeste eindeutige Weg, den ich mir vorstellen kann, um zu zeigen, dass ich eine Karte habe.

Bearbeiten:
Ich füge hinzu, dass ich es bevorzuge, die Karte auf diese Weise zu benennen, weil “Schlüssel” und “Wert” in dieser Reihenfolge im Namen erscheinen. Im Gegensatz zu valueByKey. Bei Kartierungsoperationen steht der Schlüssel an erster Stelle. Du put(key, value) oder get(key) das gibt einen Wert.

Dies ist natürlich eine Frage der persönlichen Präferenz.

  • Ich verwende diese Konvention, bin mir aber nicht sicher, wie ich eine Map of Maps kartieren soll …

    – Carl Pritchett

    3. Januar 2014 um 3:20 Uhr

  • @CarlPritchett ziemlich ungewöhnlich für mich, aber was ist mit fooToBarToBaz? Oder bazByBarByFoo…

    – Paolo Fulgoni

    11. Juni 2014 um 15:11 Uhr

  • @PaoloFulgoni Ist das also ein fooToBar -> Baz oder foo -> BarToBaz? Immer noch zweideutig…

    – Carl Pritchett

    13. Juni 2014 um 1:04 Uhr

  • @CarlPritchett Wenn Sie regelmäßig Hashmaps als Schlüssel verwenden, wird dies ein Problem sein. Ich habe das in 20 Jahren Programmieren noch nie gemacht oder gesehen. Wenn es passiert, muss ich eine andere Konvention verwenden.

    – Mark Bolusmjak

    13. Juni 2014 um 1:42 Uhr


  • @z5h wahr! Aber ich dachte eher daran, wie einfach es war, es zu lesen. Ich stimme zu, dass ein neuer Name besser wäre.

    – Carl Pritchett

    14. Juni 2014 um 7:47 Uhr

Ich tendiere zu so etwas wie parametersByName um keine Verwirrung darüber zu hinterlassen, was der Inhalt der Map sind. Sie wissen nie, wann Sie Code erneut aufrufen müssen, den Sie sich lange nicht angesehen haben.

In Java finde ich es unnötig, den Namen der Datenstruktur (wie z parametersByNameMap), da die Eingabe explizit ist.

  • Ihr letzter Satz ist für Karten richtig, aber nicht unbedingt für Listen, Sets usw.

    – Walter Tross

    30. Oktober 2015 um 9:51 Uhr

  • Es wird im Allgemeinen als schlechte Praxis angesehen, Namen mit Datentypen zu verunreinigen. Es ist überflüssig, spielt nicht gut mit Refactorings und beeinträchtigt die Lesbarkeit, indem es Namen verlängert.

    – Christopheml

    12. April 2018 um 15:40 Uhr

Die Frage beantwortest du eigentlich selbst.

Was ist der beste Name für diese Karte?

Sie möchten Ihrer Karte einen Namen zuordnen, also sagen Sie ‘Name für Karte’ !!

Das sollte meiner Meinung nach die Namenskonvention sein: valueForKey.

Bei den anderen Vorschlägen keyToValue und valueByKey müssen Sie meiner Meinung nach das Wort Map am Ende hinzufügen, etwa so: keyToValueMap, valueByKeyMap. Wenn Sie verwenden Zum Aus der Sprache geht hervor, dass es sich um eine Abbildung handelt.

  • IMO, den Wert zuerst zu platzieren (ob in valueForKey oder valueByKey) macht den Typ, den Sie abrufen, offensichtlicher. As valueForKey.get(key) gibt den Wert an, was das erste ist, was ich beim Scannen lese.

    – hubatisch

    29. September 2017 um 0:40 Uhr

  • Ich sehe nicht, wie sich valueForKey in Bezug auf die Notwendigkeit von Map am Ende von valueByKey unterscheidet (ich glaube nicht, dass Map benötigt wird, ist aber anhand des Namens offensichtlich).

    – Novaterata

    18. Februar um 17:07 Uhr

Benutzer-Avatar
Gesegneter Geek

In meinen Apps gäbe es ziemlich viele Arten von Parametern.

Wenn ich beispielsweise in GAE die HTTP-Anforderungsparameter in eine serialisierbare Form extrahieren muss, nenne ich die Zuordnung httpRequestParameters oder httpReqParams. sessionAttrs, zum Beispiel.

Für GWT RPC, Client-to-Server-Parameter-Hash, würde ich ihn client2ServerParams oder clnt2SrvrParms nennen und das Gegenstück server2clientParams oder srvr2ClntParms nennen.

In openid Consumer würde ich die Karte „consumerAuthRequests“ oder „redirectFormParameters“ und ihr Gegenstück „providerResponses“ nennen.

In der Map der neu formatierten Eingabe-Hauptargumente würde ich sie inputArgs nennen.

In meinen Fällen wären httpRequestParametersBy name, client2ServerParamsByName, ConsumerAuthRequestsByName, inputArgsByName oder inputArgValueByKey usw. redundant und zu lang, da ich immer wüsste, dass der Schlüssel der Map ohnehin ein „Name“ ist. Ich stelle nur sicher, dass der Name im Plural steht, um mir eine Ahnung zu geben, dass es sich um eine Sammlung handelt.

Eine Ausnahme von dieser Praxis ist, wenn der Schlüssel kein Name, sondern ein Objekt ist, dann würde ich die Karte wie vehicleByDriver, projByMgr, toxicFoodListByAnimal benennen.

1251870cookie-checkWie soll ich eine java.util.Map benennen? [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy