Adam Furmanek. Оператор async — самая большая ошибка в C #?
Original: https://youtu.be/0Sd0ZMl71Rk Мы широко используем функции Async/Await и возлагаем на них большие надежды, поэтому оператор async должен поддерживаться всеми библиотеками. Но правильное ли это решение? Успешно ли реализуется шаблон в целом? Какие могут возникнуть проблемы, и почему использование оператора async может оказаться не самой лучшей идеей? В своём докладе я расскажу, почему асинхронная модель далека от совершенства. Я затрону проблемы, связанные с глобальными состояниями (global state), обработкой исключений, взаимными блокировками (дедлоками) и сборкой мусора. Я объясню, почему механизм разрабатывали, игнорируя важнейшие принципы программирования, и покажу, как много в нём проблемных мест. Уровень сложности: средний. Требуется базовое знание sync/await. Адам работает инженером-программистом почти 10 лет. На данный момент он занимается большими данными, фреймворком Spark и машинным обучением в Amazon. Ему всегда было интересно копать глубже, изучать машинный код и разбираться в особенностях реализации ПО, чтобы лучше понимать устройство технологий, которые он использует каждый день. Поэтому Адаму нравится отлаживать, декомпилировать и дизассемблировать код — это позволяет разобраться в моделях управления памятью, проблемах параллельного выполнения кода и других нюансах, которые скрыты внутри кода. В свободное время Адам играет в пинг-понг, смотрит фильмы Вуди Аллена и публикует статьи на http://blog.adamfurmanek.pl. Презентация на Я.Диске: https://disk.yandex.ru/i/vmTMSOXE1Ftw8A DotFest: https://2020.dotfest.ru
Original: https://youtu.be/0Sd0ZMl71Rk Мы широко используем функции Async/Await и возлагаем на них большие надежды, поэтому оператор async должен поддерживаться всеми библиотеками. Но правильное ли это решение? Успешно ли реализуется шаблон в целом? Какие могут возникнуть проблемы, и почему использование оператора async может оказаться не самой лучшей идеей? В своём докладе я расскажу, почему асинхронная модель далека от совершенства. Я затрону проблемы, связанные с глобальными состояниями (global state), обработкой исключений, взаимными блокировками (дедлоками) и сборкой мусора. Я объясню, почему механизм разрабатывали, игнорируя важнейшие принципы программирования, и покажу, как много в нём проблемных мест. Уровень сложности: средний. Требуется базовое знание sync/await. Адам работает инженером-программистом почти 10 лет. На данный момент он занимается большими данными, фреймворком Spark и машинным обучением в Amazon. Ему всегда было интересно копать глубже, изучать машинный код и разбираться в особенностях реализации ПО, чтобы лучше понимать устройство технологий, которые он использует каждый день. Поэтому Адаму нравится отлаживать, декомпилировать и дизассемблировать код — это позволяет разобраться в моделях управления памятью, проблемах параллельного выполнения кода и других нюансах, которые скрыты внутри кода. В свободное время Адам играет в пинг-понг, смотрит фильмы Вуди Аллена и публикует статьи на http://blog.adamfurmanek.pl. Презентация на Я.Диске: https://disk.yandex.ru/i/vmTMSOXE1Ftw8A DotFest: https://2020.dotfest.ru
