poniedzia艂ek, 13 stycznia 2025

Proces Markowa (艂a艅cuch Markowa)

Proces Markowa jest szczeg贸lnym przypadkiem procesu stochastycznego. Jego cech膮 charakterystyczn膮 jest to, 偶e prawdopodobie艅stwo kolejnego zdarzenia zale偶y jedynie od wyniku poprzedniego zdarzenia, a nie od ca艂ej historii procesu. Przesz艂e stany nie maj膮 wp艂ywu na kolejne wyniki procesu. 

艁a艅cuchy Markowa wykorzystuje si臋 w:

  • Modelowaniu r贸偶norakich system贸w, zmieniaj膮cych stan w spos贸b losowy
  • Prognozowaniu
  • Niekt贸rych algorytmach  

Przyk艂adem procesu Markowa mo偶e by膰 random walker. W tym algorytmie po ka偶dym kroku losujemy kierunek przemieszczania si臋 naszej krzywej, bior膮c pod uwag臋 jedynie punkt, w kt贸rym obecnie si臋 znajduje jej koniec.

Andriej Markow by艂 rosyjskim matematykiem 偶yj膮cym w latach 1856 - 1922, badaj膮cym teori臋 prawdopodobie艅stwa.

Proces stochastyczny

Proces stochastyczny to taki proces, w kt贸rym opisujemy zbi贸r zmiennych losowych na bazie jakiego艣 wymiaru (zbioru indeks贸w), jakim zwykle jest czas. Przyk艂adem procesu stochastycznego mo偶e by膰 na przyk艂ad zbi贸r wypisanych kolejnych wynik贸w rzutu kostk膮 czy kart wyci膮gni臋tych z talii. Obydwa te zdarzenia s膮 losowe.

Rozk艂ad jednostajny ci膮g艂y (Uniform Distribution)

Jest u偶ywany do generowania randomowych liczb, z kt贸rych ka偶da powinna mie膰 takie same prawdopodobie艅stwo wyst膮pienia. Standardowym przyk艂adem jest rzut kostk膮 przyjmuj膮cy warto艣ci od 1 do 6, czy rzut monet膮 daj膮cy wynik orze艂 albo reszka. 

W tym rozk艂adzie, nie mo偶na mie膰 warto艣ci po艣rednich. Rzut ko艣ci膮 nie da nam wyniku 2.5.

sobota, 11 stycznia 2025

Process Poissona

 Process Poissona jest powi膮zany z rozk艂adem Poissona. Badaj膮c go zak艂adamy, 偶e 艣redni czas pomi臋dzy zdarzeniami jest znany, ale dok艂adny czas pomi臋dzy nimi r贸偶ni si臋, nie jest taki sam. Zdarzenia nie zachodz膮 na raz, ale s膮 od siebie niezale偶ne. Sam proces przedstawia seri臋 takich zdarze艅, a dok艂adniej, model wyst臋powania tych zdarze艅 w czasie.

Wykorzystywany jest w wielu dziedzinach nauki i biznesu, w kt贸rych bada si臋 zdarzenia niezale偶ne, wyst臋puj膮ce z podobn膮 cz臋stotliwo艣ci膮:

  • Przewidywanie liczby u偶ytkownik贸w na stronie WWW
  • Przewidywanie ilo艣ci zabookowanych pokoj贸w w hotelu
  • Modelowanie sprzeda偶y produktu
     

Nie b臋dzie pasowa艂 natomiast do zdarze艅 zale偶nych, jak na przyk艂ad op贸藕nienia poci膮g贸w.

Rozk艂ad wyk艂adniczy (exponential distribution)

Ostatnio pisa艂em o Rozk艂adzie Poissona, czyli takim rozk艂adzie, w kt贸rym zdarzenia zachodz膮 ze sta艂膮 cz臋stotliwo艣ci膮 i s膮 niezale偶ne od siebie.

