Термин "контекст" в программировании?

Я программировал в течение нескольких месяцев, и часто используемое слово является "контекстом" в классах. Как ServletContext (Java), Activity (Android), Service (Java, Android), NSManagedContext (Objective-C, iOS).

Поглядывая в словари, я вижу, что это слово означает: ситуация, окружающая среда, обстоятельства и т.д. Однако, поскольку я не являюсь носителем английского языка, я не понимаю, к чему я должен перевести это прямо. Например, если бы я должен был написать класс, который либо был назван SomeClassContext, либо метод, который имел параметр контекста, я бы не понял, когда я должен назвать его контекстом, потому что я его не понимаю.

Я искал контекст в Stack Overflow, но никаких вопросов/ответов мне не помогло.

Я был бы очень рад, если бы кто-нибудь мог дать мне объяснение.

Ответ 1

Скажем, вы пойдете к дантисту, чтобы вытащить зуб.

Когда регистратор спрашивает у вас свое имя, эту информацию им нужно, чтобы начать встречу. В этом примере ваше имя контекстная информация. Поэтому в контексте посещения стоматолога вам нужно указать свое имя, чтобы вытащить зубы.

Теперь позвольте сказать, что вы переходите к берегу.

В банке вы просите снять 100 долларов. Кассиру необходимо установить свою личность, прежде чем давать вам деньги, поэтому вам, вероятно, придется предъявить им лицензию на водительские права или пронести карту своего банкомата и ввести свой PIN-код. В любом случае, то, что вы предоставляете, это контекст. Кассир использует эту информацию для перемещения транзакции вперед. Затем они могут спросить вас, на какой учетной записи вы хотите уйти. Когда вы отвечаете "Моя сберегательная учетная запись", это даже больше контекста.

Чем больше контекста вы дадите, тем больше знаний другая сторона должна помочь справиться с вашим запросом. Иногда контекст является необязательным (например, набирать все больше и больше слов в ваш поиск Google для получения лучших результатов), а иногда и требуется (например, предоставление вашего ПИН-кода в банкомате). В любом случае, это информация, которая обычно помогает сделать вещи.

Теперь позвольте сказать, что вы берете свои 100 долларов и покупаете билет на самолет, чтобы летать где-то теплым, пока ваш рта заживает.

Вы попадаете в красивый солнечный пункт назначения, но ваша сумка не делает этого. Он потерялся где-то в системе аэропорта. Таким образом, вы берете свой "билет на предъявление багажа" (наклейку со штрих-кодом на нем) в "Бюро по утрате багажа". Первое, что попросит человек за столом, - это билет с номером вашего багажа на нем. Это пример некоторого требуемого контекста.

Но тогда человек багажа просит вас получить дополнительную информацию о вашей сумке, чтобы они могли найти ее более легко. Они спрашивают: "Что это за цвет: какой он размер: у него есть колеса? Это трудно или мягко? Хотя они не обязательно нуждаются в этих фрагментах информации, это помогает сузить все, если вы их предоставите. необязательный контекст.

Здесь интересная часть: для большого количества программного обеспечения и API-интерфейсов требуемый контекст обычно заканчивается как фактические параметры в сигнатуре метода, а дополнительный контекст идет куда-то еще, как гибкая карта значений ключа, которая может содержать что угодно (и может быть пустым) или в локальное хранилище потоков, где он может быть доступен, если необходимо.

Приведенные выше примеры из реальной жизни, но вы можете легко сопоставить их с областями в области информатики. Например, заголовки HTTP содержат контекстуальную информацию. Каждый заголовок относится к информации о выполненном запросе. Если вы отправляете глобальный идентификатор транзакции как часть процесса двухфазной фиксации , этот идентификатор транзакции является контекстом. Это помогает менеджеру транзакций координировать работу, потому что она содержит информацию об общей задаче.

Надеюсь, что это поможет.

Ответ 2

Контекст можно рассматривать как ведро для передачи информации. Обычно он используется для передачи вещей, которые не обязательно привязаны непосредственно к вызову метода, но все же может быть уместным. Простой способ описать это может быть "материалом, о котором вы можете заботиться".

Например, если вы пишете службу для обновления значения в db, вы, вероятно, передадите идентификатор записи и новое значение.

Если вам нужны общие интерфейсы, вы также можете определить контекст для передачи, чтобы служба могла выполнять произвольную бизнес-логику. Таким образом, вы можете включить аутентификацию пользователя, состояние сеанса пользователя и т.д.... в контексте, поскольку служба может выполнять дополнительную логику, зависящую от этих значений.

Ответ 3

Это 2015 год - спустя годы после начала этой темы.

Тем не менее, я отправляю это сообщение, чтобы помочь кому-либо, вроде меня, который пытается понять "Контекст"

Ни в коем случае я не утверждаю, что использовал Context в Java-программах, поэтому он полностью зависит от вас, чтобы написать Context out in hard coding Итак, здесь идет: -

"Концептуальный контекст" - это то же самое, что и "больше". Когда клиент делает запрос на сервер - для выполнения запроса сервер говорит: "Дайте мне дополнительную информацию, чтобы я мог вам помочь". Таким образом, наряду с запросом клиент предоставляет набор деталей. сервер выбирает и выбирает из пакета все необходимые части информации для подачи запроса. Этот пакет - это то, что называется "Контекст"

например.

Пациент отправляется в doc и говорит treat_me ( "У меня болит голова" ) Doc офис дает пациенту форму для заполнения. Форма заполнения пациента. Форма используется врачом для выполнения запроса "treat_me".

Вот как выглядит запрос:

treat_me ( "i have a headache", filled_form_num_23321 ) 

