Когда выбирать System.IO.Pipelines вместо Stream, и что важно для корректного парсинга?
Для высокопроизводительных протоколов/сокетов: PipeReader выдаёт ReadOnlySequence<byte> без копий, парсите инкрементально, учитывайте частичные сообщения, управляйте backpressure через AdvanceTo(consumed, examined), не требуйте непрерывной памяти, корректно завершайте Complete() и прокидывайте CancellationToken.
Библиотека собеса по С#
Библиотека собеса по С#
Как диагностировать в проде thread pool starvation и «sync-over-async» без перезапуска?
Снимайте EventPipe-метрики (dotnet-counters): ThreadPool Queue Length/Completed/Active, aspnetcore-критерии; берите короткий dotnet-trace CPU-сэмплинг, при необходимости дамп. Признаки — длинная очередь, мало воркеров, блокирующие стеки. Лечение: end-to-end async, убрать .Result/.Wait(), вынести долгие блокировки, при пиках поднять MinThread, но не маскировать корень.
Библиотека собеса по С#
Библиотека собеса по С#
🖤 ЧЕРНАЯ ПЯТНИЦА: СКИДКА 40%
Что общего между Black Friday и подготовкой к собесам? Оба случаются раз в год, и оба нельзя пропустить! 😎
🔥 Курсы со скидкой 40% до конца ноября:
🐍 Python
📐 Математика
🤖 AI
🔢 Алгоритмы и структуры
Пока другие покупают кофемашины и телевизоры, инвестируй в себя📈
Что общего между Black Friday и подготовкой к собесам? Оба случаются раз в год, и оба нельзя пропустить! 😎
🔥 Курсы со скидкой 40% до конца ноября:
🐍 Python
📐 Математика
🤖 AI
🔢 Алгоритмы и структуры
Пока другие покупают кофемашины и телевизоры, инвестируй в себя📈
Как проектировать высокопроизводительные API без копий с Span<T>/ReadOnlySpan<T>?
Принимайте вход как ReadOnlySpan<T>/Span<T>, возвращайте данные через ReadOnlyMemory<T>/Memory<T> для async-границ, избегайте удержания Span вне стека, используйте ref readonly/scoped где уместно, не создавать лишних строк/массивов, использовать пулы буферов и инкрементальный парсинг/запись.
Библиотека собеса по С#
Принимайте вход как ReadOnlySpan<T>/Span<T>, возвращайте данные через ReadOnlyMemory<T>/Memory<T> для async-границ, избегайте удержания Span вне стека, используйте ref readonly/scoped где уместно, не создавать лишних строк/массивов, использовать пулы буферов и инкрементальный парсинг/запись.
Библиотека собеса по С#
Как ускорить EF Core под высокую нагрузку без лишних аллокаций и N+1?
Для чтения — AsNoTracking и проекции Select на DTO, избегайте широких Include; используйте compiled queries и параметризацию, дробите кардинальность AsSplitQuery, для массовых правок — ExecuteUpdate/Delete или bulk-библиотеки; объединяйте SaveChanges, держите DbContext краткоживущим (скоуп) и следите за N+1 через логирование.
Библиотека собеса по С#
Библиотека собеса по С#
📊 Задача с собеседования
Если не понимаете с какой стороны подступиться к задаче, то пора подтянуть математику.
🎓 Именно этому посвящен курс экспресс-курс «Математика для Data Science» от Proglib Academy:
— работа с векторами и матрицами;
— линейная регрессия и метод наименьших квадратов;
— вероятности, распределения, статистика;
— и многое другое.
⏳ Старт: 4 декабря
🔥 Скидка: 40% до конца ноября
👉 Подключиться к курсу
Имеются данные о продажах за последние 12 месяцев. Требуется оценить наличие линейной зависимости между количеством заключённых сделок и объёмом выручки, а также построить прогноз выручки при достижении 150 сделок.
Если не понимаете с какой стороны подступиться к задаче, то пора подтянуть математику.
🎓 Именно этому посвящен курс экспресс-курс «Математика для Data Science» от Proglib Academy:
— работа с векторами и матрицами;
— линейная регрессия и метод наименьших квадратов;
— вероятности, распределения, статистика;
— и многое другое.
⏳ Старт: 4 декабря
🔥 Скидка: 40% до конца ноября
👉 Подключиться к курсу
Как реализовать оптимистическую конкуренцию в EF Core, чтобы избежать потерь обновлений?
Добавьте конкурентный токен (rowversion/[Timestamp]), включите отслеживание и ловите DbUpdateConcurrencyException. При конфликте — стратегию «клиент/сервер побеждает» или мердж полей, затем повтор. Для массовых апдейтов используйте ExecuteUpdate с токеном в WHERE.
Библиотека собеса по С#
Библиотека собеса по С#
❤1
Как корректно освобождать ресурсы в DI, если требуется асинхронный dispose?
Используйте IAsyncDisposable и асинхронные скоупы (await using var scope = provider.CreateAsyncScope()), не блокируйте DisposeAsync() синхронно. Порядок освобождения — обратный порядку регистрации; следите, чтобы зависимые сервисы не переживали свои провайдеры, и не смешивайте Dispose/DisposeAsync без нужды.
Библиотека собеса по С#
Библиотека собеса по С#
Как тестировать код, зависящий от времени/таймеров, без Thread.Sleep и флаки?
Абстрагируйте время через .NET 8 TimeProvider/ITimeProvider и инжектируйте FakeTimeProvider в тестах; используйте PeriodicTimer/Delay от провайдера, продвигая виртуальное время (Advance). Так вы детерминируете ожидания, убираете реальное ожидание и проверяете граничные случаи (таймауты, ретраи, дедлайны) без гонок.
Библиотека собеса по С#
Библиотека собеса по С#
🔥1
Как задавать отмену и таймауты в async-цепочке без ловушек?
Прокидывайте один CancellationToken вниз по стеку; таймауты — через CancellationTokenSource.CancelAfter или Polly Timeout (без вложенных таймаутов); везде передавайте токен в I/O, ловите OperationCanceledException и завершайте работу идемпотентно.
Библиотека собеса по С#
Библиотека собеса по С#
Как безопасно использовать IMemoryCache под нагрузкой, не съев всю память?
Включайте лимит по размеру (SizeLimit) и выставляйте SetSize для записей, задавайте Absolute/Sliding TTL, Priority и PostEvictionCallbacks, используйте single-flight вокруг загрузки, инвалидируйте через IChangeToken/linked tokens, избегайте кэширования исключений и больших объектов без пулинга.
Библиотека собеса по С#
Библиотека собеса по С#
Media is too big
VIEW IN TELEGRAM
🔥 Закрой пробелы в математике за 8 недель
Валишься на вопросах про математику на собесах?
Proglib Academy запускает курс «Математика для Data Science», чтобы помочь тебе получить вакансию мечты!
🔎 Тебя ждут:
→ топовые эксперты, один из них на видео — Мария Тихонова. Мария — кандидат компьютерных наук, руководитель исследовательского направления SberAI, доцент факультета компьютерных наук и преподаватель НИУ ВШЭ;
→ живые вебинары, на которых можно задать вопросы спикерам;
→ доступ к материалам в записи, если не успели на лекцию и чат;
→ 3 задания с практикой на Python и финальный проект с подробной обратной связью от экспертов курса;
→ актуальные знания: программа разработана в ноябре 2025г;
→ программа без воды — 2 месяца только самого нужного для старта.
👉 Пройди короткий тест и узнай свой уровень математики.
Приятные бонусы:
🎁 скидка 40% до 30 ноября;
🎁 оплати до конца ноября → курс «Школьная математика» в подарок.
🔗 Подробнее о курсе
Валишься на вопросах про математику на собесах?
Proglib Academy запускает курс «Математика для Data Science», чтобы помочь тебе получить вакансию мечты!
🔎 Тебя ждут:
→ топовые эксперты, один из них на видео — Мария Тихонова. Мария — кандидат компьютерных наук, руководитель исследовательского направления SberAI, доцент факультета компьютерных наук и преподаватель НИУ ВШЭ;
→ живые вебинары, на которых можно задать вопросы спикерам;
→ доступ к материалам в записи, если не успели на лекцию и чат;
→ 3 задания с практикой на Python и финальный проект с подробной обратной связью от экспертов курса;
→ актуальные знания: программа разработана в ноябре 2025г;
→ программа без воды — 2 месяца только самого нужного для старта.
👉 Пройди короткий тест и узнай свой уровень математики.
Приятные бонусы:
🎁 скидка 40% до 30 ноября;
🎁 оплати до конца ноября → курс «Школьная математика» в подарок.
🔗 Подробнее о курсе
❤1
Как корректно работать с транзакциями в EF Core в async-коде?
Используйте await using var tx = await db.Database.BeginTransactionAsync(); и коммить/роллбек через await tx.CommitAsync()/RollbackAsync(). Избегайте TransactionScope без AsyncFlowOption.Enabled, держите транзакции короткими, задавайте IsolationLevel осознанно и не смешивайте несколько DbContext в одной транзакции без DTC.
Библиотека собеса по С#
Библиотека собеса по С#
❤2
Как версионировать контракты REST/gRPC без ломки клиентов?
Держите толчёрсткие прокаты: параллельно поддерживайте несколько версий и маршрутизацию (URL/заголовок Accept), добавляйте поля только как необязательные, не переименовывайте/не удаляйте сразу. В gRPC не переиспользуйте номера полей, помечайте deprecated, избегайте «ломающих» oneof-перестановок. Реализуйте tolerant readers, договоритесь о семвере и канареечном выпуске.
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека собеса по С#
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека собеса по С#
🤔4
Как сделать устойчивый gRPC streaming-клиент с автопереподключением и контролем потока?
Стримьте через IAsyncEnumerable/WriteAsync в цикле с CancellationToken; при ошибках — экспоненциальный бэкофф с джиттером, лимит ретраев и детект переноса лидера. Включите keepalive/ping, ограничьте конкуренцию записей (SemaphoreSlim), соблюдайте backpressure (await на ResponseStream.MoveNext/WriteOptions), идемпотентно возобновляйте с последнего оффсета.
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека собеса по С#
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека собеса по С#
Как принимать большие загрузки в ASP.NET Core без переполнения памяти и с backpressure?
Стримьте — читайте Request.BodyReader/Body чанками прямо в хранилище, не буферизуйте в память/ReadToEnd. Проверьте/ограничьте размер (Kestrel limits/Content-Length/счётчик байт), применяйте CancellationToken, вычисляйте хеш/сканируйте «на лету», пишите во временный файл с атомарным переименованием. Лимитируйте параллелизм (SemaphoreSlim/очередь), отключите/настройте форм-парсер (multipart — через потоковый MultipartReader), валидируйте тип/мими-тип до сохранения.
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека собеса по С#
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека собеса по С#
❤1
Как построить обработку сообщений с «at-least-once» без дублей?
Делайте обработчик идемпотентным: храните inbox/dedup-таблицу по message-id в одной транзакции с побочным эффектом (outbox/inbox pattern), ретраи — с джиттером и лимитами, «ядовитые» — в DLQ. Ограничивайте параллелизм и, при необходимости, объединяйте по ключу (SemaphoreSlim/Channel).
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека собеса по С#
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека собеса по С#
🔥1
Опишите разницу между оператором равенства (==) и методом Equals() в C#?
Оператор == и метод Equals() сравнивают два элемента данных типа значения или элемента данных ссылочного типа. Оператор равенства (==) является оператором сравнения, а метод Equals() сравнивает содержимое строки. Оператор == сравнивает ссылочную идентичность, тогда как метод Equals() сравнивает только содержимое.
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека собеса по С#
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека собеса по С#
Как избежать утечек памяти из-за событий, таймеров и долгоживущих подписок?
Делайте явный жизненный цикл (IDisposable/IAsyncDisposable) и отписку в Dispose, используйте слабые подписки/WeakReference для долгоживущих паблишеров, не держите лямбды на крупные замыкания, таймеры — с using/Dispose, у BackgroundService корректно обрабатывайте отмену и завершение, в DI избегайте singleton-подписок на scoped-объекты.
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека собеса по С#
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека собеса по С#
👍2
🎄 С Нового года начну учиться — знакомо?
А потом январь — освоюсь после праздников, февраль — доделаю текущие дела... Не откладывай на следующий год то, что можно начать уже в этом.
🗓️ 4 декабря стартует экспресс-курс «Математика для Data Science»— всё, что нужно для уверенных ответов на собесах:
→ 2 месяца без воды;
→ обновлённая программа (ноябрь 2025);
→ живые вебинары с экспертами;
→ записи всех занятий;
→ практика на Python + финальный проект с фидбэком.
Формат: 2 месяца интенсива и к началу следующего года ты готов к собесам.
Пока другие будут собираться с мыслями после НГ, ты уже будешь на полпути к офферу мечты.
🎁 Только до 30 ноября:
→ скидка 40% на курс;
→ курс «Базовая математика» в подарок;
→ бесплатный тест уровня математики.
👉🏻 Хочешь на курс → пиши менеджеру
А потом январь — освоюсь после праздников, февраль — доделаю текущие дела... Не откладывай на следующий год то, что можно начать уже в этом.
🗓️ 4 декабря стартует экспресс-курс «Математика для Data Science»— всё, что нужно для уверенных ответов на собесах:
→ 2 месяца без воды;
→ обновлённая программа (ноябрь 2025);
→ живые вебинары с экспертами;
→ записи всех занятий;
→ практика на Python + финальный проект с фидбэком.
Формат: 2 месяца интенсива и к началу следующего года ты готов к собесам.
Пока другие будут собираться с мыслями после НГ, ты уже будешь на полпути к офферу мечты.
🎁 Только до 30 ноября:
→ скидка 40% на курс;
→ курс «Базовая математика» в подарок;
→ бесплатный тест уровня математики.
👉🏻 Хочешь на курс → пиши менеджеру
Как минимизировать оверхед рефлексии в горячем пути?
Кэшируйте MethodInfo/ConstructorInfo, заранее создавайте делегаты (CreateDelegate), избегайте Invoke в цикле. По возможности используйте source generators/выражения (Expression.Compile() один раз) или ручной код; для JSON — System.Text.Json source-gen. Не выполняйте рефлексию на каждом запросе.
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека собеса по С#
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека собеса по С#