Author name: Damian

Maven zakresy zależności (scope)

Dodając zależność (dependency) do projektu zarządzanego przez Mavena należy zdecydować pomiędzy jednym z zakresów (scope). Dostępne zakresy to: compile, provided, runtime, test, system, import. compile (domyślny) compile jest domyślnym zakresem – używanym gdy żaden nie jest zdefiniowany: Możliwe jest też jawne użycie: Zastosowanie tego zakresu zapewnia, że podczas budowania ta zależność pojawi się na classpath …

Maven zakresy zależności (scope) Czytaj dalej »

TypeScript – unia typów

W TypeScript możliwe jest podanie wielu możliwych typów zamiast jednego – służy do tego unia typów: W takim przypadku wszystkie typy współdzielą metodę toString(), stąd można bez uprzedniego sprawdzania typu wywołać tą metodą na argumencie metody. W inny wypadku konieczne jest sprawdzanie typu: * Oczywiście da się uprościć tą funkcję – zamiast odczytywać typ boolean, …

TypeScript – unia typów Czytaj dalej »

Spliterator

Jak sama nazwa wskazuje (spliterator) jest to swojego rodzaju iterator pozwalający na podział na mniejsze. Oprócz możliwości podziału posiada jeszcze kilka innych ciekawych funkcjonalności. Podział – trySplit() Wygląda to trochę jak podział komórkowy 🙂 Ponieważ każdy podział z reguły powinien dzielić aktualny Spliterator na dwa mniejsze o takim samym rozmiarze: Przechodzenie po elementach – tryAdvance() …

Spliterator Czytaj dalej »

Iterator wewnętrzny i zewnętrzny

Iterator może występować w dwóch formach – wewnętrznej lub zewnętrznej. Iterator wewnętrzny To taki, którego przebiegu nie kontrolujemy sami – dostarczamy tylko algorytm, który ma zostać wykonany dla każdego elementu. Przykładem takiego iteratora jest metoda forEach interfejsu Iterable. A z racji tego, że każda kolekcja implementuje ten interfejs, to na każdej kolekcji możemy skorzystać z …

Iterator wewnętrzny i zewnętrzny Czytaj dalej »

TypeScript – krotka [tuple]

TypeScript nie wspiera bezpośrednio krotek – robi to poprzez wykorzystanie wymuszenia typów na elementach tablicy. Wymuszanie typu elementów tablicy TypeScript pozwala na ustalenie typu dla każdego elementu tablicy z osobna: Co wymusza użycie dokładnie takich samych typów w odpowiednich miejscach tablicy: TypeScript będzie „bronił” zarówno odpowiedniego rozmiaru tablicy jak i typów: Problem Niestety ale TypeScript …

TypeScript – krotka [tuple] Czytaj dalej »

TypeScript – wnioskowanie typów [types inference]

TypeScript w wielu sytuacjach jest w stanie wywnioskować typ i na tej podstawie sprawdzać poprawność jego poprawność. Przypisanie wartości prostej Dla następującego przypisania, TypeScript sam jest w stanie wywnioskować typ: TypeScript wie, że zmienna name jest typu string. Co powoduje, że nie jest możliwe późniejsze przypisanie do tej zmiennej wartości innego typu: Niepoprawna praktyka Z …

TypeScript – wnioskowanie typów [types inference] Czytaj dalej »

AngularJS wykorzystanie fragment id

AngularJS aby osiągnąć cel bycia Single-page Application oraz w dalszym ciągu pozwalania na zmianę adresu URL wykorzystuje tak zwany fragment id (część URI wykorzystywana przy dostępie do określonych miejsc na stronach). Do czego normalnie służy fragment id? W klasycznym przykładzie użycia fragment id służy do wskazania zakotwiczonego fragmentu strony. Czyli najpierw należy stworzyć tak zwany …

AngularJS wykorzystanie fragment id Czytaj dalej »

Update vs Upgrade

W dużym skrócie – update to aktualizacja a upgrade to kolejna wersja systemu/biblioteki. Przykłady, przykłady, przykłady… Aplikacja Update Załóżmy, że firma wydaje pierwszą wersję aplikacji – wersja 1.0. Po jakimś czasie okazuje się, że w aplikacji są błędy a więc firma bierze się do roboty i zaczyna prace nad poprawkami i wydaje tą samą wersję …

Update vs Upgrade Czytaj dalej »

ACID – o transakcjach w relacyjnych bazach danych

ACID – jest to akronim od angielskich słów: Atomicity (atomowość), Consisteny (spójność), Isolation (izolacja) oraz Durability (trwałość). Cztery człony akronimu mówią o zasadach gwarantujących poprawne przetwarzanie transakcji. Hipotetyczna sytuacja w aplikacji (tabela oraz transakcja) Atomowość (Atomicy) Atomicity (atomowość) – mówi o tym, że albo wykona się każdy element transakcji, albo żaden. Przykładowo gdyby w powyższym …

ACID – o transakcjach w relacyjnych bazach danych Czytaj dalej »