Author name: Damian

TypeScript – moment i kolejność uruchamiania dekoratorów

Jeśli dekoratory to dla Ciebie obcy temat to zapraszam do wprowdzenia. Kiedy uruchamiane są dekoratory? Dekoratory (a w gruncie rzeczy to funkcje je obsługujące) są odpalane w tym samym momencie gdy ładowana jest przez interpreter definicja klasy. Stąd dekoratory są odpalane tylko raz dla każdego wystąpienia (jeśli dekorator jest użyty w wielu miejscach to zostanie …

TypeScript – moment i kolejność uruchamiania dekoratorów Czytaj dalej »

TypeScript – dekoratory [decorators]

TypeScript wspiera mechanizm zbliżony do adnotacji w języku Java, który nazywa się dekoratorami (ang. decorators). Pozwala on na dodawanie adnotacji oraz meta-programowanie. Poprzez adnotowanie rozumie się oznaczanie pól/metod/klas tak aby później jakiś framework lub inne narzędzie mogło na podstawie tych oznaczeń coś zrobić. Dobrym przykładem jest tutaj oznaczanie pól do walidacji jak to wygląda przykładowo …

TypeScript – dekoratory [decorators] Czytaj dalej »

BOM – czyli jak odczytywać dokument tekstowy

BOM (Byte Order Mark) są to znaki poprzedzające dokument, dzięki którym programy go odczytujące mogą odczytać różne informacje. Po co to komu? Przykładowo wysyłając pliki za pomocą protokołu HTTP mamy możliwość określenia typu za pomocą nagłówka Content-Type. Innym razem możemy uzgodnić z adresatem w jaki sposób powinien odczytywać dokument. Aczkolwiek czasami pojawiają się sytuacje, gdy …

BOM – czyli jak odczytywać dokument tekstowy Czytaj dalej »

Kolejność bajtów – endianness

Endianness można rozumieć jako kolejność zapisu/odczytu bajtów w pamięci. W dużym uproszczeniu – czy zaczynamy od najbardziej znaczących bitów (big endian) czy może od najmniej znaczących bitów (little endian) słowa. Big endian Zapisuje/odczytuje słowo w pamięci zaczynając od najbardziej znaczącego bitu (patrz literka A po lewej stronie) i wpisuje go pod najmniejszym adresem w pamięci …

Kolejność bajtów – endianness Czytaj dalej »

a.b.c.d – jak JavaScript rozwiązuje problem korzystania z zagnieżdżonych obiektów [Optional Chaining]

Czasami zdarza się, że musimy skorzystać z kilku zagnieżdżeń obiektów. Aby ustrzec się błędów wykonania, należy sprawdzić czy każdy zagnieżdżony obiekt istnieje: Bardziej zwięzłe rozwiązanie – Optional Chaining Dzięki rozwiązniu Optional Chaining, możliwe jest korzystanie z zagnieżdżonych obiektów w łatwy sposób – nie ma potrzeby sprawdzania czy kolejne zagnieżdżenia istnieją. Jeśli któreś z zagnieżdżeń nie …

a.b.c.d – jak JavaScript rozwiązuje problem korzystania z zagnieżdżonych obiektów [Optional Chaining] Czytaj dalej »

Strażnicy typów [Type Guards]

Idea strażników typu jest prosta – przed użyciem argumentu chcemy sprawdzić czy jego typ jest poprawny: Wsparcie w różnych językach Wsparcie dla tego typu sprawdzeń jest dostępne w wielu języka, lecz wydaje się, że jest najszerzej wspierane w JavaScript z racji tego, że w JavaScript nie ma natywnego wsparcia dla typów. JavaScript Sprawdzanie typów prostych …

Strażnicy typów [Type Guards] Czytaj dalej »

Destrukturyzacja tablic i obiektów

JavaScript pozawala na zwięzłe przypisanie elementów tablicy, lub pól obiektu, do zmiennych. Przypisanie elementów tablicy do zmiennych (destruktyryzacja tablicy) W podstawowej wersji nazwy zmiennych muszą się pokrywać z nazwą pól w obiekcie, możliwe jest także przypisanie pól obiektu do zmiennych o innych nazwach: Przypisanie pól obiektu do zmiennych (destruktyryzacja obiektu) Do zmiennej a zostanie przypisana …

Destrukturyzacja tablic i obiektów Czytaj dalej »

Określanie ilości wystąpień klasy w wyrażeniach regularnych

Wyrażenia regularne pozwalają na określenie ilości wystąpień danej klasy (przykład takiej klasy to [A-Za-z] czy też .). Ograniczanie odbywa się przy użyciu nawiasów klamrowych – {min,max} Ograniczanie do konkretnej ilości Możliwe jest ograniczenie ilości wystąpień klasy do konkretnej ilości. Dzięki czemu możemy na przykład stworzyć wyrażenie regularne sprawdzające czy liczba jest z zakresu od 1000 …

Określanie ilości wystąpień klasy w wyrażeniach regularnych Czytaj dalej »

Pesymistyczne/Optymistyczne blokowanie [Optimistic/Pesimistic locking]

Warto na wstępie wspomnieć, iż terminy pesymistyczne i optymistyczne blokowanie dotyczą obsługi transakcji na poziomie aplikacji (to że wykorzystują do tego także bazy danych to jest już inna para kaloszy). W dużym skrócie – pesymistyczne blokowanie wykorzystuje bazuje na jawnych blokadach w bazach danych (SELECT … FOR UPDATE), podczas gdy optymistyczne blokowanie opiera się na …

Pesymistyczne/Optymistyczne blokowanie [Optimistic/Pesimistic locking] Czytaj dalej »