Context - o co z nim chodzi ?

0

Cześć, jestem całkiem początkującą osobą jeśli chodzi o programowanie.
Często przewija mi się słowo context. Co on oznacza, jak działa ?
Przykłady : Describe the difference between the user interface context requested by the user, and the user interface context the user is actually in.

Describe three different ways to test for and determine the current user’s user interface context.

Use the $User.UITheme and $User.UIThemeDisplayed global variables to determine the current user experience context. You can use these variables in Visualforce expressions to adapt your pages to Lightning Experience, Salesforce Classic, and the Salesforce app.
These global variables return a string that uniquely identifies the current user interface context. The possible values for $User.UITheme and $User.UIThemeDisplayedare the same:

3

Kontekst to po prostu kontekst, czyli jak masz jakąś abstrakcję to kontekstem są wszystkie zmienne czynniki, które są istotne. W programowaniu najczęściej to słowo pojawia się we wszelkiej maści funkcji akcji (callbacks). Idea tych funkcji jest taka, że podajesz funkcję, która przyjmuje strukturę zdarzenia. Czasem chcemy również podać jakieś czynniki w momencie ustawiania takiej funkcji i to właśnie jest kontekst. Dla przykładu masz zdarzenie na ruszenie myszką i chcesz logować przesunięcia myszką, ale tylko jeśli zostanie przemieszczona o określoną odległość, żeby nie logować szumów. Wówczas mógłbyś użyć ostatniej zalogowanej pozycji i wartości progowej jako kontekstu. Na przykład coś w stylu:

stuct MMCtx {
    MMCtx(MousePos initial, uint threshold) {
        this->last = initial;
        this->threshold = threshold;
    }

    MousePos *last;
    uint threshold;
};

void logMouseMove(MousePos *ev, void *context) {
    MMCtx *ctx = (MMCtx*)context;
    if(ctx->last->distance(ev) >= ctx->threshold) {
        log(ev);
        context->last = ev;
    }
}

// ...
control.registerMouseMove(&logMouseMove, new MMCtx(MousePos(0,0), 30)); 

Coś mniej więcej takiego mogłoby powstać w C++. Struktura kontekstu jest alokowana nazewnątrz i posiada stan i ustawienia dla funkcji. W bardziej nowoczesnych językach. wspierających funkcje anonimowe nie ma konieczności definiowania kontekstu explicite w parametrze, bo mozna odnieść się do zmiennej z bloku w którym funkcja jest definiowana. W starszych językach i API systemowych takie rzeczy są dość częste.

1 użytkowników online, w tym zalogowanych: 0, gości: 1