Qu'est-ce qu'une bonne convention d'appellation pour une carte de recherche / hachage?
-
03-07-2019 - |
Question
En traitement de données, il est souvent nécessaire de créer une structure de données de recherche pour mapper un identificateur sur un autre. À titre d’exemple concret, prenons une structure qui contient un mappage 1-à-1 entre le code de 2 caractères d’un pays et son nom complet. Nous y aurions
AD -> Andorra
AE -> United Arab Emirates
AF -> Afghanistan
Quel est le bon nom pour la variable qui contiendrait cette carte? Quelques idées (j'utiliserai des noms de chameaux):
countryNameByCode
nameByCodeLookup
nameCodeLookup
codeToName
La solution
Mon vote serait pour codeToName
dans ce cas particulier, et je suppose que cela se généralise. Cela ne veut pas dire que c'est le nom que je me serais choisi dans tous les cas; cela dépend beaucoup de la portée, de l'encapsulation supplémentaire, etc. Mais cela ressemble à un bon nom, cela devrait aider à rendre votre code lisible:
String country = codeToName["SV"];
Semble assez sympa, devrait être facilement compréhensible par quiconque. Peut-être changer le mot " code " à quelque chose de plus précis ("Le code de pays" serait mon prochain choix).
Autres conseils
country_name = countries_by_code[country_code]
Il passe la & # 8220; dictée téléphonique & # 8221; test, et ressemble plus à un langage naturel.
J'aime utiliser les pluriels pour les collections.
countryNames
Modifier: countryCodes
est incorrect car vous mappez un code sur un nom.
Je le fais habituellement de cette façon:
countryCodeMappingByName
Ou si le mappage est unique, il vous suffit simplement de:
CountryCodeMapping
Utilisez quelque chose qui sonne bien lorsque vous le prononcez. Cela signifie également nommer vos variables clés de manière appropriée. Exemple:
countryName = countries[countryCode];
Cela est parfaitement logique - vous donnez à pays
un countryCode
et un nom de pays
. Ce serait redondant:
countryName = countryCodesToNames[countryCode];
En C #, j'appellerais un type qui effectue cette opération CountryCodeToNameMapping
. J'appellerais généralement une variable countryCodeToNameMapping
, mais dans certains contextes très restreints ( par exemple , lambdas), je l'appellerais probablement c
ou m
.
Un autre vote pour simplement pluraliser ce que vous mappez.
par exemple. pays = pays [code]