language agnostic - El término "Contexto" en la programación?
language-agnostic programming-languages (11)
He estado programando durante algunos meses y una palabra de uso frecuente es "contexto" en las clases. Al igual que ServletContext
(Java), Activity
(Android), Service
(Java, Android), NSManagedContext
(Objective-C, iOS).
Al mirar en los diccionarios, veo que la palabra significa: situación, entorno, circunstancias, etc. Sin embargo, como no soy un hablante nativo de inglés, no entiendo a qué debo traducirlo directamente. Por ejemplo, si tuviera que escribir una clase que se llamara SomeClassContext
, o un método que tuviera un parámetro de contexto, no entendería cuándo debería nombrarlo contexto porque no lo entiendo.
He estado buscando contexto en Stack Overflow, pero ninguna pregunta / respuesta fue capaz de ayudarme.
Estaría muy feliz si alguien pudiera darme la explicación.
3 años más tarde, tal vez un poco tarde, pero tal vez este hilo te ayude. Ilustra que la palabra "contexto" tiene un significado técnico en la programación (no solo un significado simple en inglés).
¿Qué lenguajes de programación están libres de contexto?
No estoy seguro si puede usarlo como ejemplo y extraer alguna información de él o no. A mí también me encantaría escuchar una explicación agnóstica del lenguaje del término de programación técnica "contexto"
Editar: O al menos muestra que el término "contexto" se puede aplicar en un contexto técnico de programación (sin intención). Posiblemente en más de una aplicación concreta del término.
Con demasiada frecuencia, el autor supone que el lector tiene una comprensión detallada del contexto en el que se usa la palabra "contexto".
¿Cómo se define el contexto en la siguiente frase "The? Runtime crea un contexto en el que se pueden almacenar los valores posibles de inyección. Este contexto se puede modificar, por ejemplo, la aplicación y el marco pueden agregar elementos al contexto.
Parecería que el autor está usando el contexto para referirse a algún tipo de contenedor, tal vez un montón, que contiene el contexto de algo. Se ha convertido en una palabra de moda que está tomando muchos significados y cosas confusas. ¿Son los elementos que son el contexto y se almacenan en un contexto? Para reducir la confusión del contexto en el que se usa la palabra contexto, podría decirse que "el tiempo de ejecución crea un contenedor para almacenar el contexto en forma de elementos". Mejor aún, "el tiempo de ejecución crea un contenedor para almacenar el estado en forma de elementos y este contenedor con su estado se llama CONTEXTO".
Digamos que vas al dentista para sacarte un diente.
Cuando la recepcionista le pide su nombre, esa es la información que necesitan para comenzar la cita. En este ejemplo, su nombre es información contextual . Por lo tanto, en el contexto de visitar al dentista, debe proporcionar su nombre para extraer su diente.
Ahora digamos que caminas hacia el banco.
En el banco, solicita retirar $ 100. El cajero debe establecer su identidad antes de darle dinero, por lo que probablemente tendrá que mostrarle una licencia de conducir o deslizar su tarjeta ATM e ingresar su número PIN. De cualquier manera, lo que estás proporcionando es contexto . El cajero usa esta información para mover la transacción hacia adelante. Luego pueden preguntarle de qué cuenta le gustaría retirarse. Cuando respondes, "Mi cuenta de ahorros" , eso es aún más contexto .
Mientras más contexto proporciones, más conocimiento tendrá la otra parte para ayudar a manejar tu solicitud. A veces, el contexto es opcional (como escribir más y más palabras en la búsqueda de Google para obtener mejores resultados) y, a veces, es obligatorio (como proporcionar su número PIN en el cajero automático). De cualquier manera, es información que generalmente ayuda a hacer las cosas.
Ahora digamos que toma sus $ 100 y compra un boleto de avión para volar a un lugar cálido mientras su boca sana.
Llegas a un bonito destino soleado, pero tu bolsa no lo hace. Está perdido en algún lugar del sistema aeroportuario. Por lo tanto, lleve su "boleto de reclamo de equipaje" (esa etiqueta con el código de barras) a la "oficina de equipaje perdido". Lo primero que pedirá la persona detrás del mostrador es ese boleto con su número de equipaje en él. Ese es un ejemplo de un contexto requerido .
Pero luego, la persona encargada del equipaje le pide más información acerca de su bolso para que puedan encontrarlo más fácilmente. Preguntan: " ¿ De qué color es? ¿De qué tamaño? ¿Tiene ruedas? ¿Es duro o suave? Si bien no necesariamente necesitan esa información, ayuda a reducir las cosas si se les proporciona. área problemática. Hace la búsqueda mucho más rápida. Es un contexto opcional .
Aquí está la parte interesante: para una gran cantidad de software y API, el contexto requerido generalmente termina como parámetros reales en una firma de método, y el contexto opcional va a otro lugar, como un mapa de clave-valor flexible que puede contener cualquier cosa (y puede estar vacío ) o en el almacenamiento local de subprocesos donde se puede acceder si es necesario.
Los ejemplos anteriores son de la vida real, pero puede asignarlos fácilmente a áreas dentro de la informática. Por ejemplo, los encabezados HTTP contienen información contextual. Cada encabezado se relaciona con la información sobre la solicitud que se realiza. O cuando envía una ID de transacción global como parte de un proceso de confirmación en dos fases , esa ID de transacción es contexto. Ayuda al gerente de transacciones a coordinar el trabajo porque es información sobre la tarea general en cuestión.
Espero que ayude.
El contexto en su caso es el entorno donde se ejecuta su aplicación.
Proporciona información / servicios / habilidades que su aplicación necesitará para funcionar correctamente.
HTH
El contexto se puede ver como un cubo para pasar información. Normalmente se usa para pasar cosas que no están necesariamente relacionadas directamente con una llamada a un método, pero que aún podrían ser pertinentes. Una forma laica de describirlo podría ser "cosas que te puedan importar".
Por ejemplo, si estuvieras escribiendo un servicio para actualizar un valor en un archivo db, probablemente pasarías el ID del registro y el nuevo valor.
Si desea interfaces genéricas, también puede definir un contexto para pasar, de modo que el servicio pueda realizar una lógica comercial arbitraria. Por lo tanto, puede incluir una autenticación de usuario, el estado de sesión del usuario, etc. en el contexto, ya que el servicio puede realizar lógica adicional dependiendo de estos valores.
Esto es 2015 - puede años después de que este hilo comenzó.
No obstante, estoy publicando este mensaje para ayudar a cualquier persona como yo que esté luchando para entender el "contexto"
De ninguna manera afirmo haber utilizado el contexto en los programas de Java, por lo que depende enteramente de usted escribir Contexto en la codificación dura Así que aquí va:
"Contexto conceptual" es lo mismo "como dime más" Cuando un cliente realiza una solicitud al servidor: para realizar la solicitud, el servidor dice "dame más información para que pueda ayudarte". Por lo tanto, junto con la solicitud, el cliente proporciona un paquete de detalles. El servidor selecciona y elige del paquete toda la información requerida para atender la solicitud. Este paquete es lo que se llama "Contexto"
P.ej
El paciente acude al doctor y dice treat_me ("Tengo un dolor de cabeza"). La oficina de documentos le da al paciente un formulario para llenar. El paciente llena el formulario. El formulario es utilizado por el médico para llevar a cabo la solicitud "treat_me".
Así es como se ve la solicitud ahora:
treat_me ( "i have a headache", filled_form_num_23321 )
Aquí se muestra cómo se ve filled_form_num_23321
:
P. ¿Qué lleva a la condición? A. 10 estacas de Scotch last last night
P. ¿Nombre del paciente? A. Joe Bigdrinker
Q. ¿Edad? 98
En esta transacción, filled_form_num_23321
es el "contexto".
Espero que esto ayude a aclarar el concepto de "Contexto".
No veo la relevancia en la explicación de la palabra contexto en el contexto de la programación.
Para comprender el contexto en un contexto, primero debes entender el contexto. Es recursivo
El contexto es una palabra abstracta y las palabras abstractas son difíciles de entender para algunas personas. Poder pensar abstractamente es un regalo. No digo que no lo tenga, pero hay diferentes niveles de abstracción y supongo que la palabra contexto tiene un nivel de abstracción más alto que el que puede captar fácilmente.
No sé de dónde eres, pero estoy seguro de que también hay una palabra para el contexto en tu lengua materna y probablemente tampoco entiendas esa palabra.
He usado el contexto en el contexto de la programación y podría darte un ejemplo, pero realmente creo que debes entender la palabra contexto primero.
Para dar un ejemplo práctico. Supongamos que tiene una página web determinada para buscar / procesar información según el usuario (que haya iniciado sesión) y el idioma del navegador. La lógica de buscar la información es independiente del usuario y el idioma. Su página recibirá un usuario y un idioma ... por lógica, no importa si soy yo o usted o inglés o español.
Algunos pseudo código:
class FooPage
{
void handleRequest(RequestContext context)
{
User user = context.getUser();
Locale locale = context.getLocale();
… do some logic based on the context
}
}
No es tan difícil, pero lleva un tiempo comprender el concepto
Siempre pienso en el contexto como un estado particular relevante para el objeto o constructo con el que estoy trabajando.
Por ejemplo, cuando usa drawRect en una vista (donde todo el dibujo debe hacerse para una vista) siempre debe obtener el actualGraphicsContext en el que emitirá sus declaraciones de gráficos centrales. Este contexto contiene elementos como los límites de la vista, el color del trazo, el grosor del trazo para dibujar una línea, el color de relleno para rellenar un Trazado cerrado, etc. este contexto (como la mayoría de los demás) es el estado actual en este momento. así que piense en el contexto gráfico en este caso como un conjunto de estados como
el grosor del trazo es de 1,5 píxeles El color de relleno es negro Los límites de la vista es (155, 200) El color del trazo es Rojo
Es básicamente el estado en el punto actual en el tiempo ...
Un servicio de nombres asocia nombres con objetos. Una asociación entre un nombre y un objeto se denomina vinculación, y un conjunto de tales enlaces se denomina contexto. Un nombre en un contexto puede vincularse a otro contexto que use las mismas convenciones de nomenclatura; el contexto vinculado se llama subcontexto. Por ejemplo, en un sistema de archivos, un directorio (como / temp) es un contexto que contiene enlaces entre nombres de archivos y objetos que el sistema puede usar para manipular los archivos (a menudo denominados manejadores de archivos). Si un directorio contiene un enlace para otro directorio (por ejemplo, / temp / javax), el subdirectorio es un subcontexto.
El contexto se refiere al contexto de ejecución , que son los símbolos alcanzables desde un punto dado en el código, y el valor de esos símbolos en esa ejecución particular.
El contexto es un concepto importante porque:
- Las unidades ejecutables (funciones, procedimientos, instrucciones) pueden producir resultados diferentes o comportarse de manera diferente bajo diferentes contextos.
- Cuanto más grande o más complejo es el contexto, más difícil es entender qué hace un fragmento de código (por eso se evitan las variables globales).
No tiene que escribir clases de contexto ni pasar parámetros de contexto . Cualquier parámetro pasado a una función / método se convierte en parte del contexto de ejecución cuando se invoca.
Aunque usted no es hablante de inglés, le recomiendo que revise una copia de Code Complete para una introducción cuidadosa pero completa a conceptos como contexto , modularidad , acoplamiento , cohesión , etc.