Comments 16
Шел 2026й год...
Че там кстати, кто-нибудь успел пощупать async runtime в preview?
А самое главное, что в .Net 11 это перестаёт быть "синтаксическим сахаром" и становится "родной асинхроностью среды выполнения" (подробности тут https://learn.microsoft.com/ru-ru/dotnet/core/whats-new/dotnet-11/runtime#runtime-async или тут https://www.youtube.com/watch?v=8Gl2RmUV0hg), так что все эти сакральные знания "во что компилируется код async/await" перестают быть такими однозначными.
действительно, и до сих пор достаточно сложно найти информации про "под капотом". даже в 2026 кто-то да начнет изучать C# с нулем знаний, поэтому не будет лишним)
Таких статей тут уже штук 5. Неужели вы думаете что ваша копипаста несёт какую-то ценность ?
Алексей, давайте по справедливости, проверьте в Google или в Яндексе по запросу:
site:habr.com "Ranjeet Singh"
или даже по уникальному фрагменту кода:
site:habr.com "awaiter = 5__1.GetStringAsync("https://msdn.microsoft.com\").GetAwaiter();"
Если так последнее вбить нигде нет упоминания medium сайта.
site:habr.com "https://medium.com/@ranjeetdotme/how-async-await-works-in-c-eccf16bd3b90"
Я специально проверял.
Поэтому странно видеть обесценивание чужих трудов. Человек просто взял и перевел полезный материал - с инициативой и интересом к теме(раскрасил даже более красиво диаграмму, чем у ориг.автора). Не высказал своего мнения, просто перевел статью.
Не каждая статья обязана быть полезной senior и middle разработчикам и то даже в работе младших разработчиком можно найти полезности(обычно Senior/Middle специалисты в этом не признаются, ЭГО слишком велико).
Судя по реакции и закладкам, материал нашёл свою аудиторию. Дарья - junior-разработчик, который пытается разбираться в теме и делиться знаниями. Такой энтузиазм обычно хочется поддерживать, а не отбивать токсичными комментариями.
Вообщем я вас не поддерживаю в данном вопросе.
С одной стороны надо это конечно повторять это периодически, с другой стороны это не новость.
А еще итераторы (IEnumerator в C#) это тоже конечные автоматы.
Но надо сказать, что нет смысла концентрироваться на том, что это конечные автоматы, потому что они довольно вырожденные.
Важно тут то, что метод по сути превращается в объект, который хранит состояние метода, текущий шаг и кусочки функции, чтобы вернуться к ним позже.
Таким образом для пользователя он выглядит как линейный а для программы - с разрывами.
Решение действительно на удивление простое и элегантное.
Дарья, я понимаю, что вы перевели статью, но:
1) не правильно вставили ссылку на sharplab(нажмите CreateGist там)*
Вы же делаете статью для других, а красота в мелочах
2) Я кстати тоже разбирал state machine, ток опорой в ней была библиотека MassTransit и SagaStateMachine сравнивал с AsyncStateMachine - https://habr.com/ru/articles/1033712/#mt14
Рекомендую посмотреть.
3) И не используйте длинные "-" т.е "—" т.к это слишком сильно любит ИИ(в том числе он любит фантомить). Утверждать, что это ИИ не стану т.к в оригинальной статье данные тире есть, но это сразу бросаетсяв глаза.
В любом случае лайк уж поставлю за отсылку к оригинальной статье и за распространение в РУ сегменте(я об этой статье незнал даже, ведь как то из уст в уста информация бегает) - вполне себе полезно(как ссылка на другие источники), удачи вам!
Спасибо за ваши замечания, добрый человек :)
длинное тире ставит "типограф" редактора текста хабра (волшебная палочка при выделении текста)
Вводная часть
Я в первую очередь обратил внимание на ваш профиль - вы написали, что являетесь младшим специалистом в backend-разработке. Поэтому на будущее хочу сказать следующее.
Токсичность
На токсичность некоторых ребят просто не обращайте внимания - это ещё вполне адекватная публика(с долькой иронии и юмора, что вполне даже здорово). В IT-сообществе, к сожалению, хватает токсичных людей.
Люди часто ждут от статьи чего-то «взрывного» и необычного, не задумываясь о том, что за любым материалом стоят чей-то опыт, время и труд. Для кого-то описанные вещи могут быть очевидными, а для кого-то - действительно полезными и новыми.
При этом каждая опубликованная статья - это ещё и определённая конкуренция на рынке за те же вакансии. Человек делится своими знаниями, хотя мог бы оставить их при себе.
Ирония в том, что такой труд далеко не всегда бывает благодарным: работодателям порой всё равно, сколько сил ты вложил в статьи, open source или обучение других людей.
К тому же многие вообще не зарегистрированы на Хабре - они просто читают материалы без лайков, комментариев и какой-либо обратной связи. Поэтому по реакции под статьёй не всегда можно объективно судить о её реальной пользе.
Опыт близкого окружения
У меня есть друг - Senior-разработчик, сильный специалист. После одной статьи ему столько негатива и «помидоров» накидали, что, как он сам говорил, желание публиковаться на Хабре пропало совсем.
Хотя он парень действительно умный: работал в одном из крупнейших банков России.
Понимаю о чем вы говорите, поэтому стараюсь думать о тех, кто только начал свой путь, либо уже находятся на нем, но не активны в таких кругах. Например мои добрые коллеги, которым я много обязана в своих знаниях. В наших с вами силах разбавлять токсичную среду, очень рада, ведь у вас это правда получается)
Async/Await в C# это синтаксический сахар для конечного автомата