Programowanie asynchroniczne (pełny kurs)

Programowanie asynchroniczne (pełny kurs)

Programowanie asynchroniczne stało się w ostatnim czasie równie rozwiniętą dziedziną jak klasyczne programowanie równoległe, a w świecie JavaScript, zarówno w przeglądarkach, jak i w Node.js, zrozumienie jego technik zajmuje centralne miejsce w kształtowaniu poglądów programistów. Przedstawiam Państwu pełny i najbardziej kompleksowy kurs z wyjaśnieniem wszystkich powszechnie stosowanych metod programowania asynchronicznego, adapterów między nimi oraz pomocniczych fragmentów. Składa się obecnie z 23 wykładów, 3 prezentacji i 28 repozytoriów z wieloma przykładami kodu na GitHubie. Łącznie około 17 godzin wideo: link do playlisty.

Wyjaśnienia do schematu

Na schemacie (powyżej) przedstawione są powiązania między różnymi sposobami pracy z asynchronicznością. Kolorowe bloki dotyczą programowania asynchronicznego, a czarno-białe przedstawiają metody programowania równoległego (semafory, mutexy, bariery itp.) oraz sieci Petriego, które, podobnie jak programowanie asynchroniczne i model aktorów, są różnymi podejściami do realizacji obliczeń równoległych (są podane na schemacie jedynie w celu dokładniejszego określenia miejsca programowania asynchronicznego). Model aktorów jest związany z programowaniem asynchronicznym, ponieważ realizacja aktorów bez wielowątkowości również ma prawo istnieć i służy do strukturalizacji kodu asynchronicznego. Linia przerywana łączy zdarzenia i konkurencyjną kolejkę z callbackami, ponieważ te abstrakcje opierają się na callbackach, ale jednak tworzą jakościowo nowe podejścia.

Tematy wykładów

1. Programowanie asynchroniczne (przegląd)
2. Timery, timeouty i EventEmitter
3. Programowanie asynchroniczne oparte na callbackach
4. Nieblokujące asynchroniczne iterowanie
5. Асинхронность с библиотекой async.js
6. Asynchroniczność na promisach
7. Asynchroniczne funkcje i obsługa błędów
8. Asynchroniczne adaptery: promisify, callbackify, asyncify
9. Asynchroniczne kolektory danych
10. Nieobsługiwane błędy w promisach
11. Problem asynchronicznego stosu wywołań
12. Generatory i asynchroniczne generatory
13. Iteratory i asynchroniczne iteratory
14. Anulowanie operacji asynchronicznych
15. Asynchroniczna kompozycja funkcji
16. Thenable i lekkie await
17. Konkurencyjna asynchroniczna kolejka
18. Wzorzec otwartego konstruktora (Revealing Constructor)
19. Przyszłość: Asynchroniczność na przyszłych obiektach bez stanu
20. Deferred: Asynchroniczność na obiektach deferred z stanem
21. Modela aktorów (Actor Model)
22. Wzorzec Obserwator (Observer + Observable)
23. Asynchroniczność w RxJS i strumienie zdarzeń

Pod każdym wideo znajdują się linki do repozytoriów z przykładami kodu omówionymi w filmie. Starałem się pokazać, że nie należy wszystkiego sprowadzać do jednej abstrakcji asynchroniczności. Nie istnieje uniwersalne podejście do asynchroniczności, a dla każdego przypadku można znaleźć metody, które pozwolą pisać kod w sposób bardziej naturalny dla tego konkretnego zadania. Oczywiście kurs będzie uzupełniany, i proszę wszystkich o proponowanie nowych tematów i wkład w przykłady kodu. Głównym celem kursu jest pokazanie, jak budować abstrakcje asynchroniczności od podstaw, a nie tylko nauczenie ich stosowania. Praktycznie wszystkie abstrakcje nie pochodzą z bibliotek, lecz prezentowane są w najprostszej formie i ich działanie jest omawiane krok po kroku.

Tylko zarejestrowani użytkownicy mogą brać udział w ankiecie. Zaloguj się, proszę.

Jakie jest Twoje zdanie o kursie?

  • Obejrzę cały kurs

  • Obejrzę wybiórczo

  • Jedno podejście mi wystarcza

  • Będę wkładał wkład w kurs

  • Nie interesuję się asynchronicznością

8 użytkowników zagłosowało. 1 użytkownik wstrzymał się od głosu.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster