Author name: Damian

Przegląd kodu – Code Review

Cel nadrzędny Nadrzędnym celem jest ta sama lub wyższa jakość kodu – nie chcemy na pewno aby kod stracił na jakości. Co sprawdzamy? 1. Czytelność kodu2. Względy bezpieczeństwa3. Pokrycie testami4. Czy kod jest zgodny z architekturą aplikacji5. Czy wykorzystywane są re-używalne komponenty Pytania które warto sobie zadać 1. Czy rozumiem co robi kod?2. Czy kod …

Przegląd kodu – Code Review Czytaj dalej »

AngularJS – izolowany scope i jak mu coś przekazać

Jak wyizolować scope? Wystarczy niejako nadpisać ten pochodzący od rodzica: Dzięki czemu nie dziedziczymy już ze scope rodzica. Wytrych – czyli jak izolowany scope może dostać coś od rodzica Aby móc dostać coś od rodzica musi się to zadziać poprzez przesłanie wartości przez atrybut: Jak dyrektywa może przyjmować wartość? @ one-way binding wartości, ale tylko …

AngularJS – izolowany scope i jak mu coś przekazać Czytaj dalej »

AngularJS two-way, one-way oraz one-time data binding

Mowa tutaj o wiązaniach pomiędzy widokiem a modelem – czyli jak zmiany w widoku wpływają na model i odwrotnie (jak zmiany w modelu wpływają na widok). I gdzie można dokonać optymalizacji. One-way data binding Jest to sytuacja, w której dane płyną z modelu do widoku – każda ich zmiana w modelu powoduje aktualizację widoku. Zmiany …

AngularJS two-way, one-way oraz one-time data binding Czytaj dalej »

Meta adnotacje w Javie

@Target Określa na jakich elementach można będzie używać adnotacji. Java definiuje ponad 10 opcji. Najczęściej spotykane to:-ElementType.TYPE – jeśli chcemy aby adnotacja mogła być używana na klasach, interfejsach, enumeracjach czy rekordach-ElementType.METHOD – jeśli chcemy aby adnotacja mogła być używana na metodach-ElementType.FIELD – jeśli chcemy aby adnotacja mogła być używana na polach klasy @Retention Określa w …

Meta adnotacje w Javie Czytaj dalej »

Collections.forEach vs Stream.forEach

Obydwie metody zrobią dla nas to samo. Z tym, że wersja Collections.forEach skorzysta z iteratora kolekcji (jeśli takowy jest) a wersja Stream.forEach już nie. Co to zmienia? To, że używając Collections.forEach załóżmy na liście będziemy mieli gwarancję kolejności wykonania, niestety używając Stream.forEach już takiej nie mamy. Warto zajrzeć

Lokalny i Sesyjny magazyn w przeglądarce (local & session storage)

Przeglądarki wspierają dwa rodzaje magazynów – lokalny i sesyjny, które pozwalając na wrzucanie tam dowolnych rzeczy wykorzystując pary klucz-wartość. Lokalny magazyn (local storage) Jest to magazyn, który jest czyszczony po zamknięciu wszystkich kart przeglądarki. I jest on tworzony dla każdej strony oddzielnie (dokładnie rzecz ujmując to dla konkretnego źródła – protokół + domena + port …

Lokalny i Sesyjny magazyn w przeglądarce (local & session storage) Czytaj dalej »

Kompilator, asembler i linker

Kompilator Kompilator – tłumaczy z języka wysokiego poziomu (takiego jak C++ czy Java) do języka niskiego poziomu (często do języka Asembler, czy w przypadku Javy do pośredniej formy – kodu bajtowego). Asembler Asembler – tłumaczy z języka niskiego poziomu do języka maszynowego (postaci binarnej). W tym momencie otrzymujemy binarną reprezentację naszego programu (nie jest to …

Kompilator, asembler i linker Czytaj dalej »

Web komponenty (web components)

Web komponenty pozwalają na tworzenie własnych tagów (lub innych elementów) HTML. Przykład Przykład przedstawia stworzenie prostego komponentu opisującego pogodę. 1. Rejestracja komponentu Aby zarejestrować komponent wystarczy następujący fragment kodu: Niestety nie robi on w tym momencie kompletnie nic. Mamy tutaj definicję klasy Wheater rozszerzającą klasę HTMLElement i wywołującą jej konstruktor. Po czym następuje rejestracja elementu …

Web komponenty (web components) Czytaj dalej »

AngularJS normalizacja

Problem Wyjdźmy od problemu – pewnego rodzaju standardem w HTML jest to, że tagi są zapisywane za pomocą kebab case, czyli na przykład <some-tag-name>. A JavaScript ma problem z obsługą zmiennych/pól o takich nazwach: Ponieważ JavaScript traktuje myślnik jako znak odejmowania, to nie jest w stanie poradzić sobie z powyższym zapisem. Rozwiązanie – normalizacja AngularJS …

AngularJS normalizacja Czytaj dalej »