💻 Для JavaScript и TypeScript, бекенд и фронтенд
⏱️ 9 часов основных материалов и более 45 часов дополнительных
🌍 Два языка лекций: русский и украинский
🛠️ Практика на живых оупенсорс проектах и библиотеках, а не на синтетических задачах
👥 Семинары каждую неделю, постоянные ревью кода (курс это не только видео)
🔄 2 года обновления материалов: все, что выйдет в 2026 + обновления 2027
♾️ Все материалы остаются навсегда
📜 Курсу уже 15 лет, ежегодно обновляется
💼 Примеры кода из реальных проектов, концентрация на практическом применении
🌐 Онлайн-формат
🏃♂️➡️ Скорость обучения выбираете себе сами
📦 Исходный код всех примеров и практических заданий
👨🏫 Обратная связь от преподавателя на семинарах и ревью
❓ Возможность задавать вопросы в сообществе курса
✅ Актуальные материалы, соответствующие современным стандартам по состоянию на 2026
🎯 Подходит для разработчиков разных уровней: от джуна до архитектора, от прикладного до системного программирования
Этому курсу уже 15 лет, я обновляю его каждый год и за это время он стал самым крупным и полным сборником знаний про асинхронное программирование. Интернет полон устаревших материалов по JavaScript, даже то, как люди писали асинхронный код 5-7 лет назад уже имеет мало общего с современными практиками. В открытом виде есть все материалы, записанные до 2020 года: открытый курс сообщества Metarhia по асинхронному программированию. Старый курс стал слишком громоздким, но его материалы тоже включены сюда, как дополнительные и исторические, потому что поддержку легаси никто не отменял.
🗓️ Материалы разделены на самое актуальное (что можно освоить за 1 месяц, если тратить по 2-3 часа в неделю) и огромную библиотеку всевозможных асинхронных абстракций и подходов, какие только есть в JavaScript для выборочного освоения
🎫 До 7 января 2026 (включительно) можно купить за $200 на Patreon
🎫 До 14 января 2026 (включительно) за $250
🎫 Далее, в течение всего 2026 года: $300
🎫 Можно купить через Paypal и Payoneer: [email protected]
👉 Обзор контрактов и абстракций
👉 Огляд українською асинхронного програмування
👉 Обзор параллельного программирования
Еще нужно упомянуть, что в системном и прикладном коде асинхронное программирование должно выглядеть принципиально по-разному. Полностью скрыть от продуктового разработчика сложность асинхронного кода за абстракциями не получится, потому что он в любом случае будет работать с таймерами, событиями, стримами, fetch и другими асинхронными API, но его можно писать в десятки раз проще, чем асинхронный код в системном слое. Что касается системного слоя, то нужно вводить в обиход теорию очередей (системы массового обслуживания), модель акторов, часть абстракций из параллельного программирования (семафоры, рандеву, атомарные операции).
Для того, чтобы писать прикладной код хватит первого столбика таблицы (а в оглавлении темы помечены 💯). Второй столбик полезен как дополнительные знания (углубленное изучение помечено как 🧑🎓). Для бекенда на ноде нужно освоить два первых столбика. Третий столбик содержит системные вещи (помечены ⚙️ в оглавлении), которые нужны для разработки инструментов, платформ и библиотек. Четвертый столбик (помечен 🧑🚀) это дополнительные абстракции, которые можно осваивать выборочно, они понадобятся не всем, но если вы работаете в проектах, где много функционального и/или реактивного программирования. Пятый столбик - вещи, которые морально устарели и могут рассматриваться как интересный антиквариат (помечены 🕰️).
| Applied 💯 | Advanced 🧑🎓 | System ⚙️ | Elective 🧑🚀 | Legacy 🕰️ |
|---|---|---|---|---|
callbacks |
AsyncQueue |
Thenable |
compose callbacks |
Deferred |
promises |
AsyncPool |
Semaphore |
async compose |
function*/yield |
async/await |
AsyncCollector |
Mutex |
Observer |
Async.js |
events |
Chain of responsibility |
Spin Lock |
Future |
Metasync |
streams |
Async Generator |
MessageChannel |
coroutines |
middleware |
signals |
GoF pattern Iterator |
BroadcastChannel |
Actor Model |
RxJS |
locks |
Actor pattern |
threads |
do |
|
iterators |
Disposable |
processes |
🔹 Концентрация на практическом применении (примеры кода из реальных проектов)
🔹 Актуальность и соответствие стандартам по состоянию на 2025-2026
🔹 Задачи и разбор их решений, семинары, ревью кода (курс это не только видео)
🔹 Рекомендации к выбору стиля и абстракций асинхронности под задачу
🔹 Внимание к корректной обработке ошибок во всех стилях асинхронности
🔹 Упор на надежность, поддерживаемость, тестируемость, снижение зацепления
🔹 Примеры и задачи по исправлению скрытых проблемных состояний и data races
🎫 До 7 января 2026 (включительно) можно купить за $200 на Patreon
🎫 До 14 января 2026 (включительно) за $250
🎫 Далее, в течение всего 2026 года: $300
🎫 Можно купить через Paypal и Payoneer: [email protected]
- 💯 Контракты асинхронности на базе callback
- ⭐ Контракты
CallbackиCallback-last-error-first - 💻 Примеры кода
- 🧑💻 Задания по колбекам и созвон с разбором заданий
- 🕰️ Функции высшего порядка, колбеки, события на JavaScript
- 🕰️ Асинхронное программирование на callback`ах в JavaScript
- 💡 V8: оптимизируем возврат из функции в JavaScript через return, resolve, callback — Деми Мурыч
- ⭐ Контракты
- 💯 Минимально необходимое понимание рантайма: event loop, I/O, таймеры
- ⭐ Фазы Event-loop в V8 и Node.js
- 🗃️ Стрим с разбором Event loop и асинхронности
- 💻 Примеры кода
- 🧑💻 Задания по таймерам
- ✨ Event loop, асинхронность, таймеры, колбеки, промисы, async/await
- 💡 Асинхронное программирование в JavaScript, Node.js: callback, promise, thenable, async/await
- 🧑🎓 Паттерны Actor, Reactor, Proactor
- ⭐ Actor + Actor Compose (композиция актора и состояния)
- ⭐ Паттерн Reactor (реактор): как устроен Event Loop в Node.js
- ⭐ Паттерн Proactor
- 💡 Семинар Паттерны Actor, Reactor, Proactor для JavaScript и TypeScript
- 💯 Контракты на базе событий
- ⭐ События:
EventTarget,EventEmitter - ⭐ GoF Pattern Observer
- 💻 Примеры кода по событиям
- 🧑💻 Задания по событиям
- ✨ EventEmitter из старой лекции
- 💻 Примеры кода из старой лекции по EventEmitter
- 💡 Code review: Observable, EventEmitter, EventTarget
- ⭐ События:
- 💯 Абстракция потоков
Stream- ⭐ Стримы Readable, Writable, Transform, открытый конструктор, буферизация, backpressure
- ⭐ Web Streams — браузерное API для потоков событий
- 💻 Примеры кода
- ✨ Паттерн открытый конструктор (Revealing Constructor)
- 💻 Примеры кода
- ✨ Потоки (Streams) в Node.js
- ✨ HTTP сервер в Node.js, req, res, сокеты и потоки (streams)
- ⚙️ Контракт
Thenable- ⭐ Контракт
Thenable - ✨ Thenable из старой лекции
- ✨ Thenable и легковесный await
- 💻 Примеры кода
- 🧑💻 Задания по
Thenableи созвон с разбором заданий
- ⭐ Контракт
- 💯 Контракт
Promise- ⭐ Promise: then/catch/finally и методы класса all, allSettled, race, any
- ✨ Асинхронность на промисах из старой лекции
- 💻 Примеры кода
- 🧑💻 Задания по
Promiseи созвон с разбором заданий
- 💯 Контракт асинхронных функций
async/await- ⭐ Асинхронные функции
- ✨ Асинхронные функции из старой лекции
- 💻 Примеры кода
- 🧑💻 Задания по
async/await
- 💯 Контракт сигналов
Signals- ⭐ Сигналы: signal, computed, effect
- 💻 Примеры кода
- 🧑💻 Задания по сигналам
- 💯 Обработка ошибок, их выявление и решение проблем со стектрейсом
- ⭐ Обработка ошибок, логирование и агрегирование
- ⭐ Семинар: Errors, exceptions, operational, soft, hard, recovery, logging
- 💡 Реализация
Graceful shutdownв Node.js,unhandled exceptions,async stack trace - ✨ Обработка ошибок из старой лекции
- 💻 Примеры кода
- 🧑💻 Задания по обработке ошибок
- 🧑🎓 Асинхронная очередь
AsyncQueue- 💡 Семинар: Асинхронная очередь — AsyncQueue, ConcurrentQueue
- 💡 Node.js Queue optimized for JavaScript V8: Circular Buffer, Unrolled List, Unrolled Queue
- ✨ Конкурентная асинхронная очередь из старой лекции
- 💻 Примеры кода
- 🧑🎓 Асинхронный пул
AsyncPool- ⭐ Паттерн Factory Method
- ⭐ Паттерны: Object Pool, Factory
- ⭐ Асинхронный Pool
- 💡 Семинар: Creator, Factory, Factory Method, Object Pool
- ✨ Асинхронный пул для worker thread pool в Node.js
- ✨ Фабрики и пулы объектов в JavaScript, factorify, poolify
- 💻 Примеры кода
- 🧑🎓 Асинхронная коллекция
Collector- ⭐ Асинхронные коллекции (собираем значения до готовности)
- ✨ Асинхронные коллекторы данных
- 💻 Примеры кода
- 🧑🎓 Паттерн "цепочка ответственности"
- ⭐ Pattern: Chain of responsibility
- 💻 Примеры кода
- 🧑🎓 Конвертеры контрактов
asyncify,callbackify, стыковка кода в разных стилях- ⭐ GoF Patterns: Adapter
- ⭐ Асинхронные адаптеры
- 💡 Семинар по адаптерам для Node.js и асинхронного программирования
- 💡 Node.js ревью кода promisify — Тимур Шемсединов и Деми Мурыч
- ✨ Асинхронные адаптеры из старой лекции
- 💻 Примеры кода
- 🧑🎓 Предотвращение состояния гонки по данным и управлению в асинхронном коде
- 🧑🎓 Отмена асинхронных операций
- ⭐ AbortController, AbortSignal
- 💻 Примеры кода
- 🧑🎓
Async GeneratorиAsync Iterator- ⭐ Generator, iterator, iterable
- ⭐ Async generator, Async iterator, Async iterable
- ✨ Генераторы и асинхронные генераторы из старой лекции
- ✨ Итераторы и асинхронные итераторы из старой лекции
- 💻 Примеры кода
- ⚙️ Абстракции портированные из параллельного программирования в асинхронное
- ✨ Семафоры и мьютексы в JavaScript и Node.js
- 💻 Асинхронные абстракции:
Semaphore,Mutex - 💻 Блокировки WebLocks API
- 💻 Блокировки
Lock,Spin Lock
- ⚙️ Абстракции параллельного программирования: процессы и потоки
- ⭐ Многопоточность в Node.js
- ⭐ Web Locks API in Node.js and browser
- ⭐ Потоки и процессы в JavaScript, асинхронное и параллельное программирование на Node.js и в браузере
- ⭐ Потоки та процеси українською для Web та Node.js, Atomics/CAS, шарена пам'ять, блокування
- ✨ Межпроцессовое взаимодействие в Node.js
- ⭐ Межпроцессовое и межпотоковое взаимодействие,
MessageChannel,BroadcastChannel - ⭐ Корутины
coroutines
- 🧑🚀 Асинхронная композиция
compose callbacks&async compose- ⭐ Асинхронная композиция: compose, pipe — функциональное программирование
- ✨ Асинхронная композиция функций
- 💻 Примеры кода
- 🧑🚀 Асинхронность на потоках событий
RxJS- ✨ Асинхронность на RxJS из старой лекции
- 💻 Примеры кода
- 🧑🚀 Модель акторов
actor model- ✨ Модель акторов
- 💻 Примеры кода
- 🧑🚀 Функциональное асинхронное программирование, контракт
Future- ⭐ FP Async Pattern — Future
- ✨ Асинхронность на фьючерах без состояния
- 💻 Примеры кода
- 🕰️ Асинхронность на синхронных генераторах
function*/yield - 🕰️ Мидлвары
middlewareкак антипаттерн- ✨ Node.js Middleware – никогда больше!
- 💻 Примеры кода
- 🕰️ Контракты семейства
Deferred- ✨ Deferred: Асинхронность на деферах с состоянием
- 💻 Примеры кода
- 🕰️ Async.js
- ✨ Легаси код на библиотеке
Async.js - 💻 Примеры кода
- ✨ Легаси код на библиотеке
- 🕰️ Коллекция асинхронных абстракций
Metasync - ⚙️ Трекинг асинхронных контекстов
- ⭐ AsyncLocalStorage, AsyncResource
- 💻 Примеры использования AsyncLocalStorage и AsyncResource
- ⭐ Принципы и паттерны с адаптацией для JavaScript, TypeScript, Node.js и асинхронного программирования
- 💡 Принципы SOLID
- 💡 Паттерны GRASP
- ✨ Контрактное программирование
Что нужно знать и уметь на входе:
- 🔗 Синтаксис JavaScript без всяких триков
- 💡 Уверенно владеть git, иметь github аккаунт
- 💡 Любая среда разработки, IDE или редактор
Чем это курс не является: это не чтение документации, не курс по библиотекам и фреймворкам, не повторение старого курса, не лайвкодинг и не мастеркласс, не стрим. Новый курс - это максимально сконцентрированная информация и практические задачи как для прикладного, так и для системного программирования со сравнением этих подходов.
🎫 До 7 января 2026 (включительно) можно купить за $200 на Patreon
🎫 До 14 января 2026 (включительно) за $250
🎫 Далее, в течение всего 2026 года: $300
🎫 Можно купить через Paypal и Payoneer: [email protected]
👉 Новости курса будут в канале: https://t.me/asyncify
👉 Открытая группа курса: https://t.me/asynctalks
👉 Подписывайтесь на https://t.me/metarhia и https://www.youtube.com/@TimurShemsedinov чтобы следить за новостями