W rozk艂adzie wyk艂adniczym modelujemy czas oczekiwania na kolejne zdarzenie, przyk艂adowo, ile minut minie, mi臋dzy kolejnymi wizytami ptaka w naszym ogrodzie. 

Na podstawie ksi膮zki J. Starmera, na osi x - czas
Na ch艂opski rozum - je艣li jakie艣 zjawisko wyst臋puje co jaki艣 czas regularnie, to im kr贸tszy czas oczekiwania, tym wi臋ksze prawdopodobie艅stwo, 偶e dane zdarzenie wyst膮pi. Przyk艂adowo, je艣li zbadamy awarie oprogramowania, to najcz臋艣ciej dziej膮 si臋 one zaraz po wgraniu zmian, a nast臋pnie jest ich coraz mniej.


czwartek, 9 stycznia 2025

Rozk艂ad Poissona, prawo ma艂ych liczb

Rozk艂ad Poissona nie ma nic wsp贸lnego z trucizn膮, zosta艂 opracowany przez Simeona Denisa Poissona, francuskiego matematyka 偶yj膮cego od 1781 do 1840 roku we Francji.

Opisuje on (rozk艂ad), 偶e dane zdarzenie wyst膮pi okre艣lon膮 ilo艣膰 razy, bior膮c pod uwag臋 艣redni膮 ilo艣膰 danych zdarze艅 w czasie lub przestrzeni. Przyk艂adowo - mo偶emy obliczy膰, ile razy ptaki usi膮d膮 na naszym p艂ocie w ci膮gu godziny, ilu klient贸w odwiedzi sklep od 12 do 15 czy ile request贸w obs艂u偶y backend naszej strony.

Zdarzenia brane pod uwag臋 w rozk艂adzie Poissona powinny by膰 niezale偶ne od siebie, czyli nie ma znaczenia, jaki czas up艂yn膮 od ostatniego zdarzenia. To nie 艂apanie ryb, gdzie pluskanie po wyci膮gni臋ciu du偶ej sztuki, odstraszy pozosta艂e ryby 饟啙 饟啛 饟啚 na kilka minut.

Rozk艂ad dwumianowy, binomial distribution (Rozk艂ad Bernouliego)

Rozk艂ad dwumianowy dotyczy prawdopodobie艅stwa dyskretnego, czyli takiego, w kt贸rym zmienna przyjmuje sko艅czone lub okre艣lone warto艣ci. Przyk艂adem mo偶e by膰 rzut monet膮 lub kostk膮 do gry. W rozk艂adzie dwumianowym mamy takie parametry, jak:

  • Liczba pr贸b n
  • Prawdopodobie艅stwo sukcesu w ka偶dej z pr贸b p
  • Liczba sukces贸w - k

wtorek, 7 stycznia 2025

Ksi膮偶ki na temat ML kt贸re polecam

The StatQuest Illustrated Guide to ML - Josh Starmer

Ksi膮偶ka Josha Starmera ze 艣wietnego kana艂u StatQuest. Mocno w stylu ksi膮偶ek HeadFirst. Dobrze t艂umaczy podstawowe zagadnienia, tak偶e te zwi膮zane ze statystyk膮. 0 kodu.


Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow - Aurelien Geron

Nieco bardziej powa偶na ksi膮偶ka na temat ML

Deep Learning with Python - Francois Chollet

Ksi膮偶ka autora biblioteki Keras

The Elements of Statistical Learning
Data Mining, Inference, and Prediction

Ksi膮偶ka omawiaj膮ca temat od podstaw, dost臋pna za darmo - https://hastie.su.domains/ElemStatLearn/

艣roda, 1 stycznia 2025

W jaki spos贸b filmy z YT mieszaj膮 Ci w g艂owie

