Асинхронно програмиране (пълен курс)

Асинхронно програмиране (пълен курс)

Асинхронното програмиране напоследък стана не по-малко развито направление от класическото паралелно програмиране, а в света на JavaScript, както в браузърите, така и в Node.js, разбирането на неговите техники зае едно от централните места в формирането на мирогледа на разработчиците. Предлагам на вашето внимание цялостен и най-пълен курс с обяснение на всички широко разпространени методи за асинхронно програмиране, адаптери между тях и спомагателни пространства. В момента той се състои от 23 лекции, 3 доклада и 28 репозитория с множество примери на код в github. Общото продължение е около 17 часа видео: връзка към плейлист.

Обяснения към схемата

В схемата (горе) са показани връзките между различните начини на работа с асинхронността. Цветните блокове са свързани с асинхронното програмиране, а черно-белите показват методите на паралелно програмиране (семафори, мютекси, бариери и т.н.) и мрежи на Петри, които, подобно на асинхронното програмиране и модела на акторите, представляват различни подходи към реализирането на паралелни изчисления (те са дадени в схемата, само за да се определи по-точно мястото на асинхронното програмиране). Моделът на акторите е свързан с асинхронното програмиране, защото реализацията на акторите без многопоточност също има право на съществуване и служи за структурирането на асинхронния код. Пунктираните линии свързват събитията и конкурентната опашка с колбековете, защото тези абстракции се основават на колбекове, но все пак формират качествено нови подходи.

Темите на лекциите

1. Асинхронно програмиране (преглед)
2. Таймери, таймаути и EventEmitter
3. Асинхронно програмиране на callback-ове
4. Неблокиращо асинхронно итерация
5. Асинхронность с библиотекой async.js
6. Асинхронност на промиси
7. Асинхронни функции и обработка на грешки
8. Асинхронни адаптери: promisify, callbackify, asyncify
9. Асинхронни колектори на данни
10. Необработени грешки в промисите
11. Проблема с асинхронния стек-трейс
12. Генератори и асинхронни генератори
13. Итератори и асинхронни итератори
14. Отмяна на асинхронни операции
15. Асинхронна композиция на функции
16. Thenable и леко await
17. Конкурентна асинхронна опашка
18. Шаблон открит конструктор (Revealing Constructor)
19. Будуще: Асинхронност на бъдещето без състояние
20. Отложено: Асинхронност на отложените с състояние
21. Модел на актьори (Actor Model)
22. Патерн Наблюдател (Observer + Observable)
23. Асинхронност на RxJS и потоци от събития

Под всяко видео има връзки към репозитории с примери за код, които се разглеждат във видеото. Стараех се да покажа, че не трябва да се свежда всичко до една абстракция на асинхронността. Универсален подход към асинхронността не съществува, а за всеки случай могат да се подберат методи, които ще позволят писането на код по-естествено за конкретната задача. Разбира се, този курс ще бъде допълван и моля всички да предлагат нови теми и да допринасят за примери с код. Основната задача на курса е да покаже как да се изграждат абстракции на асинхронността отвътре, а не просто да обучи как да се използват. Практически всички абстракции не се взимат от библиотеки, а са представени в най-простата им реализация и стъпка по стъпка е разгледана тяхната работа.

Само регистрирани потребители могат да участват в анкетата. Влезте, моля.

Вашето мнение за курса?

  • Ще гледам целия курс

  • Ще гледам избирателно

  • Достатъчен ми е един подход

  • Ще допринасям за курса

  • Не се интересувам от асинхронност

Гласували 8 потребители. Въздържал се 1 потребител.

Източник: habr.com

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster