web-dev-qa-db-fra.com

Le terme "contexte" dans la programmation?

Je programme depuis quelques mois 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 un anglophone, je ne comprends pas à quoi je devrais traduire directement. Par exemple, si j'écrivais une classe nommée SomeClassContext ou une méthode comportant un paramètre context, je ne comprendrais pas quand je devrais le nommer context car je ne le comprends pas.

Je cherchais 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.

149
user772058

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

Lorsque la 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 des informations contextuelles . Donc, dans le contexte de votre visite chez le dentiste, vous devez indiquer votre nom pour que votre dent soit extraite .

Maintenant, disons que vous vous dirigez vers 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 montrer un permis de conduire ou glisser votre carte de guichet automatique et entrer votre numéro PIN. De toute façon, ce que vous ' Vous devez fournir le contexte . Le guichetier utilise ces informations pour faire avancer la transaction. Il peut ensuite vous demander à quel compte vous souhaitez retirer votre compte. vous répondez, "Mon compte épargne" , c'est même plus de contexte .

Plus vous donnez le contexte, plus vous avez de connaissances pour vous aider à traiter votre demande. Parfois, le contexte est optionnel (par exemple, taper de plus en plus de mots dans votre recherche Google pour obtenir de meilleurs résultats) et parfois, il est nécessaire (par exemple, fournir votre PIN au guichet automatique). aide généralement à faire 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éclamation de bagages" (cette étiquette avec le code à barres dessus) au "bureau des bagages égarés". La première chose que la personne derrière le bureau demandera est ce ticket avec votre numéro de bagage. C'est un exemple de contexte requis .

Mais ensuite, le bagagiste vous demande plus d’informations sur votre bagage afin de le retrouver plus facilement. Ils demandent, " de quelle couleur est-il? De quelle taille est-il? Est-ce qu'il a des roues? Est-il dur ou doux? Bien qu'ils n'aient pas nécessairement besoin de ces informations, il vous aide à préciser les choses si vous les fournissez. Cela réduit la zone de problème. Cela rend la recherche beaucoup plus rapide. C’est un contexte optionnel .

Voici la partie intéressante: pour beaucoup de logiciels et d’API, le contexte requis se termine généralement sous la forme de paramètres effectifs dans une signature de méthode, et un contexte optionnel va ailleurs, comme une mappe clé-valeur flexible pouvant contenir n'importe quoi (et pouvant être vide) ou dans un stockage local à threads où il peut être consulté si nécessaire.

Les exemples ci-dessus sont tirés de la vie réelle, mais vous pouvez facilement les mapper à 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 requête 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 un contexte. Cela aide le gestionnaire de transactions à coordonner le travail car il contient des informations sur la tâche globale à accomplir.

J'espère que ça t'as aidé.

174
Brian Kelly

Le contexte peut être vu comme un seau pour transmettre des informations. Il est généralement utilisé pour transmettre des éléments qui ne sont pas nécessairement liés directement à un appel de méthode, mais qui pourraient néanmoins être pertinents. Une manière simple de décrire cela pourrait être "des choses qui pourraient vous intéresser".

Par exemple si vous écriviez un service pour mettre à jour une valeur dans une base de données, vous transmettriez 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, tel que le service puisse exécuter une logique métier arbitraire. Vous pouvez donc inclure une authentification d'utilisateur, l'état de la session de l'utilisateur, etc., dans le contexte, car le service peut exécuter une logique supplémentaire en fonction de ces valeurs.

14
Taylor

Nous sommes en 2015 - plusieurs années après le début de ce fil.

Néanmoins, je publie ce message pour aider toute personne comme moi qui a du mal à comprendre le "contexte"

En aucun cas, je ne prétends avoir utilisé Context dans Java) - il vous incombe donc entièrement de l'écrire en mode codé en dur. Voici donc: -