Jaki艣 czas temu zauwa偶y艂em powa偶ny problem, zwi膮zany z ogl膮daniem film贸w na YT. Ot贸偶 odnosz臋 wra偶enie, 偶e wi臋kszo艣膰 tw贸rc贸w tworzy filmy nie z w艂asnego przekonania, ale po to, by nabija膰 sobie wej艣cia (0 zaskoczenia). Wprowadza to dezinformacj臋 i prowadzi w艣r贸d widz贸w do niew艂a艣ciwych wniosk贸w i szkodliwych zachowa艅.

Przyk艂adowe tematy

  • Odstawianie kawy
  • Minimalizm
  • Ci膮g艂a migracja z ekosystemu Apple na inne i w drug膮 stron臋
  • Mindfulness
  • Wstawanie o 5 rano 
  • Deep work / Eat that Frog / GTD
  • Kolejny m膮dry trend z USA

Cykl 偶ycia takich temat贸w wygl膮da nast臋puj膮co:

  • Kto艣 nieironicznie m膮dry, zauwa偶a taki trend i pisze o nim ksi膮偶k臋
  • Autor idzie do jakiego艣 popularnego podcastu typu Joe Rogan
  • Pojawiaj膮 si臋 streszczenia ksi膮偶ki, napisane przez osoby, kt贸re by膰 mo偶e przeczyta艂y ksi膮偶k臋
  • Pojawia si臋 tysi膮c angloj臋zycznych nagra艅 na temat opisany w ksi膮偶ce, oczywi艣cie sp艂yconych
  • Pojawia si臋 kilka nagra艅 po polsku, znacznie sp艂acaj膮cych temat
  • Pojawiaj膮 si臋 podcasty po polsku, kt贸re w temat wg艂臋bi膮 si臋 nieco bardziej
  • Temat zaczyna funkcjonowa膰 w 艣wiecie w uproszczonej formie. Przyk艂adowo - m贸wi si臋 o osobach, kt贸re naczyta艂y si臋 o 偶abach (chodzi o ksi膮偶k臋 Eat that frog Briana Tracy), albo o niejedzeniu cukru, dla diety Keto.

Osoby nagrywaj膮ce filmy na YT kieruj膮 si臋 zyskiem oraz trendami. Tworz膮 materia艂y, kt贸re ch臋tnie obejrzysz, bez wg艂臋biania si臋 w temat. Te, kt贸re s膮 bardziej otwarte, czasem same wypr贸buj膮 dan膮 metod臋, a nast臋pnie nagraj膮 o niej film. Przypomnia艂 mi si臋 filmik Nicole W臋c艂awiak:

- Jakby艣 mia艂a dziecko, to by艣 da艂a mu na imi臋 Kontent, bo u Ciebie wszystko to content. :)

Wnioski, do kt贸rych dochodz膮 autorzy, s膮 bardzo cz臋sto powieleniem informacji z internetu, bez wg艂臋bienia si臋 w szczeg贸艂y. 

Szczeg贸lnie denerwuje mnie zalew film贸w typu:

  • Nie u偶ywaj technologii X
  • Nie kupuj Y dop贸ki nie obejrzysz tego filmu
  • X najbardziej szkodliwych 膰wicze艅 / czynno艣ci
  • Jedyny tutorial na temat Z jakiego potrzebujesz

W ka偶dym z tych przypadk贸w jaskrawo wida膰, 偶e autor nie ma celu doedukowa膰 Ci臋 w jakim艣 temacie, tylko namiesza膰 Ci w g艂owie. 

Najwi臋ksz膮 plag膮 moim zdaniem s膮 filmy, pokazuj膮ce rzeczywisto艣膰 w uproszczonej formie. Mo偶na nazwa膰 je hmm, tutorialami z tik-toka (celowo ma艂膮 liter膮). Wed艂ug nich, aby zagra膰 na pianinie, musisz nauczy膰 si臋 kilku cyferek (wtf), sol贸wk臋 na gitarze zagrasz na pustych strunach, a do milion贸w dojdziesz, znaj膮c jaki艣 inny, prosty trick. Gdzie s膮 podstawy - pytam.

