あなたが歯を抜くために歯科医に行くとしましょう。
受付があなたにあなたの名前を尋ねるとき、それは彼らが約束を始めるために必要な情報です。この例では、名前はコンテキスト情報です。したがって、コンテキストでは、歯科医を訪問では、歯を抜くために名前を提供する必要があります。
今、あなたが銀行に向かったとしましょう。
銀行では、100ドルを引き出すように要求します。窓口係はお金を与える前に本人確認を行う必要があるため、おそらく運転免許証を提示するか、ATMカードをスワイプしてPIN番号を入力する必要があります。どちらにしても、提供しているのはコンテキストです。出納係はこの情報を使用して、トランザクションを進めます。次に、どの口座から引き出すかを尋ねられる場合があります。「私の普通預金口座」と答えると、それはさらに多くのコンテキストになります。
あなたが与えるより多くのコンテキスト、あなたの要求に対処するのを助けるために相手が持っているより多くの知識。コンテキストはオプションの場合もあれば(より良い結果を得るためにGoogle検索に入力する単語の数が多い場合など)、必須の場合もあります(ATMでのPIN番号の提供など)。いずれにせよ、それは通常物事を成し遂げるのに役立つ情報です。
今、あなたがあなたの$ 100を持って、口が治っている間に暖かいところへ飛ぶための飛行機のチケットを購入したとしましょう。
日当たりの良い目的地に到着しましたが、バッグではうまく行きません。空港システムのどこかで失われました。だから、あなたは「手荷物受取券」(バーコードが貼られているステッカー)を「ロストバゲッジオフィス」に持っていきます。机の後ろにいる人が最初に尋ねるのは、手荷物番号が書かれたチケットです。これは、必要なコンテキストの例です。
しかし、その後手荷物者はより多くの情報をお願いしますあなたのバッグについて、彼らはもっと簡単に見つけることができるようにように。彼らは、「それは何色ですか?それはどのサイズですか?ホイールは付いていますか?それは硬いですか、それとも柔らかいですか?彼らは必ずしもこれらの情報を必要としませんが、それらを提供する場合、物事を絞り込むのに役立ちます。問題のある領域です。これにより検索がはるかに高速になります。これはオプションのコンテキストです。
興味深い部分は次のとおりです。多くのソフトウェアとAPIの場合、通常、必要なコンテキストはメソッドシグネチャの実際のパラメータとして終わり、オプションのコンテキストは他の場所に移動します。 )または、必要に応じてアクセスできるスレッドローカルストレージに。
上記の例は実際のものですが、コンピュータサイエンス内の領域に簡単にマッピングできます。たとえば、HTTPヘッダーにはコンテキスト情報が含まれています。各ヘッダーは、行われている要求に関する情報に関連しています。または、2フェーズコミットプロセスの一部としてグローバルトランザクションIDを送信する場合、そのトランザクションIDはコンテキストです。それは情報ですので、トランザクションマネージャが作業を調整できますについての手元に全体的なタスク。
お役に立てば幸いです。