Angenommen, Sie gehen zum Zahnarzt, um sich einen Zahn herausziehen zu lassen.
Wenn die Rezeptionistin Sie nach Ihrem Namen fragt, sind dies Informationen, die sie benötigen, um den Termin zu beginnen. In diesem Beispiel handelt es sich bei Ihrem Namen um Kontextinformationen . Im Zusammenhang mit einem Zahnarztbesuch müssen Sie also Ihren Namen angeben, damit Ihr Zahn gezogen wird.
Nehmen wir jetzt an, Sie gehen zur Bank.
Bei der Bank bitten Sie um Abhebung von 100 US-Dollar. Der Kassierer muss Ihre Identität feststellen, bevor er Ihnen Geld gibt. Daher müssen Sie ihm wahrscheinlich einen Führerschein vorzeigen oder Ihre Geldautomatenkarte durchziehen und Ihre PIN-Nummer eingeben. In jedem Fall ist das, was Sie bereitstellen, der Kontext . Der Kassierer verwendet diese Informationen, um die Transaktion voranzutreiben. Sie werden dann möglicherweise gefragt, von welchem Konto Sie abheben möchten. Wenn Sie mit "Mein Sparkonto" antworten, ist das noch mehr Kontext .
Je mehr Kontext Sie angeben, desto mehr Wissen muss die andere Partei zur Bearbeitung Ihrer Anfrage bereitstellen. Manchmal ist der Kontext optional (wie das Eingeben von immer mehr Wörtern in Ihre Google-Suche, um bessere Ergebnisse zu erzielen) und manchmal ist er erforderlich (wie das Angeben Ihrer PIN-Nummer am Geldautomaten). In jedem Fall sind es Informationen, die normalerweise dazu beitragen, Dinge zu erledigen.
Nehmen wir jetzt an, Sie nehmen Ihre 100 Dollar und kaufen ein Flugticket, um an einen warmen Ort zu fliegen, während Ihr Mund heilt.
Sie kommen an einem schönen sonnigen Ort an, aber Ihre Tasche schafft es nicht. Es ist irgendwo im Flughafensystem verloren. Also bringen Sie Ihr "Gepäckausgabeticket" (diesen Aufkleber mit dem Barcode) zum "Büro für verlorenes Gepäck". Das erste, was die Person hinter dem Schreibtisch verlangt, ist das Ticket mit Ihrer Gepäcknummer. Das ist ein Beispiel für einen erforderlichen Kontext .
Aber dann bittet Sie die Gepäckperson um weitere Informationen über Ihre Tasche, damit sie diese leichter finden kann. Sie fragen: " Welche Farbe hat es? Welche Größe hat es? Hat es Räder? Ist es hart oder weich? Obwohl sie diese Informationen nicht unbedingt benötigen, hilft es, die Dinge einzugrenzen, wenn Sie sie bereitstellen. Es reduziert die Problembereich. Dies beschleunigt die Suche erheblich. Dies ist ein optionaler Kontext .
Hier ist der interessante Teil: Bei vielen Software- und APIs wird der erforderliche Kontext normalerweise als tatsächlicher Parameter in einer Methodensignatur angezeigt, und der optionale Kontext wird an eine andere Stelle verschoben, z. B. eine flexible Schlüsselwertzuordnung, die alles enthalten kann (und möglicherweise leer ist) ) oder in einen threadlokalen Speicher, auf den bei Bedarf zugegriffen werden kann.
Die obigen Beispiele stammen aus dem wirklichen Leben, aber Sie können sie leicht auf Bereiche innerhalb der Informatik abbilden. Beispielsweise enthalten HTTP-Header Kontextinformationen. Jeder Header bezieht sich auf Informationen über die Anfrage. Wenn Sie im Rahmen eines zweiphasigen Festschreibungsprozesses eine globale Transaktions-ID senden , ist diese Transaktions-ID der Kontext. Es hilft dem Transaktionsmanager, die Arbeit zu koordinieren, da es Informationen über die jeweilige Gesamtaufgabe enthält.
Hoffentlich hilft das.