Как стать автором
Обновить

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

Время на прочтение2 мин
Количество просмотров98K

Методы асинхронного программирования


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


Под каждым видео есть ссылки на репозитории с примерами кода, которые разбираются в видео. Я постарался показать, что не нужно сводить все к одной абстракции асинхронности. Универсального подхода к асинхронности не существует, а для каждого случая можно подобрать те методы, которые позволят писать код более естественно для этой конкретной задачи. Конечно же, этот курс будут дополняться и я прошу всех предлагать новые темы и контрибьютить в примеры кода. Основная задача курса — это показать как строить абстракции асинхронности изнутри, а не просто научить ими пользоваться. Практически все абстракции не берутся из библиотек, а даны в самой простой их реализации и пошагово разобрана их работа.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Ваше отношение к курсу?
66.45% Посмотрю весь курс307
30.3% Посмотрю выборочно140
0.87% Мне хватает одного подхода4
0.43% Буду контрибьютить в курс2
1.95% Не интересуюсь асинхронностью9
Проголосовали 462 пользователя. Воздержался 71 пользователь.
Теги:
Хабы:
+48
Комментарии17

Публикации

Истории

Работа

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн