|
| 1 | +# Асинхронное программирование 2024 |
| 2 | + |
| 3 | +Те способы писать асинхронный код, которые мы использовали 10-15 лет назад безвозвратно уходят в прошлое и могут быть интересны лишь для поддержки легаси упражнения в глубоком понимании асинхронного программирования. Даже способы 5-7 летней давности уже имеют мало общего с современными практиками, но интернет полон устаревшей информации, даже [открытый курс сообщества Metarhia](https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Asynchronous.md) на сегодняшний момент стал слишком громоздким и излишним. Еще нужно упомянуть о том, что в системном и прикладном коде асинхронное программирование должно выглядеть принципиально по-разному. |
| 4 | + |
| 5 | +## Содержание |
| 6 | + |
| 7 | +Важные аспекты нового курса: |
| 8 | + |
| 9 | +- Концентрация на практическом применении (примеры кода из реальных проектов) |
| 10 | +- Актуальность и соответствие стандартам по состоянию на 2024 |
| 11 | +- Задачи и разбор их решений, семинары, ревью кода (курс это не только видео) |
| 12 | +- Рекомендации к выбору стиля и абстракций асинхронности под задачу |
| 13 | +- Внимание к корректной обработке ошибок во всех стилях асинхронности |
| 14 | +- Упор на надежность, поддерживаемость, тестируемость, снижение зацепления |
| 15 | + |
| 16 | +Темы нового курса: |
| 17 | + |
| 18 | +- Контракты асинхронности на базе callback: callback-last, error-first |
| 19 | +- Минимально необходимое понимание рантайма: event loop, I/O, таймеры |
| 20 | +- Контракты асинхронности на базе событий: EventEmitter, Streams |
| 21 | +- Контракт Promise и синтаксис async/await |
| 22 | +- Конвертеры контрактов, стыковка кода в разных стилях |
| 23 | +- Предотвращение состояния гонки по данным и управлению в асинхронном коде |
| 24 | +- Отмена асинхронных операций: AbortController, AbortSignal |
| 25 | +- Обработка ошибок, их выявление и возможные проблемы со стектрейсом |
| 26 | +- Асинхронныек коллекции (собираем значения до готовности) |
| 27 | + |
| 28 | +## Обратите внимание |
| 29 | + |
| 30 | +Что нужно знать и уметь на входе: |
| 31 | + |
| 32 | +- [Синтаксис JavaScript, но можно без всяких триков](https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Fundamentals.md) |
| 33 | +- Уверенно владеть git, иметь github аккаунт |
| 34 | +- Желательно docker, иметь рабочую машину на linux или mac |
| 35 | +- Любая среда разработки, IDE или редактор |
| 36 | + |
| 37 | +Чем это курс не является: это не чтение документации, не курс по библиотекам и фреймворкам, не повторение старого курса, не лайвкодинг и не мастеркласс, не стрим. Новый курс - это максимально сконцентрированная информация и практические задачи как для прикладного, так и для системного программирования со сравнением этих подходов. |
0 commit comments