1. ホーム
  2. language-agnostic

[解決済み] プログラミングにおける "Context "という言葉?[クローズド]

2022-04-30 06:11:43

質問

プログラミングを始めて数ヶ月になりますが、授業でよく使われる言葉に「context"」があります。例えば ServletContext (Java)を使用します。 Activity (アンドロイド)です。 Service (Java、Android)です。 NSManagedContext (Objective-C、iOS)です。

辞書で調べると、「状況、環境、事情など」という意味があるようです。しかし、私は英語のネイティブスピーカーではないので、直訳すると何になるのかが分かりません。例えば、私が書いたクラスが SomeClassContext や、contextパラメータを持つメソッドなど、いつcontextと名付けるべきか、私には理解できないからです。

Stack Overflowでcontextについて検索してみましたが、どの質問・回答も参考になりませんでした。

どなたか解説していただけると幸いです。

どのように解決するのですか?

例えば、あなたが歯を抜くために歯医者に行ったとします。

受付で名前を聞かれたら、それは予約を開始するために必要な情報です。この例では、あなたの名前は 文脈情報 . そのため コンテキスト 歯医者に行ったとき、歯を抜いてもらうために名前を提供する必要があります。

では、銀行まで歩いていくとしましょう。

銀行で、100ドルを引き出すように頼みます。窓口では、お金を渡す前にあなたの身分を証明する必要があるので、おそらく運転免許証を見せるか、ATMカードをスワイプして暗証番号を入力することになるでしょう。いずれにせよ、あなたが提供するのは コンテキスト . 窓口担当者は、この情報をもとに取引を進めます。次に、どの口座から引き出したいかを尋ねられることがあります。あなたが答えると 私の普通預金口座です。 それは より多くの文脈 .

あなたがより多くの文脈を与えれば与えるほど、相手はあなたの要求に対処するためのより多くの知識を得ることができます。コンテキストは任意である場合もあれば(Google検索でより良い結果を得るためにどんどん単語を入力するように)、必須である場合もあります(ATMでの暗証番号の入力のように)。いずれにせよ、それは通常、物事を成し遂げるのに役立つ情報です。

さて、100ドルを持って、口の中が治るまでの間、どこか暖かいところに飛んでいく航空券を買ったとしましょう。

晴天に恵まれた目的地に到着したが、カバンがない。空港のシステムのどこかで迷子になっているのだ。そこで、あなたは手荷物引換証(バーコードのついたステッカー)を持って、手荷物紛失受付窓口に行きます。窓口の人がまず聞いてくるのは、あなたの手荷物番号が書かれたそのチケットです。これはいくつかの例です。 必要なコンテキスト .

しかし、その後、荷物の担当者がさらに情報を求めてきます あなたのバッグについて 探しやすいようにとか。彼らは尋ねます、"。 色は何色ですか?大きさは?キャスターは付いていますか?硬いですか、柔らかいですか? 必ずしもそれらの情報が必要なわけではありませんが、提供しておくと絞り込みに役立ちます。問題領域が少なくなる。検索も早くなる。それは 任意コンテキスト .

ここからが面白いのですが、多くのソフトウェアやAPIで 必要なコンテキスト は通常、メソッドシグネチャの実際のパラメータとして終了し オプションコンテキスト 例えば、何でも格納できる (そして空でもよい) 柔軟な Key-Value マップや、必要に応じてアクセスできるスレッドローカルストレージに格納します。

上記の例は実生活から得たものですが、コンピュータサイエンスの分野と容易に対応させることができます。例えば、HTTPヘッダには文脈情報が含まれています。各ヘッダーは以下の情報に関連しています。 について リクエストの内容 あるいは、グローバルトランザクションIDを 二段階コミット処理 そのトランザクションIDはコンテキストです。これはトランザクションマネージャが作業を調整するのに役立ちます。 について を使用します。

お役に立てれば幸いです。