Jak m贸wi艂 Alex Hormozi, d艂uga droga jest jedynym skr贸tem.

 

wtorek, 31 grudnia 2024

Programistyczne podsumowanie roku 2024

Podsumowanie roku 2024

Nauka j臋zyk贸w obcych

W 2024 kontynuowa艂em nauk臋 na Duolingo, wbijaj膮c kolejny rok bez przerw w j臋zyku niemieckim po angielsku. Przerobi艂em ca艂y angielski zaawansowany w BeeSpeaker i aktualne szukam aplikacji do nauki m贸wienia po angielsku.

Programowanie

W marcu otrzyma艂em do艣膰 nieprzyjemn膮 informacj臋 o tym, 偶e projekt w kt贸rym uczestnicz臋, rezygnuje ze wszystkich os贸b z mojej aktualnej kontraktorni. Poskutkowa艂o to konieczno艣ci膮 szukania pracy, co zaj臋艂o mi oko艂o 2 miesi膮ce. Po raz pierwszy zauwa偶y艂em wtedy, 偶e znalezienie pracy staje si臋 do艣膰 trudne - rekrutacje sta艂y si臋 wymagaj膮ce. Powt贸rzy艂em wtedy Jav臋, Angulara, JS i TS. Na szcz臋艣cie uda艂o si臋 znale藕膰 mi do艣膰 interesuj膮cy projekt, w kt贸rym jestem do tej pory.

艣roda, 18 grudnia 2024

About pressure

Presja tworzy diamenty i rozsadza rury

Za du偶o presji zmienia diamenty w py艂 馃拵


Pressure creates diamonds and bursts pipes 

Too much pressure turns diamonds into dust 馃拵

艣roda, 11 grudnia 2024

Thoughts December

Programming with LLM without knowing what your code is doing, is like playing piano with illuminated keys. You will achieve desired result, but don't gain knowledge, and your path will be longer.

Programowanie z u偶yciem LLM bez wiedzy co tw贸j kod robi, jest jak granie na pianinie z pod艣wietlanymi klawiszami. Osi膮gniesz sw贸j rezultat, ale nic si臋 nie nauczysz i wyd艂u偶ysz tylko drogi.

pi膮tek, 6 grudnia 2024

Thoughts October

Learning is about moving from I have no idea what x is, to saying that through experience with X, I can solve any problem in it/using it

Nauka polega na przej艣ciu od Nie mam poj臋cia czym jest x, do stwierdzenia 偶e dzi臋ki do艣wiadczeniu z X, potrafi臋 rozwi膮za膰 w nim / u偶ywaj膮c jego ka偶dy problem


wtorek, 19 listopada 2024

Thoughts November

Writing every day one letter of book, doesn't give you whole book after a year. Complexity grows with the scale, without training you might not be able to handle.

Pisz膮c codziennie jedn膮 stron臋 ksi膮偶ki, nie b臋dziesz mia艂 ca艂ej ksi膮偶ki po roku. Z艂o偶ono艣膰 ro艣nie wraz ze skal膮, a bez odpowiedniego treningu mo偶esz nie mie膰 mo偶liwo艣ci ogarni臋cia ca艂o艣ci.

wtorek, 24 wrze艣nia 2024

Turborepo - zarz膮dzanie monorepo

Ostatnio w jednym z projekt贸w u偶ywam https://turbo.build/. Turbo to narz臋dzie, kt贸re pozwala na 艂atwe zarz膮dzanie projektem typu monorepo w JS i TS. 

Cz臋stym problemem jest trudno艣膰 w odpalaniu kilku projektu na raz. Dzi臋ki Turbo, mo偶na zdefiniowa膰 projekty i odpala膰 je z jednego miejsca, za pomoc膮 wsp贸lnego polecenia Turbo run. Wykona ono na przyk艂ad wszystkie zadania build lub dev z package json. Dodatkowo, je艣li baza kodu si臋 nie zmieni艂a, wynik zostanie zwr贸cony z cache. Mo偶na to skonfigurowa膰 tak偶e po stronie serwera.