Вот как выглядит filled_form_num_23321:

Q. Что приводит к условию? A. 10 колышек опрятного шотландского последнего конца
Имя Q.Patient? А. Джо Бигдринкер
Q.Age? 98

В этой транзакции filled_form_num_23321 есть "контекст".

Надеюсь, что это поможет прояснить концепцию "Контекст" .

Ответ 4

Я всегда думаю о контексте как о конкретном состоянии, относящемся к объекту или конструкции, с которыми я работаю.

Например, когда вы используете drawRect в представлении (где все чертежи должны быть сделаны для представления), вы всегда должны получать currentGraphicsContext, в который вы будете выдать свои основные графические утверждения. Этот контекст содержит такие вещи, как границы вида, цвет штриха, толщина штриха для рисования линии, цвет заливки для заполнения закрытого Пути и т.д. Этот контекст (как и большинство других) является только текущим состоянием на данный момент времени. поэтому подумайте о графическом контексте в этом случае как о простом состоянии, таком как

объемные загустители 1,5 пикселя цвет заливки черный (155, 200) цвет штриха Красный

В основном это состояние в текущий момент времени...

Ответ 5

Чтобы дать практический пример. Допустим, у вас есть определенная веб-страница для извлечения/отображения некоторой информации на основе пользователя (который входит в систему) и языка браузера. Логика получения информации не зависит от пользователя и языка. Ваша страница получит пользователя и язык... для логики это не имеет значения, будь то я или вы или английский или испанский.

Некоторые псевдо-коды:

class FooPage
{
    void handleRequest(RequestContext context)
    {
        User user = context.getUser();
        Locale locale = context.getLocale();

        … do some logic based on the context
    }
}

Это не так сложно, но требуется некоторое время, чтобы понять концепцию

Ответ 6

Контекст относится к контексту выполнения, который является символами, доступными из данной точки в коде, и значением этих символов в этом конкретном выполнении.

Контекст является важным понятием, потому что:

  • Исполняемые единицы (функции, процедуры, инструкции) могут приводить к различным результатам или вести себя по-разному в разных контекстах.
  • Чем сложнее или сложнее контекст, тем сложнее понять, что делает часть кода (о том, почему глобальные переменные избегают).

Вам не нужно писать классы контекста или передавать контекстные параметры. Любой параметр, переданный функции /method, становится частью контекста выполнения при его вызове.

Несмотря на то, что вы не являетесь англоязычным докладчиком, я рекомендую вам пройти копию Code Complete для нежного, но полного ознакомления с концепциями как контекст, модульность, связь, сцепление и т.д.

Ответ 7

Служба именования связывает имена с объектами. Связь между именем и объектом называется привязкой, а набор таких привязок называется контекстом. Имя в контексте может быть привязано к другому контексту, который использует те же соглашения об именах; связанный контекст называется подконтекстом. Например, в файловой системе каталог (например,/temp) представляет собой контекст, который содержит привязки между именами файлов и объектами, которые система может использовать для управления файлами (часто называемыми файловыми дескрипторами). Если каталог содержит привязку для другого каталога (например,/temp/javax), подкаталог является субконтекстом.

Ответ 8

Слишком часто автор предполагает, что у читателя есть подробное понимание контекста, в котором используется слово "контекст".

Как определить контекст в следующем предложении "Среда выполнения создает контекст, в котором могут быть сохранены возможные значения для инъекций. Этот контекст может быть изменен, например, приложение и структура могут добавлять элементы в контекст.

Казалось бы, автор использует контекст для обозначения какого-то контейнера, возможно кучи, который содержит контекст чего-то. Это стало звучным словом, которое приобретает много смысла и запутывает вещи. Являются ли они элементами, которые являются контекстом и хранятся в контексте. Чтобы уменьшить путаницу контекста, используемого контекстом слова, можно сказать, что "среда выполнения создает контейнер для хранения контекста в виде элементов". Еще лучше: "среда выполнения создает контейнер для хранения состояния в виде элементов, и этот контейнер с этим состоянием называется CONTEXT".

Ответ 9

3 года спустя, возможно, немного поздно, но, может быть, эта нить поможет вам. Это иллюстрирует, что слово "контекст" имеет технический смысл в программировании (а не просто на английском языке).

Какие языки программирования свободны от контекста?

Не уверен, что вы можете использовать его в качестве примера и вывести из него какую-либо информацию или нет. Я тоже хотел бы услышать язык агностического объяснения термина технического программирования "контекст"

Изменить: Или это, по крайней мере, показывает, что термин "контекст" может быть применен в техническом контексте программирования (без использования пунна). Возможно, в более чем одном конкретном применении термина.

Ответ 10

Контекст в вашем случае - это среда, в которой работает ваше приложение.

Он предоставляет информацию/услуги/возможности, необходимые вашему приложению для правильной работы.

НТН

Ответ 11

Я не вижу значимости в объяснении контекста слова в контексте программирования.

Чтобы понять контекст в контексте, вам сначала нужно понять контекст. Он рекурсивный.

Контекст - это абстрактное слово, и абстрактные слова трудно понять для некоторых людей. Способность мыслить абстрактно - это подарок. Я не говорю, что у вас его нет, но есть разные уровни абстракции, и я полагаю, что контекст слова имеет более высокий уровень абстракции, чем то, что вы легко можете понять.

Я не знаю, откуда вы, но я уверен, что есть слово для контекста и на вашем родном языке, и вы, вероятно, тоже не понимаете этого слова.

Я использовал контекст в контексте программирования, и я мог бы привести вам пример, но я действительно думаю, что вам нужно сначала понять контекст слова.