Когда выбирать ValueTask вместо Task, и какие у него ловушки?
Берите ValueTask, если бóльшая часть вызовов завершается синхронно (кэш, короткие I/O) и вы реально снижаете аллокации; иначе Task проще и часто не медленнее.
Не публикуйте ValueTask без нужды в широких API: потребители могут ждать результат несколько раз или кешировать его — для ValueTask это некорректно (повторное ожидание допустимо только после преобразования в Task).
Если нужно ждать более одного раза или хранить результат, конвертируйте один раз в Task через AsTask() и работайте с ним.
Это структура: может содержать либо значение, либо ссылку на источник (IValueTaskSource). Ошибки владения/повторного ожидания ведут к Undefined Behavior.
В композиции (WhenAll/WhenAny, LINQ over Tasks, сторонние библиотеки) часто всё равно произойдёт аллокация или боксинг — выигрыш исчезает.
Исключения/отмена ведут себя как у Task, но повторное ожидание после ошибки у ValueTask недопустимо.
Типичный кейс: горячие пути ASP.NET Core/парсеры/кэш — измерения показывают пользу; для остального оставляйте Task ради простоты и устойчивости.
🐸 Библиотека собеса по С#
Не публикуйте ValueTask без нужды в широких API: потребители могут ждать результат несколько раз или кешировать его — для ValueTask это некорректно (повторное ожидание допустимо только после преобразования в Task).
Если нужно ждать более одного раза или хранить результат, конвертируйте один раз в Task через AsTask() и работайте с ним.
Это структура: может содержать либо значение, либо ссылку на источник (IValueTaskSource). Ошибки владения/повторного ожидания ведут к Undefined Behavior.
В композиции (WhenAll/WhenAny, LINQ over Tasks, сторонние библиотеки) часто всё равно произойдёт аллокация или боксинг — выигрыш исчезает.
Исключения/отмена ведут себя как у Task, но повторное ожидание после ошибки у ValueTask недопустимо.
Типичный кейс: горячие пути
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое ViewState?
ViewState — это функция ASP.NET для сохранения значений страницы перед ее отправкой на сервер. После публикации страницы данные из ViewState восстанавливаются.
🐸 Библиотека собеса по С#
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Задача с собесеседования
Недавно в одном известном всем банке кандидату была предложена задача:
Вероятности, распределения, матожидание, градиенты — всё это может всплыть на интервью, и даже в продовых задачах.
🎓 Proglib запускает экспресс-курс «Математика для Data Science» — для тех, кто хочет закрыть эти пробелы и понять математику быстро, качественно и без боли.
🔍 На курсе вас ждет:
— линейная алгебра, анализ, теория вероятности и статистика;
— градиенты, матрицы и экстремумы функций;
— математики и алгоритмы машинного обучения;
— много практики.
📅 Старт: 6 ноября
⏰ Формат: 10 вебинаров и 3 практических проекта
💬 Поддержка: менторы + Telegram-чат
💰 Стоимость: 37 000 ₽ (есть рассрочка)
🔗 Узнать больше и записаться
Недавно в одном известном всем банке кандидату была предложена задача:
Есть клиент, который за месяц делает 1000 транзакций.
Нужно посчитать вероятность того, что среди них окажется хотя бы одна дублирующаяся сумма, если каждая сумма округляется до 2 знаков после запятой.
Вероятности, распределения, матожидание, градиенты — всё это может всплыть на интервью, и даже в продовых задачах.
🎓 Proglib запускает экспресс-курс «Математика для Data Science» — для тех, кто хочет закрыть эти пробелы и понять математику быстро, качественно и без боли.
🔍 На курсе вас ждет:
— линейная алгебра, анализ, теория вероятности и статистика;
— градиенты, матрицы и экстремумы функций;
— математики и алгоритмы машинного обучения;
— много практики.
📅 Старт: 6 ноября
⏰ Формат: 10 вебинаров и 3 практических проекта
💬 Поддержка: менторы + Telegram-чат
💰 Стоимость: 37 000 ₽ (есть рассрочка)
🔗 Узнать больше и записаться
❤1😁1
В чем разница между переменными объектного типа и переменными динамического типа в C#?
Динамические и объектные переменные имеют схожую функцию. Переменные объектного типа проверяют тип во время компиляции, тогда как динамические переменные — во время выполнения.
🐸 Библиотека собеса по С#
Please open Telegram to view this post
VIEW IN TELEGRAM
😵💫 Устал от бесконечной подготовки к собесам?
Тогда залетай к нам, есть задачка попроще.
Пройди в нашем боте мини-тест по математике и узнай, готов ли ты к Data Science или стоит что-то подтянуть.
📱 Перейти в бота
Тогда залетай к нам, есть задачка попроще.
Пройди в нашем боте мини-тест по математике и узнай, готов ли ты к Data Science или стоит что-то подтянуть.
📱 Перейти в бота
Как спроектировать архитектуру мобильной игры в Unity, чтобы удерживать стабильные 60 FPS при тысячах активных сущностей и уметь выкатывать контент без обновления клиента (через CDN), при этом минимизируя аллокации и времена загрузок?
Симуляцию вынести в ECS/DOTS с Jobs+Burst и фиксированным тиками, рендер отделить через Hybrid Renderer; для остального — агрегировать поведение в небольшое число систем вместо тысяч Update(). Память держать под контролем: NativeArray/пулы, адресная загрузка через Addressables с remote catalog, хэшами и версионированием на CDN, всё асинхронно с бюджетами времени кадра и пределами concurrent загрузки. Мир стримить аддитивно через Subscenes и пред-бейк, ассеты ужимать (ASTC/ETC2, LOD/mesh compression), шейдер-варианты резать. На сборке — IL2CPP, managed/code stripping, отключённые подробные исключения. Профилировать и регрессии ловить в CI (Profiler, Memory Profiler, Frame Debugger), целититься в бюджеты: CPU ≤ 6–8 мс, render ≤ 6–8 мс, загрузка — мелкими батчами без спайков GC.
🐸 Библиотека собеса по С#
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Новый курс «Математика для Data Science»
Записывайтесь до 19.10 и получите бонус-курс «Школьная математика» для быстрого освежения знаний! 🚀
🧠 Эксперты-спикеры на курсе:
▫️ Диана Миронидис — преподаватель ВШЭ, автор Яндекс Практикума;
▫️ Ксения Кондаурова — преподаватель Центрального Университета (Т-Банк);
▫️ Маргарита Бурова — академический руководитель программ Wildberries & Russ.
👉🏻 Не упустите шанс улучшить свои навыки
Записывайтесь до 19.10 и получите бонус-курс «Школьная математика» для быстрого освежения знаний! 🚀
🧠 Эксперты-спикеры на курсе:
▫️ Диана Миронидис — преподаватель ВШЭ, автор Яндекс Практикума;
▫️ Ксения Кондаурова — преподаватель Центрального Университета (Т-Банк);
▫️ Маргарита Бурова — академический руководитель программ Wildberries & Russ.
👉🏻 Не упустите шанс улучшить свои навыки
Что такое конструктор?
Конструктор — это особый тип функциональных членов класса, который имеет одно и то же имя, что и класс. Он автоматически вызывается всякий раз, когда создается новый экземпляр объекта класса, и этот процесс также вызывает элементы данных класса. Это может включать передачу параметров в конструктор класса, если он параметризован.
🐸 Библиотека собеса по С#
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1
💥 Математика, которая не «для галочки»
Разработали курс «Математика для Data Science» специально для вас — чтобы закрыть все пробелы в математике и уверенно пройти любое собеседование на позицию Data Scientist.
🧠 За 2 месяца ты разберёшь:
➡️ линейную алгебру — работа с векторами и матрицами, их разложения, собственные значения и обратные матрицы;
➡️ мат. анализ — пределы, производные, экстремумы, применение градиентного спуска;
➡️ теорию вероятностей и статистику — случайные величины, распределения, статистические гипотезы, A/B-тесты;
➡️ математику в ML и аналитике — как использовать всё это в алгоритмах, логистической регрессии, методах ближайших соседей, байесовских подходах.
📚 Формат: 10 вебинаров, 3 практических проекта, тесты и чат с менторами.
🔥 При оплате до 19 октября получите курс по базовой математике в подарок.
🔗 Записаться на курс
Разработали курс «Математика для Data Science» специально для вас — чтобы закрыть все пробелы в математике и уверенно пройти любое собеседование на позицию Data Scientist.
🧠 За 2 месяца ты разберёшь:
➡️ линейную алгебру — работа с векторами и матрицами, их разложения, собственные значения и обратные матрицы;
➡️ мат. анализ — пределы, производные, экстремумы, применение градиентного спуска;
➡️ теорию вероятностей и статистику — случайные величины, распределения, статистические гипотезы, A/B-тесты;
➡️ математику в ML и аналитике — как использовать всё это в алгоритмах, логистической регрессии, методах ближайших соседей, байесовских подходах.
📚 Формат: 10 вебинаров, 3 практических проекта, тесты и чат с менторами.
🔥 При оплате до 19 октября получите курс по базовой математике в подарок.
🔗 Записаться на курс
Разница между LINQ lazy loading и eager loading
В случае lazy loading зависимые таблицы (дочерние объекты) не загружаются автоматически с родительскими, а загрузятся в тот момент, когда они понадобятся. В LINQ по умолчанию используется lazy loading.
В случае eager loading зависимые объекты загружаются автоматически с родительской таблицей. Для того, чтобы использовать eager loading, нужно применить метод Include().
🐸 Библиотека собеса по С#
В случае lazy loading зависимые таблицы (дочерние объекты) не загружаются автоматически с родительскими, а загрузятся в тот момент, когда они понадобятся. В LINQ по умолчанию используется lazy loading.
В случае eager loading зависимые объекты загружаются автоматически с родительской таблицей. Для того, чтобы использовать eager loading, нужно применить метод Include().
Please open Telegram to view this post
VIEW IN TELEGRAM
🧠 Математика — движок всего, что мы пишем
Без неё не было бы сортировок, шифрования, графов и даже того самого if с вероятностью успеха в A/B-тесте.
Но главное, математика понятна, если объяснить её на языке разработки.
📘 Курс «Математика для Data Science»:
— от основ до реальных задач из собесов;
— линейная алгебра, статистика, теория вероятностей;
— визуализации, практика и живые уроки;
— поддержка менторов и комьюнити в чате.
🎓 За 2 месяца вы перестанете просто использовать библиотеки и начнёте понимать, как они работают.
🗓️ Старт → 6 ноября
👉 Записаться на курс
Без неё не было бы сортировок, шифрования, графов и даже того самого if с вероятностью успеха в A/B-тесте.
Но главное, математика понятна, если объяснить её на языке разработки.
📘 Курс «Математика для Data Science»:
— от основ до реальных задач из собесов;
— линейная алгебра, статистика, теория вероятностей;
— визуализации, практика и живые уроки;
— поддержка менторов и комьюнити в чате.
🎓 За 2 месяца вы перестанете просто использовать библиотеки и начнёте понимать, как они работают.
🗓️ Старт → 6 ноября
👉 Записаться на курс
🥱1
Опишите разницу между оператором равенства (==) и методом Equals() в C#?
Оператор == и метод Equals() сравнивают два элемента данных типа значения или элемента данных ссылочного типа. Оператор равенства (==) является оператором сравнения, а метод Equals() сравнивает содержимое строки. Оператор == сравнивает ссылочную идентичность, тогда как метод Equals() сравнивает только содержимое.
Библиотека собеса по С#
Библиотека собеса по С#