Хабрахабр

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

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

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

Пояснения к схеме

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

Темы лекций

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

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

Войдите, пожалуйста. Только зарегистрированные пользователи могут участвовать в опросе.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть