¿Qué es una buena convención de nomenclatura para un mapa de búsqueda / hash?
-
03-07-2019 - |
Pregunta
En el procesamiento de datos, con frecuencia necesito crear una estructura de datos de búsqueda para asignar un identificador a otro. Como ejemplo concreto, tomemos una estructura que contiene una asignación de 1 a 1 entre el código de 2 caracteres de un país y su nombre completo. En ella tendríamos
AD -> Andorra
AE -> United Arab Emirates
AF -> Afghanistan
¿Cuál es un buen nombre para la variable que sostendría este mapa? Algunas ideas (usaré nombres de camellos):
countryNameByCode
nameByCodeLookup
nameCodeLookup
codeToName
Solución
Mi voto sería para codeToName
en este caso particular, y supongo que eso se generaliza. Eso no quiere decir que es el nombre que me habría elegido en todos los casos; eso depende mucho del alcance, de la encapsulación adicional, y así sucesivamente. Pero se siente como un buen nombre, que debería ayudar a hacer que su código sea legible:
String country = codeToName["SV"];
Se ve bastante bien, debe ser fácilmente comprensible por cualquier persona. Posiblemente cambie la palabra " código " para algo más preciso (" countrycode " sería mi próxima opción).
Otros consejos
country_name = countries_by_code[country_code]
Pasa el & # 8220; dictado telefónico & # 8221; prueba, y también suena más como lenguaje natural.
Me gusta usar plurales para colecciones.
countryNames
Editar: countryCodes
es incorrecto porque estás asignando un código a un nombre.
Normalmente lo hago de esta manera:
countryCodeMappingByName
O si la asignación es única, simplemente:
countryCodeMapping
Use algo que suene bien al pronunciarlo. Esto también significa nombrar sus variables clave adecuadamente. Ejemplo:
countryName = countries[countryCode];
Esto tiene mucho sentido: le das a countries
un countryCode
, y devuelve un countryName
. Esto sería redundante:
countryName = countryCodesToNames[countryCode];
En C #, llamaría a un tipo que hace este CountryCodeToNameMapping
. Normalmente llamaría a una variable countryCodeToNameMapping
, pero en ciertos contextos muy restringidos ( ej. , lambdas), probablemente lo llamaría c
o m
.
Otra votación para simplemente pluralizar lo que estás asignando.
por ejemplo. país = países [código]