Turbo pozwala na 艂atwe wyodr臋bnianie sp贸jnych aplikacji i bibliotek. Przyk艂adowo, mo偶esz wydzieli膰 sobie aplikacj臋 webow膮 oraz api i wrzuci膰 je do folderu apps. Nast臋pnie, mo偶esz utworzy膰 folder packages, w kt贸rym b臋dziesz w p艂askiej strukturze przechowywa艂:

  • modele (interfaces)
  • konfiguracje eslinta
  • serwisy HTTP dla Angulara (je艣li masz tak膮 fantazj臋)
  • reu偶ywalne komponenty

Dzi臋ki temu, mo偶na 艂atwo potem doda膰 jeszcze inny rodzaj aplikacji, kt贸ry skorzysta ze wsp贸艂dzielonej bazy kodu. Jest to 艣wietnie rozwi膮zanie w pracy, gdy zwykle tworzymy wi臋cej ni偶 jedn膮 aplikacj臋. Spotka艂em si臋 z sytuacjami, kiedy dla kilku takich samych aplikacji musimy osobno instalowa膰 eslint czy Jest i nast臋pnie wielokrotnie dodawa膰 te same konfiguracje. Turbo znacznie upraszcza ten proces.

Ka偶da aplikacja jest osobn膮 paczk膮 z plikiem package.json, kt贸r膮 mo偶na zainstalowa膰 jak standardow膮, wersjonowan膮 paczk臋 npm w obr臋bie repozytorium.

Minusem Turbo jest do艣膰 trudna konfiguracja udost臋pniania plik贸w z jednej paczki do drugiej. W teorii jest to proste, w praktyce napotka艂em na wiele mo偶liwych ustawie艅 (z pliku TS, z package jsona albo ze skompilowanych plik贸w TS). 

Podsumowuj膮c, Turbo zapewnia sp贸jn膮 obs艂ug臋 monorepo i zach臋ca nas do dzielenia kodu na reu偶ywalne paczki.  Z mojej perspektywy jest prostsze ni偶 Nx, jednocze艣nie oferuj膮c nieco mniej mo偶liwo艣ci.


poniedzia艂ek, 16 wrze艣nia 2024

Visual Timer - Yunbaoit

 Pomodoro to najgorszy spos贸b na zarz膮dzanie czasem, ale do tej pory nie wynaleziono nic lepszego. Odk膮d pracuj臋 na swoim, przetestowa艂em mn贸stwo aplikacji tego typu. Ka偶da mia艂a jakie艣 wady. Sprawdza艂em te偶 fizyczne urz膮dzenia. Nakr臋cany pomidor kuchenny jest ma艂o dok艂adny i bardzo g艂o艣ny, nie ma opcji konfiguracji. Zegarki z odliczaniem stworzone s膮 raczej do innych cel贸w ni偶 odliczanie pomodoro, brakuje im mi臋dzy innymi czytelno艣ci w gorszym 艣wietle.

Ostatnio testowa艂em aplikacj臋 od Time Timer

https://www.timetimer.com/collections/applications/products/time-timer-ios-app

kt贸ra sprawdza si臋 bardzo fajnie. Podoba mi si臋 idea wizualnego przedstawienia up艂ywu czasu. Aplikacja nie 偶adnych bajer贸w, typu 艣ledzenie zrobionych pomidor贸w, co w zasadzie jest na plus. Dzia艂a te偶 w trybie pe艂noekranowym. 

Nie jestem jednak fanem ci膮g艂ego u偶ywania telefonu przy pracy, a jeszcze bardziej, wydawania 35 funt贸w na budzik z czerwonym ringiem ze strony 

https://www.timetimer.com/products/time-timer-mod-30-minute aby mie膰 to samo w formie fizycznej.

