¿Qué significa el mapeo en la programación?

9

A menudo escucho cosas como:

  • Mapeando las clases
  • Mapeando los objetos de la base de datos
  • Mapeando los objetos
  • Mapear los elementos de una lista
  • Un mapeador

¿Qué significa realmente un mapeador y el acto de mapear algo?

LuisDavis
fuente
2
Significa hacer coincidir elementos de un conjunto con elementos de otro conjunto, o significa realizar una función en cada elemento de un conjunto para obtener un nuevo conjunto correspondiente. Lo cual es más o menos matemáticamente hablando. Por lo tanto, podría significar tablas coincidentes en una base de datos con objetos en código. O realizar una operación en cada elemento de una lista. Un asignador es una función o clase que hace coincidir elementos en un conjunto con elementos en otro.
JacquesB

Respuestas:

12

Los usos de programación del verbo "map" y el sustantivo "mapper" no están relacionados en gran medida con sus usos comunes en inglés, por lo que esta es una pregunta muy comprensible.

El uso de la programación también es muy amplio, así que comencemos con el significado más concreto y bien definido de "mapa". A saber, la mapfunción de orden superior presente en la mayoría de los lenguajes de programación funcionales. Aquí hay un ejemplo trivial de esto en Javascript:

var numbers = [1, 2, 3, 4];
var timesTwo = function(n) {
    return n * 2;
}
numbers.map(timesTwo); // [2, 4, 6, 8]

La mapfunción requiere una matriz y otra función. Devuelve una nueva matriz que es el resultado de aplicar esa función a todos los elementos de la matriz original.

Todos los demás usos del término pueden, al menos en mi experiencia, considerarse análogos a este específico. En el sentido más general, "mapear" en programación significa tomar varias cosas y luego asociarlas de alguna manera con otra.

Un uso típico pero impreciso en mi trabajo diario sería "mapear eventos de IU a funciones de controlador". Por ejemplo, cuando el usuario hace clic en el botón 1, quiero handleButton1Clickque me llamen, y cuando el usuario pasa el cursor sobre una imagen, quiero handleImageHoverque me llamen.

Uno de los usos de alto nivel de este término es ORM (mapeo relacional de objetos), que significa mapear filas en una base de datos relacional a objetos en un lenguaje OOP, para que pueda manipular objetos "normales" en su código sin tener que escriba directamente SQL o preocúpese por la estructura de la base de datos.

Ixrec
fuente
9

Es un concepto matemático.

www.thefreedictionary.com

2. Mathematics The correspondence of elements in one set
to elements in the same set or another set.

Es establecer una correspondencia entre dos modelos de datos distintos.

  • Por ejemplo, puedes decir que la clase User es una representación de una fila de la tabla de la base de datos USER, que sería un mapeo relacional de objetos.
  • O puede crear una lista de pares clave-valor que dice que un elemento dado de una lista corresponde a un elemento de la otra lista.

Supongo que su lengua materna es el español dado su nombre de usuario, el mapeo o "to map" podría traducirse como emparejar .

Tulains Córdova
fuente
44
Es probable que su descripción solo sea comprensible para alguien que ya tenga experiencia con el mapeo.
Robert Harvey
@RobertHarvey Lo mejoré un poco.
Tulains Córdova
4

Generalmente, el "mapeo" es una asociación de algunos valores a otros valores. Tiende a implicar un tipo de proceso manual. Tiende a implicar una asociación fija. Considere los valores ASCII:

'a' -> 97
'b' -> 98
'c' -> 99
...

El conjunto completo de asociaciones se denomina mapeo (sustantivo). Tener los caracteres y los números y hacer las asociaciones también se llama mapeo (verbo). Difiere de una función, ya que una función toma algo de entrada y produce la salida basada en algún cálculo. Las asignaciones generalmente no hacen un cálculo, sino que en su lugar hacen algún tipo de búsqueda.

Telastyn
fuente
0

Un mapa geográfico traduce los puntos de referencia del mundo real a un formato diferente: una hoja de papel fácil de leer.

El mapeo en la ciencia es la misma idea. Toma un conjunto de objetos de un dominio y los traduce a otro para un uso diferente.

Es un concepto amplio que puede usarse generalmente para cualquier número de situaciones.

Price Jones
fuente