En informática , un discriminador es un campo de caracteres diseñado para separar un elemento determinado de otros con el mismo identificador . Por ejemplo, supongamos que un programa debe guardar dos objetos únicos en la memoria, cuyos identificadores coinciden foo. Para garantizar que los dos objetos no se confundan, el programa puede asignar discriminadores a los objetos en forma de números; así, foo (1)y foo (2)distinguir ambos objetos llamados foo.
Esto ha sido adoptado tanto por lenguajes de programación como por plataformas digitales para mensajería instantánea y juegos multijugador masivos en línea .
En la mensajería instantánea
Se utiliza un discriminador para diferenciar a un usuario de otros usuarios que desean identificarse con el mismo nombre de usuario.
Discordia
En Discord , un discriminador solía ser un sufijo de cuatro dígitos que se añadía al final del nombre de usuario . Esto permitía que hasta 10 000 cuentas de usuario tuvieran el mismo nombre.
Transición para dejar atrás la discriminación
En 2023, el cofundador Stanislav Vishnevskiy escribió en una publicación del blog de la empresa sobre la deuda técnica causada por el sistema de discriminación, afirmando que este sistema provocó que casi la mitad de las solicitudes de amistad de la empresa no se conectaran. La plataforma implementó discriminadores en los primeros días del servicio, escribió. Cuando la plataforma se lanzó inicialmente, la prioridad de los desarrolladores de software era permitir que sus usuarios eligieran cualquier nombre de usuario que quisieran sin recibir el error "tu nombre de usuario deseado ya está en uso". Discord no tenía un sistema de amigos al principio, lo que permitía a las personas usar nombres con diferentes mayúsculas y minúsculas , haciendo que los nombres de usuario distinguieran entre mayúsculas y minúsculas. [ 1 ]
Discord también introdujo un sistema de nombre de visualización global, en el que un usuario puede ingresar un apodo predeterminado que se mostrará encima de los mensajes que envió en lugar de su nombre de usuario en toda la plataforma, promocionó Vishnevskiy en Reddit . [ 2 ]
La plataforma creó un proceso de transición hacia un sistema de seudónimos en el que todos los nombres de usuario nuevos estarían en minúsculas, sin distinción entre mayúsculas y minúsculas, y se limitarían a los caracteres ASCII de la A a la Z, del 0 al 9, el punto y el guion bajo . La transición se llevaría a cabo a lo largo de varios meses, y las cuentas registradas más antiguas, así como los suscriptores de pago, tendrían la oportunidad de reservar su nombre con antelación.
Este cambio fue criticado en línea por ser un paso atrás, ya que los usuarios podrían correr el riesgo de ser suplantados. Un notable estudio de juegos independientes señaló que ya no podía reclamar su propio nombre en la plataforma. [ 3 ] Discord señaló sus procesos para usuarios con alta visibilidad y relaciones comerciales de larga data con la empresa para reservar un nombre de usuario bajo el nuevo sistema. El antiguo sistema orientado a la discriminación también mitigó la prisa por obtener nombres de usuario únicos para la venta en el mercado negro , lo que provocó llamadas falsas a la policía y acoso en línea . [ 4 ] [ 2 ]
En la distribución digital
Battle.net añade un sufijo de cuatro dígitos a sus nombres de usuario.
En el almacenamiento de datos informáticos
Arquitectura de agente de solicitud de objetos comunes
Un discriminador es un campo de etiqueta tipado presente en la arquitectura Common Object Request Broker (IOB) , el lenguaje de descripción de interfaz del Object Management Group . Consiste en definiciones de tipo y valor de uniones etiquetadas que determinan qué miembro de la unión se selecciona en la instancia de unión actual. Esto se logra mediante la introducción de la construcción switch clásica de C como parte de la unión clásica de C. [ 5 ] [ 6 ] A diferencia de algunos lenguajes de programación convencionales que ofrecen soporte para uniones, el discriminador en IDL no es idéntico al nombre del campo seleccionado. Aquí hay un ejemplo de una definición de tipo de unión IDL:
Unión de registros switch ( char ) { case 'a' : case 'b' : short AX ;caso 'c' : long EAX ;predeterminado : octeto AL ; };El valor efectivo del tipo de registro puede contener AX como campo seleccionado, pero el valor discriminador puede ser 'a' o 'b' y se almacena en memoria por separado. Por lo tanto, IDL separa lógicamente la información sobre el nombre del campo seleccionado y el valor efectivo de la unión de la información sobre el valor discriminador actual. En el ejemplo anterior, el valor discriminador puede ser cualquiera de los siguientes: 'a', 'b', 'c', así como cualquier otro carácter perteneciente al chartipo IDL, ya que la defaultrama especificada en el tipo de registro de ejemplo permite el uso de los caracteres restantes.
Otros lenguajes de definición de interfaz
El lenguaje de definición de interfaz de Microsoft también admite uniones etiquetadas, lo que permite elegir el discriminador mediante un atributo en una estructura o función contenedora. [ 7 ]
En la deserialización
Al deserializar datos desde un formato de serialización de datos como JSON en un lenguaje orientado a objetos, se puede utilizar un discriminador de tipos para la deserialización polimórfica.
En este ejemplo, el campo discriminador se llama "$type".
Una publicación por entregas de un libro.
{ "$type" : "book" , "title" : "¿Sueñan los androides con ovejas eléctricas?" , "author" : "Philip K. Dick" }Una serialización de una película.
{ "$type" : "movie" , "title" : "Titanic" , "director" : "James Cameron" }Ambas serializaciones de datos comparten un campo común llamado "$type", que actúa como discriminador de tipo. El libro tiene el campo específico "author", mientras que la película tiene el campo específico "director".
Esto facilita la deserialización de datos a diferentes clases dependiendo del valor del discriminador de tipo.
Alternativas
Un código de amigo es un número único de doce dígitos que se puede intercambiar con amigos y se utiliza para mantener listas de amigos individuales en cada videojuego . Los códigos de amigo se generaban a partir de un identificador único para una copia del juego y el identificador universalmente único correspondiente al dispositivo del usuario. [ 8 ]
Referencias
- ↑ Mehrotra, Shikhar (7 de mayo de 2023). "Nuevos nombres de usuario de Discord: todo lo que necesitas saber sobre la actualización" . Screen Rant . Consultado el 12 de junio de 2023 .
- 1 2 Shakir, Umar (6 de mayo de 2023). "El cambio de nombre de usuario de Discord está causando discordia" . The Verge . Vox Media . Recuperado el 12 de junio de 2023 .
- ↑ Wright, Steven (22 de mayo de 2023). "La nueva y controvertida política de Discord ha impedido que un desarrollador reclame su propio nombre" . GameSpot . Fandom, Inc. Recuperado el 12 de junio de 2023 .
- ↑ Gerken, Tom (4 de mayo de 2023). "Discord planea obligar a todos a cambiar su nombre de usuario" . BBC News . British Broadcasting Company . Consultado el 12 de junio de 2023 .
- ↑ Object Management Group (12 de marzo de 2004). "Especificación CORBA/IIOP 3.0.3" . OMG.org . Archivado del original el 15 de octubre de 2007.
- ↑ "CORBA 3.0 - Capítulo sobre sintaxis y semántica de IDL" . OMG.org . 12 de marzo de 2004.
- ↑ "Documentación de atributos discriminadores de Microsoft" . Microsoft Learn . 25 de octubre de 2019.
- ↑ Studdard, Kim (19 de abril de 2023). "Cómo agregar amigos en Nintendo Switch: en 5 sencillos pasos con fotos" . Recuperado el 12 de junio de 2023 – vía MSN .
- Temas de lenguajes de programación
- Temas básicos de lenguajes de programación