Author name: Damian

AngularJS Digest Cycle

Digest Cycle w dużym skrócie jest to sposób w jaki AngularJS automatycznie aktualizuje wartości. A trochę dokładniej to… Watch list Aby móc rozmawiać o Digest Cycle najpierw trzeba zrozumieć czym jest Watch list. A nie jest to niczym szczególnym – jest to zwyczajna lista zawierająca obserwowane zmienne/obiekty (tzw. „watchery”). Jak zmienne/obiekty trafiają do Watch list? …

AngularJS Digest Cycle Czytaj dalej »

Head First Wzorce Projektowe (wydanie II) – reguły zamieszczone w książce

Przedstawiam tutaj zbiór reguł umieszczonych w książce Head First Wzorce Projektowe. Nie zamierzam dodawać tutaj opisu kolejnych wzorców, ponieważ w Internecie jest już tego nadto. Kolejne reguły będą się pojawiały wraz z postępem w czytaniu książki. 1. Wprowadzenie do wzorców projektowych (wzorzec Strategia) Hermetyzuj co się zmienia Przedkładaj kompozycję nad dziedziczenie Koncentruj się na tworzeniu …

Head First Wzorce Projektowe (wydanie II) – reguły zamieszczone w książce Czytaj dalej »

HTML versus DOM

HTML To to wszystko co dostajemy bezpośrednio z serwera. Aby podejrzeć w przeglądarce Chrome tak zwane źródła, należy użyć skrótu Ctrl + U . Przykładowy rezultat (wycinek): DOM Jest to skrót od Document Object Model i jest to zbudowana przez przeglądarkę struktura strony na podstawie zawartości HTML. Aby w przeglądarce Chrome zobaczyć zbudowany DOM należy …

HTML versus DOM Czytaj dalej »

DRY, KISS, YAGNI

DRY – Don’t Reapeat Yourself Tłumacząc wprost – nie powtarzaj się. Chodzi tutaj o nie powtarzanie się, zarówno jeśli chodzi o kod, jak i o funkcjonalności (nie powinny istnieć dwie klasy robiące to samo, tylko w trochę inny sposób). KISS – Keep It Stupid Simple Tłumacząc wprost – niech to będzie głupio proste. No cóż, …

DRY, KISS, YAGNI Czytaj dalej »

Wstrzykiwanie zależności (dependency injection)

Jak to fajnie ujął James Shore – “Dependency Injection” is a 25-dollar term for a 5-cent concept„. Co w wolnym tłumaczeniu oznacza, że wstrzykiwanie zależności posiada bardzo skomplikowaną nazwą na coś co jest w gruncie rzeczy proste. Chodzi o to, żeby dostarczać obiektowi jego zmienne, zamiast tworzyć je wewnątrz obiektu: Przykład pierwszy Już na pierwszy …

Wstrzykiwanie zależności (dependency injection) Czytaj dalej »

Badanie pokrycia kodu (Code Coverage)

Pokrycie kodu jest najzwyklejszą miarą statystyczną – pokazuje ona jaka część kodu została wykonana podczas uruchomienia testów/aplikacji. Czyli uruchamiasz testy/aplikację a narzędzie do badania pokrycia kodu sprawdza, które linie kodu zostały wykonane, a które nie. Jest to przydatna miara, jeśli chcemy na przykład wiedzieć jaka część kodu została pokryta testami. Miary Zwykłe pokrycie kodu wydaje …

Badanie pokrycia kodu (Code Coverage) Czytaj dalej »

Transpilacja

Jest to rodzaj kompilacji polegający na przekształceniu kodu napisanego w języku A do kodu w języku B, przy czym oba rodzaje są zrozumiałe dla człowieka (są na zbliżonym poziomie abstrakcji). Przykładem transpilacji jest na przykład konwersja kodu napisanego z języku TypeScript, do języka JavaScript. Transpilacja może także dotyczyć przekształceń dotyczących wersji języka, jak na przykład …

Transpilacja Czytaj dalej »

Spinlock

Spinlock to rodzaj mechanizmu synchronizacji dostępu do zasobu w systemach wielowątkowych, który polega na wielokrotnym sprawdzaniu stanu zasobu (np. zmiennej) i blokowaniu dostępu do niego przez inne wątki, aż do momentu, gdy stan zasobu ulegnie zmianie. W przypadku spinlocku, wątek, który nie może uzyskać dostępu do zasobu, nie jest blokowany, lecz nadal wykonuje pętle sprawdzające …

Spinlock Czytaj dalej »

Function.prototype.bind()

Funkcja bind pozwala na przekazywanie powiązanie danej funkcji z kontekstem (opierając się przy tym o słowo kluczowe this). Czyli, jeśli chcemy przekazać gdziekolwiek naszą funkcję, żeby została wykonana (na przykład jako callback) i zależy nam na tym, żeby ta funkcja została wykonana w konkretnym kontekście należy użyć funkcji bind. W gruncie rzeczy funkcja bind nadpisuje …

Function.prototype.bind() Czytaj dalej »