|
2 | 2 |
|
3 | 3 | 💡 Объем материала: 10 часов лекций + необязательные материалы, созвоны для ревью кода и ответов на вопросы: 2 часа в неделю в течении года, репозитории с примерами кода, задачи по всем темам.
|
4 | 4 |
|
5 | | -Те способы писать асинхронный код, которые мы использовали 10-15 лет назад безвозвратно уходят в прошлое и могут быть интересны лишь для поддержки легаси упражнения в глубоком понимании асинхронного программирования. Даже способы 5-7 летней давности уже имеют мало общего с современными практиками, но интернет полон устаревшей информации, даже [открытый курс сообщества Metarhia](https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Asynchronous.md) на сегодняшний момент стал слишком громоздким и излишним. Еще нужно упомянуть о том, что в системном и прикладном коде асинхронное программирование должно выглядеть принципиально по-разному. Полностью скрыть от продуктового разработчика сложность асинхронного кода за абстракциями не удастся, потому, что он в любом случае будет работать с таймерами, событиями, стримами, fetch и другими асинхронными API, но его можно писать в десятки раз проще, чем асинхронный код с системном слое. Что касается системного слоя, то нужно вводить в обиход теорию очередей (системы массового обслуживания), модель акторов, часть абстракций из параллельного программирования (семафоры, рандеву, атомарные операции). Конечно, содержать все это в одном курсе сложновато, поэтому, мы отдадим приоритет прикладному коду и сначала полностью подготовим курс для применения асинхронного программирования в продуктовой разработке, а потом будем добавлять необязательные темы их старого курса и много других полезных абстракций, широко распространенных в других языках программирования, но слабо известных в мире JavaScript. |
| 5 | +Те способы писать асинхронный код, которые мы использовали 10-15 лет назад безвозвратно уходят в прошлое и могут быть интересны лишь для поддержки легаси упражнения в глубоком понимании асинхронного программирования. Даже способы 5-7 летней давности уже имеют мало общего с современными практиками, но интернет полон устаревшей информации, даже [открытый курс сообщества Metarhia](https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Asynchronous.md) на сегодняшний момент стал слишком громоздким и излишним. Еще нужно упомянуть о том, что в системном и прикладном коде асинхронное программирование должно выглядеть принципиально по-разному. Полностью скрыть от продуктового разработчика сложность асинхронного кода за абстракциями не удастся, потому, что он в любом случае будет работать с таймерами, событиями, стримами, fetch и другими асинхронными API, но его можно писать в десятки раз проще, чем асинхронный код в системном слое. Что касается системного слоя, то нужно вводить в обиход теорию очередей (системы массового обслуживания), модель акторов, часть абстракций из параллельного программирования (семафоры, рандеву, атомарные операции). Конечно, содержать все это в одном курсе сложновато, поэтому, мы отдадим приоритет прикладному коду и сначала полностью подготовим курс для применения асинхронного программирования в продуктовой разработке, а потом будем добавлять необязательные темы из старого курса и много других полезных абстракций, широко распространенных в других языках программирования, но слабо известных в мире JavaScript. |
6 | 6 |
|
7 | 7 | ## Содержание
|
8 | 8 |
|
|
30 | 30 | - ⭐ Предотвращение состояния гонки по данным и управлению в асинхронном коде
|
31 | 31 | - ⭐ Отмена асинхронных операций: `AbortController`, `AbortSignal`
|
32 | 32 | - ⭐ Обработка ошибок, их выявление и возможные проблемы со стектрейсом
|
33 | | -- 🧩 Асинхронныек коллекции (собираем значения до готовности) |
| 33 | +- 🧩 Асинхронные коллекции (собираем значения до готовности) |
34 | 34 | - 🧩 Асинхронные абстракции: `Queue`, `Pool`, `Collector`, `Semaphore`, `Lock`, `Mutex`
|
35 | 35 | - 🧩 Системные абстракции: `threads`, `processes`, `MessageChannel`, `BroadcastChannel`
|
36 | 36 | - 🧩 Асинхронные генераторы и асинхронные итераторы
|
|
0 commit comments