"Conceptuellement, le contexte" est identique "quand on me dit plus" Lorsqu'un client fait une demande au serveur - pour exécuter la demande, le serveur dit "donnez-moi plus d'informations afin que je puisse vous aider". Ainsi, parallèlement à la demande, le client fournit un ensemble de détails. Le serveur sélectionne et choisit dans le paquet toutes les informations requises pour répondre à la demande. Ce paquet est ce qu'on appelle "Contexte"

Par exemple.

Le patient se rend chez le médecin et dit Treat_me ("J'ai mal à la tête") Le bureau du médecin donne au patient un formulaire à remplir. Le patient remplit le formulaire. Le formulaire est utilisé par le médecin pour exécuter la demande "Treat_me".

Voici à quoi ressemble maintenant la demande:

treat_me ( "i have a headache", filled_form_num_23321 ) 

Voici comment filled_form_num_23321 regards :

Q.Qu'est-ce qui a conduit à cette condition? A. 10 pinces de Scotch soigné de 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".

11
Ram

je pense toujours au contexte comme à un état particulier lié à l'objet ou à la construction avec laquelle 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 de trait, l'épaisseur de trait pour dessiner une ligne, la couleur de remplissage pour remplir un chemin fermé, etc. Ce contexte (comme la plupart des autres) correspond simplement à l'état actuel à ce moment précis. alors pensez au contexte graphique dans ce cas comme juste un ensemble d'état tel que

accident vasculaire cérébral épaisseur est de 1,5 pixels couleur de remplissage est noir limites de vue est (155, 200) couleur de trait est rouge

C'est fondamentalement l'état au moment actuel ...

7
Matt

Contexte fait référence au contexte d'exécution , qui est les symboles accessibles depuis un point donné dans le code, et la valeur de ces symboles dans cette exécution particulière.

Le contexte est un concept important pour les raisons suivantes:

  1. Les unités exécutables (fonctions, procédures, instructions) peuvent produire des résultats différents ou se comporter différemment dans différents 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'êtes pas obligé d'écrire contexte classes ou de transmettre paramètres de contexte . Tout paramètre transmis à 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 consulter une copie de Code Complete pour une introduction douce mais approfondie à des concepts tels que context , modularité , couplage , cohésion , etc.

5
Apalala

Pour donner un exemple pratique. Disons que vous avez une certaine page Web pour extraire/restituer certaines informations en fonction de l'utilisateur (qui est connecté) et de la langue du navigateur. La logique de récupération des informations est indépendante de l'utilisateur et de la langue. Votre page recevra un utilisateur et une langue ... pour la logique, peu importe si c'est moi ou vous, ni l'anglais ni 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 du temps pour comprendre le concept

4
lukin

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

1
user6656519

Bien trop souvent, l’auteur suppose que le lecteur comprend parfaitement le 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 la structure peuvent ajouter des éléments au contexte.

Il semblerait que l'auteur utilise le terme contexte pour désigner une sorte de conteneur, peut-être un tas, contenant le contexte de quelque chose. C’est devenu un buzz Word qui prend beaucoup de sens et qui confond. Est-ce que ce sont les éléments qui sont le contexte et sont stockés dans un contexte. Pour réduire la confusion du contexte d'utilisation du contexte Word, on pourrait dire que "le moteur d'exécution crée un conteneur pour stocker le contexte sous la forme d'éléments". Mieux encore "le moteur d'exécution crée un conteneur pour stocker l'état sous la forme d'éléments et ce conteneur avec son état s'appelle CONTEXTE".

0
john

3 ans plus tard, donc peut-être un peu tard, mais peut-être que ce fil pourrait vous aider. Il montre que le mot "contexte" a un sens technique dans la programmation (pas simplement un sens anglais).

Quels langages de programmation sont sans contexte?

Vous ne savez pas si vous pouvez l’utiliser comme exemple et en extraire des informations ou non. Je voudrais aussi entendre une explication agnostique du langage du terme technique de programmation "contexte"

Edit: Ou du moins, il montre que le terme "contexte" peut être appliqué dans un contexte technique de programmation (sans punn). Peut-être dans plus d'une application concrète du terme.

0
Jake