Асинхронне програмування останнім часом стало більш розвиненим напрямом, ніж класичне паралельне програмування, а світі JavaSript, як у браузерах, і у Node.js, розуміння його прийомів зайняло одне з центральних місць у формуванні світогляду розробників. Пропоную до вашої уваги цілісний і найбільш повний курс з поясненням усіх широко поширених методів асинхронного програмування, адаптерів між ними та допоміжних прорізів. Зараз він складається з 23 лекцій, 3 доповідей та 28 репозиторіїв з безліччю прикладів коду на github. Всього близько 17 годин відео:
Пояснення до схеми
На схемі (вище) показано зв'язок між різними способами роботи з асинхронністю. Кольорові блоки відносяться до асинхронного програмування, а ч/б показані методи паралельного програмування (семафори, м'ютекси, бар'єри тощо) та мережі петрі, які, як і асинхронне програмування та модель акторів, є різними підходами до реалізації паралельних обчислень (вони дано на схемі лише щоб точніше визначити місце асинхронного програмування). Модель акторів пов'язані з асинхронним програмуванням оскільки реалізація акторів без многопоточности теж має право існування і служить для структурування асинхронного коду. Пунктирними лініями події та конкурентна черга пов'язані з колбеками тому, що ці абстракції базуються на колбеках, але все ж таки формують якісно нові підходи.
Теми лекцій
Під кожним відео є посилання на репозиторії з прикладами коду, які розуміються на відео. Я постарався показати, що не треба зводити все до однієї абстракції асинхронності. Універсального підходу до асинхронності не існує, а для кожного випадку можна підібрати ті методи, які дозволять писати код природніше для цієї конкретної задачі. Звичайно ж, цей курс доповнюватимуться і я прошу всіх пропонувати нові теми і контриб'ютити в приклади коду. Основне завдання курсу — показати як будувати абстракції асинхронності зсередини, а не просто навчити ними користуватися. Практично всі абстракції не беруться з бібліотек, а дано у найпростішій їх реалізації та покроково розібрано їхню роботу.
Тільки зареєстровані користувачі можуть брати участь в опитуванні.
Ваше ставлення до курсу?
-
Подивлюся весь курс
-
Подивлюся вибірково
-
Мені вистачає одного підходу
-
Контриб'ють в курс
-
Не цікавлюся асинхронністю
Проголосували 8 користувачів. Утримався 1 користувач.
Джерело: habr.com