language-agnostic - 编程中的术语 "Context"?

标签 language-agnostic programming-languages terminology

我已经编程几个月了,类里面经常使用的词是“上下文”。喜欢ServletContext (Java),Activity (安卓),Service (Java、Android),NSManagedContext (Objective-C、iOS)。

通过查字典,我发现这个词的意思是:情况、环境、环境等。但是,因为我不是以英语为母语的人,所以我不明白应该将其直接翻译成什么。例如,如果我要编写一个名为 SomeClassContext 的类,或者具有上下文参数的方法,我不明白什么时候应该将其命名为上下文,因为我不理解它。

我一直在 Stack Overflow 上搜索上下文,但没有任何问题/答案能够帮助我。

如果有人能给我解释,我会很高兴。

最佳答案

假设您去看牙医拔牙。

当接待员询问您的姓名时,这是他们开始预约所需的信息。在此示例中,您的姓名是上下文信息。因此,在看牙医时,您需要提供您的姓名才能拔牙。

现在假设您走到银行。

在银行,您要求提取 100 美元。出纳员在给您钱之前需要确认您的身份,因此您可能需要向他们出示驾驶执照或刷 ATM 卡并输入您的 PIN 码。无论哪种方式,您提供的是上下文。出纳员使用此信息来推进交易。然后他们可能会询问您想从哪个帐户提款。当您回答“我的储蓄账户”时,这甚至是更多背景信息

您提供的背景信息越多,对方就越能帮助处理您的请求。有时上下文是可选的(例如在 Google 搜索中输入越来越多的单词以获得更好的结果),有时则是必需的(例如在 ATM 机上提供您的 PIN 码)。不管怎样,这些信息通常有助于完成工作。

现在假设您拿着 100 美元买了一张机票,飞到温暖的地方,同时您的口腔痊愈了。

您到达了一个阳光明媚的目的地,但您的行李却没能到达。它在机场系统的某个地方丢失了。因此,您将“行李认领票”(带有条形码的贴纸)带到“丢失行李办公室”。柜台后面的人首先要的就是上面有您的行李号码的机票。这是一些所需上下文的示例。

但随后行李人员会要求您提供有关您的行李的更多信息,以便他们可以更轻松地找到它。他们会问:“它是什么颜色?它有多大?它有轮子吗?是硬的还是软的?虽然他们不一定需要这些信息,但如果满足以下条件,这有助于缩小范围:您提供它们。它减少了问题区域。它使搜索速度更快。这就是可选上下文

这是有趣的部分:对于许多软件和 API,必需的上下文通常最终作为方法签名中的实际参数,而可选上下文则位于其他地方,就像一个灵活的键值映射,可以包含任何内容(并且可能为空),也可以存储到线程本地存储中,如果需要,可以在其中访问它。

上面的例子来自现实生活,但您可以轻松地将它们映射到计算机科学领域。例如,HTTP header 包含上下文信息。每个 header 都与所发出请求的信息相关。或者当您将全局交易 ID 作为 two-phase commit process 的一部分发送时,该事务 ID 是上下文。它可以帮助事务管理器协调工作,因为它提供了有关当前总体任务的信息。

关于language-agnostic - 编程中的术语 "Context"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6145091/

相关文章:

language-agnostic - 以编程方式检测页面上的 "most important content"

C语言 : recursive #include

terminology - "headless"是什么意思?

terminology - “Data is just dumb code, and code is just smart data”是什么意思?

algorithm - 由 'smart lines' 链接的盒子 - 这叫什么?怎么样?

algorithm - 向后打印一个没有递归的简单链表,最多两次,使用常量额外内存,保持原样

database - 简单密码加密

language-agnostic - 我应该继承还是使用枚举?

oop - 什么是开放递归?

programming-languages - 平台无关语言