Original: Мы широко используем функции Async/Await и возлагаем на них большие надежды, поэтому оператор async должен поддерживаться всеми библиотеками. Но правильное ли это решение? Успешно ли реализуется шаблон в целом? Какие могут возникнуть проблемы, и почему использование оператора async может оказаться не самой лучшей идеей? В своём докладе я расскажу, почему асинхронная модель далека от совершенства. Я затрону проблемы, связанные с глобальными состояниями (global state), обработкой исключений, взаимными блокировками (дедлоками) и сборкой мусора. Я объясню, почему механизм разрабатывали, игнорируя важнейшие принципы программирования, и покажу, как много в нём проблемных мест. Уровень сложности: средний. Требуется базовое знание sync/await. Адам работает инженером-программистом почти 10 лет. На данный момент он занимается большими данными, фреймворком Spark и машинным обучением в Amazon. Ему всегда было интересно копать глубже, изучать машинный код и разбираться в особенностях реализации ПО, чтобы лучше понимать устройство технологий, которые он использует каждый день. Поэтому Адаму нравится отлаживать, декомпилировать и дизассемблировать код — это позволяет разобраться в моделях управления памятью, проблемах параллельного выполнения кода и других нюансах, которые скрыты внутри кода. В свободное время Адам играет в пинг-понг, смотрит фильмы Вуди Аллена и публикует статьи на . Презентация на Я.Диске: DotFest:
Hide player controls
Hide resume playing