Zerkn膮艂em na alliexpress gdzie znalaz艂em podobny timer marki Yunbaoit w wielokrotnie ni偶szej cenie, tzn oko艂o 25 pln. Obecnie troch臋 podro偶a艂. Nie brakuje mu opcji. 

  • Mo偶na nim odlicza膰 czas do godziny
  • Posiada czas pikania 3 i 30 sekund
  • Ma 3 ustawienia g艂o艣no艣ci, mute, ciszej i g艂o艣niej
  • Czujnik baterii 
  • Pod艣wietlenie do pracy w nocy
Gdy zegarek jest wyciszony, na koniec czasu mruga pod艣wietleniem. Ca艂o艣膰 przypomina troch臋 solidniejszy budzik z kiosku, opakowany dodatkowo w gumow膮 obudow臋. Testy trwaj膮, pierwsze wra偶enie - jak za tak nisk膮 cen臋, bardzo pozytywne.

sobota, 7 wrze艣nia 2024

Time Timer

 I'm testing Time Timer https://www.timetimer.com/ app for Android, looks very promising. Simple way of visually tracking time.

czwartek, 15 sierpnia 2024

VSCode - podejrzyj wszystkie zmiany

Source control w VSCode dzia艂a艂o dla mnie "wystarczaj膮co dobrze", by m贸c pracowa膰 na nim przez ca艂y czas. Brakowa艂o mi jednak jednej opcji - przegl膮dania wszystkich commit贸w w jednym widoku. Je艣li chcieli艣my podejrze膰 nasze zmiany, musieli艣my przeklika膰 si臋 przez wszystkie pliki.

Ostatnio zauwa偶y艂em jednak 艣wietn膮 opcj臋 "View Changes"


Po jej wybraniu widzimy wszystkie zmiany w formie przewijanej, co przy艣piesza prac臋. 

niedziela, 30 czerwca 2024

Praca w ciszy

 Standardowy stan w pracy to:

  • W艂膮czony Spotify
  • Przegl膮danie Facebooka
  • Zerkanie na nowo艣ci na yt
  • Oczywi艣cie w mi臋dzyczasie dzwoni kurier / mama / dodaj dowolne
Czasem wydaje mi si臋, 偶e wi臋cej czasu sp臋dzamy mi臋dzy prze艂膮czaniem si臋 mi臋dzy tymi wszystkimi ciekawostkami, ni偶 na pracy. Metoda pomodoro ma nam pom贸c skupi膰 si臋 przynajmniej na te 25 minut, ale w rzeczywisto艣ci staje si臋 dodatkowym 藕r贸d艂em rozprosze艅. Pono膰 aby wr贸ci膰 do pe艂nego skupienia po przerwanej pracy, potrzeba a偶 20 minut.

wtorek, 4 czerwca 2024

Rekrutacja 2024, czyli jak szuka艂em pracy

Na koniec marca 2024 m贸j team dosta艂 informacj臋, 偶e rezygnuj膮 z kontraktor贸w z Polski. Pierwsza reakcja to oczywi艣cie ... l臋k o los projektu, poniewa偶 zosta艂 on powierzony w r臋ce nieznanych os贸b.  Druga - ustawiam na Linkedinie status Ready to work i szukam nowej pracy. Okaza艂o si臋 to trudniejsze ni偶 my艣la艂em, ale wykonalne.

Wys艂a艂em oko艂o 200 cv, przeprowadzi艂em mn贸stwo rozm贸w HR i kilka rozm贸w rekrutacyjnych. Poszukiwania trwa艂y do czerwca, kiedy to uda艂o mi si臋 znale藕膰 ofert臋 prawie tak samo dobr膮, jak poprzednie stanowisko.

