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



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



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



Я искал контекст при переполнении стека, но ни один вопрос/ответы не смог мне помочь.



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

34525   11  

11 ответов:

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

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

теперь предположим, что вы идете в банк.

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

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

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

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

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

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

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

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

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

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

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

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

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

ни в коем случае я не утверждаю, что использовал контекст в программах Java - так что его полностью зависит от вас, чтобы написать контекст в жестком кодировании Так вот :-

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

например.

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

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

treat_me ( "i have a headache", filled_form_num_23321 ) 

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

Q. что приводит к состоянию ? A. 10 колышков чистого скотча в последнюю ночь
В. имя пациента ? А. Джо Бигдринкер
Q. Возраст ? 98

В этой сделке filled_form_num_23321 - это "контекст".

надеюсь, что это поможет в уточнении понятия "контекст".

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

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

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

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

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

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

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

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

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

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

какой-то псевдокод:

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

        … do some logic based on the context
    }
}

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

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

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

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

HTH

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

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

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

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

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

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

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

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

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

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

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

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

Comments

    Ничего не найдено.