Асинхронное программирование JavaScript [Андрей Кобец]

Джокер

Администратор
Регистрация
1 Янв 2015
Сообщения
140.674
Реакции
77.683
Складчина: Асинхронное программирование JavaScript [Андрей Кобец]



Иногда на просторах интернета встречаются глупости про JavaScript — мол, смешной язык со своими «онкликами и колбэками». Чаще всего такое пишут люди, не погружённые в контекст JS, либо просто невежественные.
Но дыма без огня не бывает. На чём же основана такая критика?

Мы знаем, что асинхронный подход куда эффективнее в задачах с большой долей ввода-вывода (I/O). В таком супер-интерактивном приложении, как браузер, работа с I/O занимает львиную часть. Поэтому создатели браузеров приняли единственно верное решение и взяли за основу именно асинхронный подход.

Однако проблема в том, что асинхронное программирование без специальной инфраструктуры практически моментально скатывается в «вермишель» из вложенных друг в друга колбэков.

Сейчас эти проблемы решаются с помощью:

промисов
асинхронных итераторов и потоков данных
async/await и top await
Но у любой абстракции есть своя цена. В случае с JS мы платим сразу двумя «валютами»: сложностью входа (все эти таски, микротаски, Event Loop и переполненные очереди) и производительностью.

Поэтому даже начинающему специалисту нужно крепко разбираться в нюансах и подводных камнях этих абстракций. Без этого асинхронность остаётся «магией, которая иногда работает», а её цена превращается в головную боль, а не в осознанный выбор.

Чтобы закрыть этот пробел и превратить сложность в понятную, управляемую силу, на следующей неделе проведу небольшой live-интенсив. Интенсив посвящён детальному изучению асинхронного программирования в JavaScript, включая всесторонний разбор Promise Api — но не ограничиваясь только им.

Мы разберём:

нюансы реализации Event Loop в браузере и Node.js
подводные камни и узкие места для производительности
паттерны достижения многозадачности и отзывчивости интерфейса
Материал — абсолютный мастхэв для джунов и выше. Но гарантирую: даже опытный мидл узнает много нового.
Каждая лекция — это важный пазл общей картины. Я постарался сделать программу так, чтобы она не вызывала информационного взрыва, а плавно вела по теме.

Программа:

Асинхронное программирование в JS:

Колбэки и промисы
Event Loop: как всё это крутится
Таски и микротаски
Асинхронность и параллельность
Глубокое погружение в Promise:

Способы создания, выстраивание цепочек, обработка ошибок
Концепция Thenable-объектов
Сложные композиции
Отмена промисов
Асинхронная синхронность:

Конечные автоматы, сопрограммы и async/await
Асинхронные модули и top await
Асинхронные итераторы и for await
Нюансы и баги
Цена 4500 руб.




СКАЧАТЬ СЛИВЫ КУРСОВ