Le terme «contexte» en programmation?

Je programme depuis quelques mois maintenant et un mot fréquemment utilisé est “contexte” dans les classes. Comme ServletContext (Java), Activity (Android), Service (Java, Android), NSManagedContext (Objective-C, iOS).

En regardant dans les dictionnaires, je vois que le mot signifie: situation, environnement, circonstances, etc. Cependant, comme je ne suis pas anglophone, je ne comprends pas à quoi je devrais le traduire directement. Par exemple, si je devais écrire une classe nommée SomeClassContext ou une méthode ayant un paramètre de contexte, je ne comprendrais pas quand je devrais le nommer contexte car je ne le comprends pas.

J’ai cherché un contexte sur Stack Overflow, mais aucune question / réponse n’a pu m’aider.

Je serais très heureux si quelqu’un pouvait me fournir l’explication.

Disons que vous allez chez le dentiste pour faire sortir une dent.

Lorsque le réceptionniste vous demande votre nom, c’est l’information dont ils ont besoin pour commencer le rendez-vous. Dans cet exemple, votre nom est une information contextuelle . Donc, dans le contexte de la visite chez le dentiste, vous devez fournir votre nom pour obtenir votre dent tirée.

Maintenant, disons que vous allez à la banque.

À la banque, vous demandez de retirer 100 $. Le caissier doit établir votre identité avant de vous donner de l’argent. Vous devrez donc probablement leur présenter un permis de conduire ou glisser votre carte de guichet automatique et entrer votre code PIN. De toute façon, ce que vous fournissez est le contexte . Le caissier utilise ces informations pour faire avancer la transaction. Ils peuvent alors vous demander de quel compte vous souhaitez retirer. Lorsque vous répondez “Mon compte d’épargne” , c’est encore plus contextuel .

Plus vous donnez de contexte, plus votre interlocuteur est en mesure de gérer votre demande. Parfois, le contexte est facultatif (par exemple, taper de plus en plus de mots dans votre recherche Google pour obtenir de meilleurs résultats) et parfois c’est nécessaire (comme fournir votre code PIN au guichet automatique). De toute façon, ce sont des informations qui aident généralement à faire avancer les choses.

Maintenant, disons que vous prenez vos 100 $ et achetez un billet d’avion pour voler dans un endroit chaud pendant que votre bouche guérit.

Vous arrivez à une belle destination ensoleillée, mais votre sac ne le fait pas. Il est perdu quelque part dans le système aéroportuaire. Ainsi, vous apportez votre “ticket de récupération de bagages” (cet autocollant avec le code à barres) au “bureau des bagages perdus”. La première chose que la personne derrière le bureau demandera est ce billet avec votre numéro de bagage dessus. C’est un exemple de contexte requirejs .

Mais alors le bagagiste vous demande plus d’informations sur votre sac afin de pouvoir le trouver plus facilement. Ils demandent: « De quelle couleur s’agit-il? Quelle est sa taille? A-t-il des roulettes? Est-ce dur ou mou? Bien qu’ils n’aient pas nécessairement besoin de ces informations, cela permet de réduire les choses si vous les fournissez. zone de problème. Cela rend la recherche beaucoup plus rapide.

Voici la partie intéressante: pour beaucoup de logiciels et d’API, le contexte requirejs se termine généralement par des parameters réels dans une signature de méthode, et le contexte optionnel se déplace ailleurs, comme une carte clé-valeur flexible pouvant contenir n’importe quoi (et peut être vide) ) ou dans un espace de stockage local où il est possible d’y accéder si nécessaire.

Les exemples ci-dessus proviennent de la vie réelle, mais vous pouvez facilement les associer à des domaines de l’informatique. Par exemple, les en-têtes HTTP contiennent des informations contextuelles. Chaque en-tête concerne des informations sur la demande en cours. Ou, lorsque vous envoyez un ID de transaction global dans le cadre d’un processus de validation en deux phases , cet ID de transaction est contextuel. Cela aide le gestionnaire de transactions à coordonner le travail car il contient des informations sur la tâche à accomplir.

J’espère que cela pourra aider.

Le contexte peut être vu comme un seau pour transmettre des informations. Il est généralement utilisé pour transmettre des choses qui ne sont pas nécessairement liées directement à un appel de méthode, mais qui peuvent néanmoins être pertinentes. Une façon laïque de le décrire pourrait être “des choses qui pourraient vous intéresser”.

Par exemple, si vous écriviez un service pour mettre à jour une valeur dans une firebase database, vous transmetsortingez probablement l’ID d’enregistrement et la nouvelle valeur.

Si vous souhaitez des interfaces génériques, vous pouvez également définir un contexte à transmettre, de sorte que le service puisse exécuter une logique métier arbitraire. Vous pouvez donc inclure une authentification d’utilisateur, l’état de session de l’utilisateur, etc. dans le contexte, car le service peut exécuter une logique supplémentaire en fonction de ces valeurs.

Nous sums en 2015 – quelques années après le début de ce sujet.

Néanmoins, je publie ce message pour aider quiconque, comme moi, à lutter contre le «contexte»

Je ne prétends en aucun cas avoir utilisé Context dans les programmes Java – il ne vous rest donc plus qu’à écrire Context in hard coding.

“Conceptuellement, le contexte” est le même “que me dire plus” Lorsqu’un client fait une demande au serveur – pour exécuter la requête, le serveur dit “donnez-moi plus d’informations pour que je puisse vous aider”. Ainsi, avec la demande, le client fournit un ensemble de détails. Le serveur choisit et choisit dans le paquet toutes les informations nécessaires pour répondre à la demande. Ce bundle est ce qu’on appelle le “contexte”

Par exemple

Le patient va au doc ​​et dit Treat_me (“J’ai mal à la tête”) Le bureau de Doc donne au patient un formulaire à remplir. Le patient remplit le formulaire. Le formulaire est utilisé par le médecin pour effectuer la demande “treat_me”.

Voici à quoi ressemble la requête:

 treat_me ( "i have a headache", filled_form_num_23321 ) 

Voici à quoi ressemble filled_form_num_23321 :

Q. Qu’est-ce qui a conduit à la condition? A. 10 piquets de scotch soigné dernière nuit
Q. Nom du patient? A. Joe Bigdrinker
Q.Age? 98

Dans cette transaction filled_form_num_23321 est le “contexte”.

J’espère que cela aide à clarifier le concept de “contexte”.

Je considère toujours le contexte comme un état particulier lié à l’object ou à la construction avec lequel je travaille.

Par exemple, lorsque vous utilisez drawRect dans une vue (où tout le dessin doit être fait pour une vue), vous devez toujours obtenir le currentGraphicsContext dans lequel vous allez émettre vos instructions graphiques principales. Ce contexte contient des éléments tels que les limites de la vue, la couleur du trait, l’épaisseur du trait pour dessiner une ligne, la couleur de remplissage pour remplir un chemin fermé, etc. Ce contexte (comme la plupart des autres) ne représente que l’état actuel. alors pensez au contexte graphique dans ce cas comme un ensemble d’états tels que

le trait épaissi est de 1,5 pixels la couleur de remplissage est le noir les limites de la vue sont (155, 200) la couleur du trait est le rouge

C’est fondamentalement l’état à l’heure actuelle …

Le contexte fait référence au contexte d’ exécution , qui correspond aux symboles accessibles à partir d’un point donné du code, et à la valeur de ces symboles dans cette exécution particulière.

Le contexte est un concept important car:

  1. Les unités exécutables (fonctions, procédures, instructions) peuvent produire des résultats différents ou se comporter différemment selon les contextes.
  2. Plus le contexte est large ou complexe, plus il est difficile de comprendre ce que fait un morceau de code (c’est pourquoi les variables globales sont rejetées).

Vous n’avez pas besoin d’écrire des classes de contexte ou de transmettre des parameters de contexte . Tout paramètre passé à une fonction / méthode devient une partie du contexte d’exécution lorsqu’il est appelé.

Même si vous n’êtes pas anglophone, je vous recommande de parcourir une copie de Code Complete pour une introduction en douceur mais approfondie aux concepts tels que le contexte , la modularité , le couplage , la cohésion , etc.

Pour donner un exemple pratique. Disons que vous avez une certaine page Web pour récupérer / rendre des informations basées sur l’utilisateur (qui est connecté) et la langue du navigateur. La logique d’extraction des informations est indépendante de l’utilisateur et du langage. Votre page recevra un utilisateur et une langue … pour la logique cela n’a pas d’importance si c’est moi ou vous ou l’anglais ou l’espagnol.

Un pseudo code:

 class FooPage { void handleRequest(RequestContext context) { User user = context.getUser(); Locale locale = context.getLocale(); … do some logic based on the context } } 

Ce n’est pas si difficile, mais il faut un certain temps pour comprendre le concept

Un service de nommage associe des noms à des objects. Une association entre un nom et un object est appelée une liaison et un ensemble de telles liaisons est appelé un contexte. Un nom dans un contexte peut être lié à un autre contexte qui utilise les mêmes conventions de dénomination. le contexte lié est appelé un sous-contexte. Par exemple, dans un système de fichiers, un répertoire (tel que / temp) est un contexte qui contient des liaisons entre les noms de fichiers et les objects que le système peut utiliser pour manipuler les fichiers (souvent appelés descripteurs de fichiers). Si un répertoire contient une liaison pour un autre répertoire (par exemple, / temp / javax), le sous-répertoire est un sous-contexte.

Le contexte dans votre cas est l’environnement dans lequel votre application est en cours d’exécution.

Il fournit des informations / services / capacités dont votre application aura besoin pour fonctionner correctement.

HTH

Trop souvent, l’auteur suppose que le lecteur a une compréhension détaillée du contexte dans lequel le mot «contexte» est utilisé.

Comment définir le contexte dans la phrase suivante “Le? Runtime crée un contexte dans lequel les valeurs possibles pour l’injection peuvent être stockées. Ce contexte peut être modifié, par exemple l’application et le framework peuvent append des éléments au contexte.

Il semblerait que l’auteur utilise le contexte pour désigner une sorte de conteneur, peut-être un tas, qui contient le contexte de quelque chose. C’est devenu un mot à la mode qui prend beaucoup de sens et de choses déroutantes. Est-ce les éléments qui constituent le contexte et qui sont stockés dans un contexte? Pour réduire la confusion du contexte dans lequel le contexte de mot est utilisé, on pourrait dire que “le runtime crée un conteneur pour stocker le contexte sous la forme d’éléments”. Mieux encore, “le runtime crée un conteneur pour stocker l’état sous la forme d’éléments et ce conteneur avec son état s’appelle le CONTEXT”.

3 ans plus tard, peut-être un peu tard, mais peut-être que ce fil pourrait vous aider. Cela montre que le mot “contexte” a un sens technique en programmation (pas simplement en anglais).

Quels langages de programmation sont sans contexte?

Vous ne savez pas si vous pouvez l’utiliser comme exemple et en tirer des informations ou non. J’aimerais aussi entendre une explication agnostique du terme de programmation technique “contexte”

Edit: Ou au moins cela montre que le terme “contexte” peut être appliqué dans un contexte de programmation technique (sans punition). Peut-être dans plus d’une application concrète du terme.

Je ne vois pas la pertinence d’expliquer le mot contexte dans le contexte de la programmation.

Pour comprendre le contexte dans un contexte, vous devez d’abord comprendre le contexte. C’est récursif.

Le contexte est un mot abstrait et les mots abstraits sont difficiles à comprendre pour certaines personnes. Pouvoir penser abstraitement est un cadeau. Je ne dis pas que vous ne l’avez pas, mais il y a différents niveaux d’abstraction et je suppose que le mot contexte est un niveau d’abstraction plus élevé que ce que vous pouvez facilement saisir.

Je ne sais pas d’où vous venez, mais je suis sûr qu’il y a un mot pour contexte dans votre langue maternelle et que vous ne comprenez probablement pas non plus ce mot.

J’ai utilisé le contexte dans le contexte de la programmation et je pourrais vous donner un exemple, mais je pense vraiment que vous devez d’abord comprendre le mot contexte.