Wprowadzenie
Asynchroniczność w JavaScript z jednej strony daje duże możliwości a z drugiej stawia przed nami wyzwania dotyczące zapanowania nad kodem aplikacji. W tym warsztacie poznasz najważniejsze zagadnienia i kontekst, które pozwolą Ci lepiej zrozumieć asynchroniczność oraz różne techniki przydatne w praktyce. Mowa m.in. o Higher-Order Functions, Currying oraz Promise i składni Async / Await.
- Czym jest asynchroniczność?
- Czym jest Event Loop?
- Higher-Order Functions
- Currying
- Pure Functions
- Callbacks
- Promise
- Async / Await
- Obsługa błędów metodą .catch
- Obsługa błędów z try ... catch ...
- Obsługa błędów z pomocą helpera
- Obsługa błędów w Node.js
Event Loop
Z jednej strony JavaScript jest językiem jednowątkowym (eng. single threaded). Oznacza to że w jednej chwili może być wykonywana wyłącznie jedna operacja. W sytuacji gdy wykonanie jakiejś funkcji zajmuje więcej czasu, pozostałe muszą oczekiwać na jej zakończenie. Pomimo tego możemy wykorzystywać asynchroniczność w JavaScript ponieważ silnik języka udostępnia nam tzw. Web API z pomocą którego część zadań może być wykonywana "w tle" dzięki mechanizmowi o nazwie Event Loop. Daje nam to większe możliwości ale jednocześnie stawia wyzwanie w postaci obsługi kodu asynchronicznego.
Od callbacków po async / await
Praca z kodem asynchronicznym z natury jest dość mało intuicyjna, w szczególności dla początkujących programistów. Obecnie mamy przynajmniej kilka mechanizmów z których możemy korzystać. Pierwszą z nich są callbacki, czyli funkcje które uruchamiane są w chwili, gdy zadanie asynchroniczne zostanie zakończone. To jednak rodzi problem dotyczący obsługi wielu zdarzeń asynchronicznych oraz może powodować tzw. Inversion of Control, co z kolei może być przyczyną wielu błędów. Poza callbackami do naszej dyspozycji są Promise (obietnice) oraz składnia Async / Await, będąca tzw "syntatic sugar" dla obietnic. Wszystkie z tych technik zostaną omówione podczas warsztatu.
Elementy programowania funkcyjnego
Programowanie funkcyjne jest paradygmatem, którego elementy spotykamy w JavaScript praktycznie na każdym kroku. Z tego powodu bardzo istotne jest to, aby rozumieć pojęcia takie jak funkcje wyższego rzędu (eng. Higher-Order Functions), Currying czy cechy funkcji czystych (eng. Pure Functions). Zrozumienie tych zagadnień oraz umiejętne wykorzystanie ich w praktyce bardzo pomaga w kontekście pracy z JavaScriptem oraz jego asynchroniczną naturą. Przykładowo zrozumienie funkcji wyższego rzędu daje nam większą swobodę w przypadku pracy z callbackami (ale i nie tylko).
Obsługa wyjątków i błędów
Asynchroniczność w JavaScripcie rodzi jeszcze jeden problem - obsługę błędów. W tym celu wykorzystujemy różnego rodzaju techniki, w zależności od sytuacji oraz obranej strategii. Możemy wykorzystywać specjalne callbacki bądź metody .catch do tego aby reagować na ewentualne błędy i wyjątki lub składnię try ... catch ... z której praca również wymaga pewnego doświadczenia. Podczas warsztatu omówimy sobie różne techniki obsługi błędów, oparte o dostępne metody oraz praktyki polecane przez ekspertów.
Asynchroniczność to "must-have"
Niemożliwe jest pisanie kodu JavaScript bez wykorzystania asynchroniczności. Zatem jeżeli sama asynchroniczność to temat z którym nie czujesz się komfortowo, zobacz ten warsztat. Dzięki niemu poznasz zestaw najważniejszych zagadnień i wskazówek, które pozwolą Ci tworzyć lepszy kod. Sama asynchroniczność często pojawia się na rozmowach rekrutacyjnych, zatem znajomość teorii i praktyki może sprawdzić się też w takiej sytuacji.
Dla kogo jest ten kurs?
Warsztat został przygotowany z myślą o osobach, które znają już język JavaScript na poziomie podstawowym lub wyższym i nadal asynchroniczność lub wymienione w podsumowaniu tematy stanowią dla nich wyzwanie. Jednocześnie sam warsztat daje szeroką perspektywę w kontekście rozumienia asynchronicznej natury JavaScriptu oraz zawiera pojęcia m.in. z zakresu programowania funkcyjnego, na których mogą skorzystać bardziej doświadczeni programiści. W warsztacie zostały omówione najważniejsze zagadnienia przydatne w praktyce z pominięciem szczególnie zaawansowanych tematów dotyczących asynchroniczności.
Dlaczego wybrać właśnie ten kurs?
- Kurs wideo to najbardziej efektywna a zarazem najprzyjemniejsza forma nauki. Jest on tak prowadzony, byś cały czas mógł go śledzić z zainteresowaniem i zaangażowaniem, a także czerpać satysfakcję ze zdobytej wiedzy!
- Wiedza, którą otrzymujesz w tym kursie, to nie tylko sucha teoria, ale również wskazówki od praktyka z wieloletnim doświadczeniem, dzięki którym dużo łatwiej będzie Ci opanować materiał i pracować efektywniej.
-
Uczysz się na praktycznych przykładach. Kurs, który masz przed sobą to esencja praktycznej wiedzy i doświadczenia a także wzorów, które oszczędzą Ci godziny pracy i poszukiwań.