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

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

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

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

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

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

1. Асинхронно програмиране (преглед)
2. Таймери, таймаути и EventEmitter
3. Асинхронното програмиране с колбекове
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. Future: Асинхронност с фючъри без състояние
20. Deferred: Асинхронност с дифери със състояние
21. Модел на актьорите (Actor Model)
22. Патерн Наблюдател (Observer + Observable)
23. Асинхронност с RxJS и събитийни потоци

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

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

Какво е вашето отношение към курса?

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

  • Ще гледам селективно

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

  • Ще контрибютна в курса

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

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

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

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