Skip to content

Commit fa3ce4a

Browse files
authored
Update Async-2024.md
1 parent e635319 commit fa3ce4a

File tree

1 file changed

+30
-20
lines changed

1 file changed

+30
-20
lines changed

Courses/Async-2024.md

Lines changed: 30 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Асинхронное программирование 2024
22

3+
💡 Объем материала: 10 часов лекций + необязательные материалы, созвоны для ревью кода и ответов на вопросы: 2 часа в неделю в течении года, репозитории с примерами кода, задачи по всем темам.
4+
35
Те способы писать асинхронный код, которые мы использовали 10-15 лет назад безвозвратно уходят в прошлое и могут быть интересны лишь для поддержки легаси упражнения в глубоком понимании асинхронного программирования. Даже способы 5-7 летней давности уже имеют мало общего с современными практиками, но интернет полон устаревшей информации, даже [открытый курс сообщества Metarhia](https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Asynchronous.md) на сегодняшний момент стал слишком громоздким и излишним. Еще нужно упомянуть о том, что в системном и прикладном коде асинхронное программирование должно выглядеть принципиально по-разному. Полностью скрыть от продуктового разработчика сложность асинхронного кода за абстракциями не удастся, потому, что он в любом случае будет работать с таймерами, событиями, стримами, fetch и другими асинхронными API, но его можно писать в десятки раз проще, чем асинхронный код с системном слое. Что касается системного слоя, то нужно вводить в обиход теорию очередей (системы массового обслуживания), модель акторов, часть абстракций из параллельного программирования (семафоры, рандеву, атомарные операции). Конечно, содержать все это в одном курсе сложновато, поэтому, мы отдадим приоритет прикладному коду и сначала полностью подготовим курс для применения асинхронного программирования в продуктовой разработке, а потом будем добавлять необязательные темы их старого курса и много других полезных абстракций, широко распространенных в других языках программирования, но слабо известных в мире JavaScript.
46

57
## Содержание
@@ -16,33 +18,41 @@
1618

1719
Темы нового курса:
1820

19-
- Контракты асинхронности на базе callback: Callback-last-error-first
20-
- Минимально необходимое понимание рантайма: event loop, I/O, таймеры
21-
- Контракты асинхронности на базе событий: EventEmitter, Streams
22-
- Потоки событий, паттерн Observer/Observable и RX.js
23-
- Контракты Promise/Thenable/then/catch/finally и синтаксис async/await
24-
- Параллельное и последовательное исполнение, all/any/race/allSettled
25-
- Конвертеры контрактов, стыковка кода в разных стилях
26-
- Предотвращение состояния гонки по данным и управлению в асинхронном коде
27-
- Отмена асинхронных операций: AbortController, AbortSignal
28-
- Обработка ошибок, их выявление и возможные проблемы со стектрейсом
29-
- Асинхронныек коллекции (собираем значения до готовности)
30-
- Асинхронная очередь и асинхронный пул
31-
- Асинхронные генератори и асинхронные итераторы
32-
- Обзор других контрактов: generators, signals, future, deferred
21+
Условные обозначения: ⭐ новые лекции, ✨ открытые лекции, 🧩 необязательные темы
22+
23+
- ⭐ Контракты асинхронности на базе callback: Callback-last-error-first
24+
- ✨ Минимально необходимое понимание рантайма: event loop, I/O, таймеры
25+
- ⭐ Контракты асинхронности на базе событий: EventEmitter, Streams
26+
- ✨ Потоки событий, паттерн Observer/Observable и RX.js
27+
- ⭐ Контракты Promise/Thenable/then/catch/finally и синтаксис async/await
28+
- ⭐ Параллельное и последовательное исполнение, all/any/race/allSettled
29+
- ⭐ Конвертеры контрактов, стыковка кода в разных стилях
30+
- ⭐ Предотвращение состояния гонки по данным и управлению в асинхронном коде
31+
- ⭐ Отмена асинхронных операций: AbortController, AbortSignal
32+
- ⭐ Обработка ошибок, их выявление и возможные проблемы со стектрейсом
33+
- 🧩 Асинхронныек коллекции (собираем значения до готовности)
34+
- 🧩 Асинхронная очередь и асинхронный пул
35+
- 🧩 Асинхронные генератори и асинхронные итераторы
36+
- 🧩 Обзор других контрактов: generators, signals, future, deferred
3337

3438
## Обратите внимание
3539

3640
Что нужно знать и уметь на входе:
3741

38-
- [Синтаксис JavaScript, но можно без всяких триков](https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Fundamentals.md)
39-
- Уверенно владеть git, иметь github аккаунт
40-
- Желательно docker, иметь рабочую машину на linux или mac
41-
- Любая среда разработки, IDE или редактор
42+
- 🔗 [Синтаксис JavaScript без всяких триков](https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Fundamentals.md)
43+
- 💡 Уверенно владеть git, иметь github аккаунт
44+
- 💡 Любая среда разработки, IDE или редактор
4245

4346
Чем это курс не является: это не чтение документации, не курс по библиотекам и фреймворкам, не повторение старого курса, не лайвкодинг и не мастеркласс, не стрим. Новый курс - это максимально сконцентрированная информация и практические задачи как для прикладного, так и для системного программирования со сравнением этих подходов.
4447

4548
## Как попасть на курс
4649

47-
- Новости будут в канале: https://t.me/asyncify
48-
- Группа курса: https://t.me/asynctalks
50+
💳 Сейчас на курс можно записаться по плану «Professional» на 1 год за $102 (+ локальные налоги) на Patreon или аналог в гривнах. Помесячная подписка «Professional» не дает доступа. Матераиалы курса остается и после завершения подписки (не нужно ее продлять все время, я не забираю доступ). Как только план курса будет сформирован и курс стартует в начале 2024, его цена будет выше в 2 раза.
51+
52+
👉 Подписаться: https://www.patreon.com/tshemsedinov
53+
54+
🎉 После того, как Вы взяли курс, в течении суток я добавляю вам права на репозиторий в Github, добавляю в календарь на созвоны через google-meet, и придут ссылки на все нужные ресурсы в почту. Может попасть в спам, проверьте.
55+
56+
👉 Новости курса будут в канале: https://t.me/asyncify
57+
👉 Открытая группа курса: https://t.me/asynctalks
58+
👉 Подписывайтесь на https://t.me/metarhia и https://www.youtube.com/@TimurShemsedinov чтобы следить за новостями

0 commit comments

Comments
 (0)