Moje spostrze偶enia

  1. Bez kilku lat do艣wiadczenia w konkretnych technologiach trudno jest przej艣膰 nawet pierwszy etap rekrutacji. Na starcie odpadniemy przegrywaj膮c z bardziej dopasowanymi osobami.
  2. Topowe stanowiska wymagaj膮 od kandydata znacznie wi臋cej, ni偶 tylko kodowanie w jednym frameworku. Warto na przyk艂ad mie膰 do艣wiadczenie trenerskie lub leaderskie, albo pracowa膰 jako full-stack.
  3. Firmy coraz cz臋艣ciej zwracaj膮 uwag臋 na wykszta艂cenie
  4. Bez dobrej znajomo艣ci angielskiego bardzo szybko uderzymy w sufit zarobk贸w i to jest czynnik, kt贸ry ogranicza nas najbardziej.
  5. Konieczne jest zbieranie wszystkich pyta艅 rekrutacyjnych i wykuwanie ich na blach臋. Najlepiej jest uczy膰 si臋 z b艂臋d贸w pope艂nianych przez inne osoby i aktywnie szuka膰 pyta艅 rekrutacyjnych w sieci. B臋dzie to okazja do poznania tych temat贸w, na kt贸re nigdy nie mieli艣my czasu. Praca programisty w du偶ej mierze przypomina prac臋 naukowca, polega na wertowaniu materia艂贸w i szukaniu czego艣, co by膰 mo偶e kiedy艣 si臋 nam przyda.
  6. Cz臋stym wymaganiem jest praca przynajmniej jeden raz w tygodniu z biura. Moim zdaniem, jest to bardzo na minus.


wtorek, 28 maja 2024

101 pyta艅 rekrutacyjnych na frontend

Podrzucam list臋 realnych pyta艅 z rekrutacji frontendowych 2024. Je艣li chcesz 偶ebym Ci臋 z tego przepyta艂, odezwij si臋 na kamilnaja馃檲gmail.com

Pytania JS

  1. Czym r贸偶ni si臋 var, let i const
  2. Czym jest proxy api (nikt o to nigdy nie pyta艂, ale ja bym zapyta艂 :) https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy JS
  3. Jak zrobi膰 list臋 unikalnych warto艣ci (u偶yj set)
  4. Opisz asynchroniczno艣膰
  5. Jak dzia艂a Event Loop?

niedziela, 12 maja 2024

Angular - jak dzia艂a change detection?

G艂贸wnym elementem change detection strategy w Angularze jest Zone.js. Jest to biblioteka, kt贸ra patchuje metody asynchroniczne (requesty HTTP, timery) i zdarzenia, kt贸re s膮 wywo艂ywane przez u偶ytkownika. Tworzy przez to kontekst wykonania. 

NgZone to serwis, kt贸ry pozwala na optymalizacj臋 obs艂ugi Zone. Stanowi on abstrakcj臋 nad Zone.js Dzi臋ki niemu, mo偶na na przyk艂ad wykluczy膰 fragment kodu, kt贸ry wykonuje asynchroniczne zdarzenia, z change detection. S艂u偶y temu metoda runOutsideAngular().

Angular - Dependency Injection

DI (dependency injection) w Angularze pozwala na dostarczanie zale偶no艣ci. Po艣rednikiem mi臋dzy elementami i zale偶no艣ciami, kt贸re mo偶na wstrzykiwa膰, jest Injector. Gdy zale偶no艣膰 jest potrzebna, Injector sprawdza, czy istnieje jej instancja i je艣li nie, tworzy j膮 i dodaje do rejestru. W wi臋kszo艣ci przypadk贸w, mo偶esz u偶ywa膰 uproszczonego DI, jednak warto wiedzie膰, jak dzia艂a to pod spodem.

sobota, 11 maja 2024

Angular LifeCycle Hooks

ngOnChanges()

Wywo艂uje si臋 gdy Angular ustawia lub resetuje w艂a艣ciwo艣ci wej艣ciowe powi膮zane z danymi. Metoda otrzymuje obiekt SimpleChanges. 
Uwaga - odpala si臋 jako pierwszy, ale tylko gdy komponent posiada @Input().