Programuję już od kilku miesięcy i często używanym słowem na zajęciach jest „kontekst”. Podobnie jak ServletContext
(Java), Activity
(Android), Service
(Java, Android), NSManagedContext
(Objective-C, iOS).
Zaglądając do słowników, widzę, że słowo to oznacza: sytuację, środowisko, okoliczności itp. Jednak ponieważ nie jestem native speakerem języka angielskiego, nie rozumiem, na co mam je bezpośrednio przetłumaczyć. Na przykład, gdybym miał napisać klasę, która została nazwana SomeClassContext
lub metodę, która miałaby parametr kontekstu, nie rozumiałbym, kiedy powinienem nazwać ją kontekstem, ponieważ jej nie rozumiem.
Szukałem kontekstu w Stack Overflow, ale żadne pytanie / odpowiedzi nie były w stanie mi pomóc.
Byłbym bardzo szczęśliwy, gdyby ktoś mógł mi wyjaśnić.
źródło
Odpowiedzi:
Powiedzmy, że idziesz do dentysty, aby wyrwać ząb.
Kiedy recepcjonistka zapyta Cię o imię i nazwisko, są to informacje, których potrzebuje, aby rozpocząć wizytę. W tym przykładzie Twoje imię jest informacją kontekstową . Dlatego w kontekście wizyty u dentysty musisz podać swoje imię i nazwisko, aby wyrwać ząb.
Teraz powiedzmy, że idziesz do banku.
W banku prosisz o wypłatę 100 $. Kasjer musi ustalić Twoją tożsamość przed przekazaniem Ci pieniędzy, więc prawdopodobnie będziesz musiał pokazać mu prawo jazdy lub przeciągnąć kartę bankomatową i wprowadzić numer PIN. Tak czy inaczej, podajesz kontekst . Kasjer wykorzystuje te informacje, aby przesunąć transakcję do przodu. Mogą wtedy zapytać, z którego konta chcesz się wycofać. Kiedy odpowiadasz „Moje konto oszczędnościowe” , jest to jeszcze bardziej kontekst .
Im więcej podasz kontekstu, tym więcej wiedzy ma druga strona, aby pomóc w załatwieniu Twojej prośby. Czasami kontekst jest opcjonalny (np. Wpisywanie coraz większej liczby słów w wyszukiwarce Google, aby uzyskać lepsze wyniki), a czasami jest wymagany (np. Podanie numeru PIN w bankomacie). Tak czy inaczej, są to informacje, które zwykle pomagają załatwić sprawę.
Teraz powiedzmy, że bierzesz swoje 100 $ i kupujesz bilet lotniczy, aby polecieć w ciepłe miejsce, podczas gdy twoje usta goją się.
Docierasz do ładnego słonecznego miejsca, ale Twoja torba nie dotrze. Zgubił się gdzieś w systemie lotniskowym. Dlatego należy zabrać „bilet odbioru bagażu” (naklejkę z kodem kreskowym) do „biura zagubionego bagażu”. Pierwszą rzeczą, o którą poprosi osoba za biurkiem, jest bilet z numerem Twojego bagażu. To jest przykład wymaganego kontekstu .
Ale wtedy osoba zajmująca się bagażem prosi Cię o dodatkowe informacje na temat Twojego bagażu, np. W celu ułatwienia jej znalezienia. Pytają: „ Jaki to kolor? Jaki to rozmiar? Czy ma koła? Czy jest twardy czy miękki? Chociaż niekoniecznie potrzebują tych informacji, pomaga to zawęzić zakres, jeśli je podasz. Zmniejsza to problem. To znacznie przyspiesza wyszukiwanie. To opcjonalny kontekst .
Oto interesująca część: dla wielu programów i interfejsów API wymagany kontekst zwykle kończy się jako rzeczywiste parametry w sygnaturze metody, a kontekst opcjonalny idzie gdzie indziej, jak elastyczna mapa klucz-wartość, która może zawierać cokolwiek (i może być pusta ) lub do magazynu lokalnego wątku, gdzie można uzyskać do niego dostęp w razie potrzeby.
Powyższe przykłady pochodzą z prawdziwego życia, ale można je łatwo przypisać do obszarów informatyki. Na przykład nagłówki HTTP zawierają informacje kontekstowe. Każdy nagłówek dotyczy informacji o wysyłanym żądaniu. Lub gdy wysyłasz globalny identyfikator transakcji jako część procesu zatwierdzania dwufazowego , ten identyfikator transakcji jest kontekstem. Pomaga menedżerowi transakcji koordynować pracę, ponieważ zawiera informacje o ogólnym zadaniu.
Mam nadzieję, że to pomoże.
źródło
Kontekst można postrzegać jako wiadro do przekazywania informacji. Zwykle jest używany do przekazywania rzeczy niekoniecznie związanych bezpośrednio z wywołaniem metody, ale nadal może mieć znaczenie. Sposób opisania tego przez laika może oznaczać „rzeczy, które mogą Cię zainteresować”.
Na przykład, gdybyś pisał usługę aktualizującą wartość w bazie danych, prawdopodobnie przekazałbyś identyfikator rekordu i nową wartość.
Jeśli potrzebujesz ogólnych interfejsów, możesz również zdefiniować kontekst do przekazania, tak aby usługa mogła wykonywać dowolną logikę biznesową. Możesz więc uwzględnić uwierzytelnianie użytkownika, stan sesji użytkownika itp. W kontekście, ponieważ usługa może wykonywać dodatkową logikę zależną od tych wartości.
źródło
To jest rok 2015 - maj lata po rozpoczęciu tego wątku.
Niemniej jednak publikuję tę wiadomość, aby pomóc każdemu, kto ma trudności ze zrozumieniem „kontekstu”.
W żadnym wypadku nie twierdzę, że korzystałem z kontekstu w programach Java - więc to całkowicie zależy od ciebie, aby napisać kontekst w twardym kodowaniu.
Na przykład
Oto jak teraz wygląda żądanie:
Oto jak
filled_form_num_23321
wygląda:W tej transakcji
filled_form_num_23321
jest „kontekst”.Mam nadzieję, że pomoże to w wyjaśnieniu pojęcia „kontekstu”.
źródło
Zawsze myślę o kontekście jako o szczególnym stanie związanym z obiektem lub konstrukcją, z którą pracuję.
Na przykład, gdy używasz drawRect w widoku (gdzie cały rysunek musi być wykonany dla widoku), zawsze musisz pobrać currentGraphicsContext, w którym będziesz wystawiać podstawowe instrukcje graficzne. Ten kontekst zawiera takie rzeczy, jak granice widoku, kolor obrysu, grubość obrysu przy rysowaniu linii, kolor wypełnienia przy wypełnianiu zamkniętej ścieżki itp. Ten kontekst (jak większość innych) jest po prostu aktualnym stanem w tym momencie. więc pomyśl o kontekście graficznym w tym przypadku jako o zestawie stanów, takich jak
grubość obrysu wynosi 1,5 piksela, kolor wypełnienia to czarne granice widoku to (155, 200), kolor obrysu to czerwony
Zasadniczo jest to stan w obecnym momencie ...
źródło
Aby dać praktyczny przykład. Załóżmy, że masz określoną stronę internetową do pobrania / renderowania pewnych informacji w oparciu o użytkownika (zalogowanego) i język przeglądarki. Logika pobierania informacji jest niezależna od użytkownika i języka. Twoja strona otrzyma użytkownika i język ... ze względu na logikę nie ma znaczenia, czy to ja, czy ty, czy angielski czy hiszpański.
Jakiś pseudokod:
Nie jest to trudne, ale zrozumienie koncepcji zajmuje trochę czasu
źródło
Kontekst odnosi się do kontekstu wykonania , czyli symboli osiągalnych z danego punktu w kodzie oraz wartości tych symboli w tym konkretnym wykonaniu.
Kontekst jest ważną koncepcją, ponieważ:
Nie musisz pisać klas kontekstu ani przekazywać parametrów kontekstu . Każdy parametr przekazany do funkcji / metody staje się częścią kontekstu wykonania, gdy jest wywoływany.
Nawet jeśli nie mówisz po angielsku, radzę zapoznać się z egzemplarzem Code Complete w celu delikatnego, ale dokładnego wprowadzenia w pojęcia takie jak kontekst , modułowość , sprzężenie , spójność i tak dalej.
źródło
Kontekstem w Twoim przypadku jest środowisko, w którym działa aplikacja.
Dostarcza informacji / usług / możliwości, których Twoja aplikacja będzie potrzebować do prawidłowego działania.
HTH
źródło
Zbyt często autor zakłada, że czytelnik ma dokładne zrozumienie kontekstu, w jakim używane jest słowo „kontekst”.
Jak zdefiniować kontekst w następnym zdaniu „Środowisko uruchomieniowe tworzy kontekst, w którym mogą być przechowywane możliwe wartości do wstrzyknięcia. Kontekst ten można modyfikować, np. Aplikacja i framework mogą dodawać elementy do kontekstu.
Wydawać by się mogło, że autor używa kontekstu do oznaczenia pewnego rodzaju pojemnika, być może stosu, który zawiera kontekst czegoś. Stało się modnym słowem, które nabiera wielu znaczeń i wprowadza w błąd. Czy to elementy są kontekstem i są przechowywane w kontekście. Aby zmniejszyć zamieszanie związane z kontekstem, w którym używane jest słowo context, można powiedzieć, że „środowisko wykonawcze tworzy kontener do przechowywania kontekstu w postaci elementów”. Jeszcze lepiej, że „środowisko wykonawcze tworzy kontener do przechowywania stanu w postaci elementów, a ten kontener ze swoim stanem nazywa się KONTEKST”.
źródło
3 lata później, więc może trochę późno, ale może ten wątek ci pomoże. Pokazuje, że słowo „kontekst” ma znaczenie techniczne w programowaniu (nie jest to zwykłe angielskie znaczenie).
Jakie języki programowania są bezkontekstowe?
Nie jestem pewien, czy możesz użyć tego jako przykładu i wyciągnąć z niego jakieś informacje, czy nie. Ja również chciałbym usłyszeć niezależne od języka wyjaśnienie technicznego terminu „kontekst” programowania
Edycja: Albo przynajmniej pokazuje, że termin „kontekst” może być stosowany w technicznym kontekście programistycznym (bez zamiaru). Prawdopodobnie w więcej niż jednym konkretnym zastosowaniu tego terminu.
źródło