ru
Feedback

Не попадитесь на канал ботавода! Telemetrio находит и помечает такие каналы 👉 Хотите видеть метку — оформите подписку

Библиотека собеса по C# | вопросы с собеседований

Библиотека собеса по C# | вопросы с собеседований

Открыть в Telegram

Вопросы с собеседований по C# и ответы на них. По рекламе: @tproger_sales_bot Учиться у нас: https://clc.to/QRJIVw Для обратной связи: @proglibrary_feeedback_bot Наши каналы: https://t.me/proglibrary/9197

Больше
5 637
Подписчики
+224 часа
+27 дней
-1430 дней
Архив постов
⚡️⚡️Актуальные темы .NET на DotNext 2026 В .NET одновременно происходит много интересного: C# получает новые возможности, .NE
+4
⚡️⚡️Актуальные темы .NET на DotNext 2026 В .NET одновременно происходит много интересного: C# получает новые возможности, .NET 10 меняет расклад между Native AOT и JIT, а в разработке появляются ИИ-агенты, которые берут на себя часть инженерной работы. На DotNext 2026 разберем как вещи, которые происходят на уровне машинного кода, так и вполне прикладные вопросы архитектуры и разработки. 📅 25–26 сентября, Москва + online Выбрали 8 тем из программы, среди которых не только доклады, но и хардкорный воркшоп, чтобы показать этот диапазон: — как заставить Transactional Outbox одновременно быть строгим и параллельным; — зачем ASP.NET Core модульный монолит и как собрать его без микросервисов; — где Native AOT выигрывает у JIT в .NET 10; — что происходит с циклами, inlining и bounds checks в C# и Go; — как меняется SDLC, когда в команде появляются ИИ-агенты; — что принесут discriminated unions в C# 15; — как проектировать асинхронное взаимодействие в распределенных системах (воркшоп). Все подробности — в карточках и на сайте конференции. 🌟По промокоду csharpinterview — персональные билеты дешевле → Программа DotNext → Купить билет

ASP.NET Core API под нагрузкой: как сделать сервис устойчивым к сбоям и росту трафика Пока пользователей немного, ASP.NET Cor
ASP.NET Core API под нагрузкой: как сделать сервис устойчивым к сбоям и росту трафика Пока пользователей немного, ASP.NET Core API обычно работает быстро и без ошибок. Но с ростом нагрузки начинают проявляться проблемы: отдельные запросы занимают все доступные ресурсы, повторные обращения только увеличивают нагрузку, операции продолжают выполняться даже после отключения клиента, а ошибки во внешних сервисах могут привести к каскадным отказам. На открытом уроке 3 сентября в 20:00 разберём, как защитить ASP.NET Core API от подобных ситуаций. Возьмём сервис с типичными проблемами, проведём нагрузочное тестирование, найдём узкие места и поэтапно внедрим механизмы защиты. После каждого изменения сравним результаты и посмотрим, как они влияют на время ответа, пропускную способность и количество ошибок. Поговорим о Rate Limiting, контроле числа одновременно выполняемых запросов, использовании CancellationToken, паттернах Timeout и Circuit Breaker для внешних сервисов, а также о кешировании в Redis и о том, как избежать ситуации, когда повторные попытки только усиливают перегрузку системы. Урок не для тех, кто только начал знакомство с ASP.NET Core и хочет изучить базовый синтаксис. Будет полезен C#-разработчикам, создающим Web API, backend-инженерам, столкнувшимся с ростом нагрузки, и всем, кто хочет перейти от базового использования ASP.NET Core к production-практикам. После урока вы будете понимать не только какие механизмы доступны в ASP.NET Core, но и когда их стоит применять, чтобы API оставался стабильным даже при высокой нагрузке. 👉 Записаться Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Долгоживущий .NET-сервис постепенно “распухает” по памяти без явных LOH-пиков. В дампе видно множество делегатов/лямбд, Timer и CancellationTokenRegistration, висящих в Gen2. Как диагностировать и устранить утечки из-за событий/таймеров/регистраций? Проанализировать пути до корней (dotMemory/PerfView/dotnet-dump gcroot) — проверить коллекции подписчиков и списки делегатов у источников событий. Убедиться, что: ✍🏻 все подписки снимаются в Dispose/IAsyncDisposable; ✍🏻 CancellationToken.Register хранит IDisposable и корректно Dispose(); ✍🏻 Timer/PeriodicTimer/System.Threading.Channels закрываются/завершаются; ✍🏻 не удерживаются замыканиями большие объекты/this. При необходимости — слабые события/WeakReference, паттерн “own the lifetime”, и тест “утечек” в CI с сравнением heap-снимков. Библиотека собеса по С#

👅 Самое сложное — выбрать не курс, а направление Сегодня хочется разобраться в AI-агентах. Через пару недель появляется зада
👅 Самое сложное — выбрать не курс, а направление Сегодня хочется разобраться в AI-агентах. Через пару недель появляется задача, где нужны алгоритмы. Потом понимаешь, что неплохо бы освежить Python или математику для Data Science. 🔜 Именно поэтому подписка на обучение многим оказывается удобнее отдельных курсов. Можно спокойно переключаться между темами, когда меняются задачи, а не покупать новую программу каждый раз.
В подписку Proglib Academy входят все основные направления — AI, ML, Python, алгоритмы, математика для DS и другие курсы, а ещё закрытый видеохаб с вебинарами практиков.
Начать можно с пробного месяца. Если решите остаться, его стоимость зачтётся при оформлении подписки 😎 🔗 Узнать подробнее 🏃‍♀️ Proglib Academy

Покупать новый курс каждый раз, когда меняется рабочая задача, — довольно странная механика. Нашли альтернативу 👇

Разница между LINQ lazy loading и eager loading В случае lazy loading зависимые таблицы (дочерние объекты) не загружаются автоматически с родительскими, а загрузятся в тот момент, когда они понадобятся. В LINQ по умолчанию используется lazy loading. В случае eager loading зависимые объекты загружаются автоматически с родительской таблицей. Для того, чтобы использовать eager loading, нужно применить метод Include(). 🐸Библиотека собеса по С#

Как устроить высокопроизводительную сериализацию JSON без лишних аллокаций? Реюзайте один JsonSerializerOptions (кешируйте статически), используйте System.Text.Json с Utf8JsonWriter/IAsyncEnumerable<T> для стриминга, избегайте промежуточных строк, включайте source-generators (JsonSerializerContext) вместо рефлексии, буферизуйте через ArrayPool<byte> и пишите напрямую в PipeWriter/BodyWriter. Библиотека собеса по С#

AI-инструменты уже умеют быстро писать код, но для C#-разработчика это не отменяет экспертизу, а делает её важнее. Теперь нуж
AI-инструменты уже умеют быстро писать код, но для C#-разработчика это не отменяет экспертизу, а делает её важнее. Теперь нужно не просто получить подсказку от ассистента, а понять, где она корректна, где скрывает ошибку и какие последствия принесёт в .NET-приложении. 5 августа в 20:00 МСК на открытом вебинаре OTUS разберём, как использовать AI так, чтобы становиться сильнее как C#-разработчик, а не зависеть от автогенерации. Покажем, где AI действительно ускоряет работу Middle/Senior: рефакторинг, генерация тестов, разбор legacy-кода, объяснение стектрейсов и поиск направлений для улучшения. Отдельно посмотрим на зоны, где ассистенты часто ошибаются: потокобезопасность, работа с IDisposable, производительность LINQ, тонкости DI и конфигурации. Разберём, как ревьюить AI-код, формулировать запросы под задачи C#-разработчика и выстраивать workflow, где AI усиливает компетенции, а не заменяет понимание CLR, сборки мусора, многопоточности и архитектурных паттернов. Урок проходит в преддверии старта курса «C#-разработчик. Продвинутый уровень». 👉 Регистрируйтесь: https://clc.to/pjxR6g Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

🎯 У разработчика, DevOps-инженера и техлида разные причины задуматься о системной работе с AI-агентами Но цель одна: перейти
🎯 У разработчика, DevOps-инженера и техлида разные причины задуматься о системной работе с AI-агентами Но цель одна: перейти от случайных удачных запусков к управляемому процессу на реальном проекте — с понятными правилами, ревью, контролем расходов и безопасности ✔️ На курсе «ИИ для разработчиков» участники выстраивают такой процесс на практике: подключают инструменты, задают границы для агента и учатся понимать, где ему можно доверять работу, а где требуется проверка. ⚡️ Предзапись на осенний поток уже открыта 🏃‍♀️ Proglib Academy

Разработчику нужен стабильный результат, DevOps — контроль инфраструктуры, техлиду — правила для всей команды. Собрали это в одном посте 👇

Что такое асинхронные потоки в C#? Асинхронные потоки в C# — это языковая функция, представленная в C# 8.0, которая позволяет вам потреблять асинхронные последовательности данных асинхронно. Они объединяют возможности async/await и IEnumerable/IAsyncEnumerable для обеспечения эффективной и удобной обработки асинхронных потоков данных. Библиотека собеса по С#

Напишите особенности обобщений на C#? Generics — это метод, который улучшает ваши программы во многих отношениях, например: Он помогает вам в повторном использовании кода, производительности и безопасности типов. Вы можете создавать собственные универсальные классы, методы, интерфейсы и делегаты. Вы можете создавать универсальные классы коллекций. Библиотека классов .NET Framework содержит много новых универсальных классов коллекций в пространстве имен System.Collections.Generic. Вы также можете получить информацию о типах, используемых в универсальных типах данных во время выполнения. Библиотека собеса по С#

У вас в проекте есть файл вроде utils_v2_final_FIX.py, который все боятся трогать ❓ Что делаете с таким легаси? ❤️ Не трогаю:
У вас в проекте есть файл вроде utils_v2_final_FIX.py, который все боятся трогать ❓ Что делаете с таким легаси? ❤️ Не трогаю: работает — и ладно 👍 Переписываю с нуля и надеюсь на лучшее 🔥 Сначала покрываю тестами, потом рефакторю по частям 👾 У нас такого нет — честно-честно На курсе «ИИ для разработчиков» разберём третий подход: как с помощью агента зафиксировать текущее поведение легаси-кода тестами, а затем менять его небольшими безопасными шагами — без одного огромного PR на тысячу файлов. До 31 июля действует скидка и бессрочный доступ к материалам. 🔗 Занять место со скидкой 🏃‍♀️ Proglib Academy

Когда название файла уже само по себе считается техническим долгом 👇

Когда выбирать System.IO.Pipelines вместо Stream, и что важно для корректного парсинга? Для высокопроизводительных протоколов/сокетов: PipeReader выдаёт ReadOnlySequence<byte> без копий, парсите инкрементально, учитывайте частичные сообщения, управляйте backpressure через AdvanceTo(consumed, examined), не требуйте непрерывной памяти, корректно завершайте Complete() и прокидывайте CancellationToken. Библиотека собеса по С#

📈 Скоро фраза «умею пользоваться AI» в резюме будет звучать так же странно, как сегодня «умею пользоваться Git» Это просто с
📈 Скоро фраза «умею пользоваться AI» в резюме будет звучать так же странно, как сегодня «умею пользоваться Git» Это просто станет частью профессии. А вот умение встроить AI в процесс разработки так, чтобы он действительно ускорял работу команды, останется конкурентным преимуществом 💡 🔜 На курсе «ИИ для разработчиков» участники работают со своими проектами и учатся делать AI частью ежедневной разработки: планировать задачи, писать код, проверять изменения, готовить PR и автоматизировать рутину. До конца июля действует специальная цена — 59 990 ₽ вместо 79 990 ₽ 🥳 И получить бессрочный доступ ко всем материалам курса. 🔗 Посмотреть, как устроен курс 🏃‍♀️ Proglib Academy

😏 До конца июля сохраняются две приятные вещи: специальная цена и бессрочный доступ к материалам курса. Подробнее — в посте 👇

Как бы вы объяснили разницу между Repeater и ListView? Элемент управления Repeater является производным от класса Control. Повторитель просто повторяет данные, указанные в шаблонах. Повторяющиеся данные обычно представляют собой HTML-код, смешанный с записями из источников данных. Вывод Repeater не предопределен. Из-за этого Repeater требует больше всего работы для определения шаблона. Взамен он дает нам наибольшую гибкость для построения макета и оптимизации представления. С тем же шаблоном и тем же набором данных Repeater обычно работает быстрее, чем элементы управления Data List или GridView. Это в основном из-за класса DataReader, который используется для доступа только для чтения. DataReader быстрее, чем классы DataSet или DataTable, обычно используемые с GridView. По сравнению с элементами управления GridView и DataList, Repeater имеет ограниченные возможности. По умолчанию Repeater хорош для отображения данных. Это не лучший выбор, если вам нужно редактировать данные. Кроме того, по умолчанию он не обеспечивает разбиение на страницы и сортировку записей. Элемент управления ListView — это новейший элемент управления представлением данных, представленный в ASP.NET 3.5. Предыдущие элементы управления (Repeater, DataList и GridView) логически следуют друг за другом. Например, Repeater — самый простой, но быстрый, затем DataList имеет больше функций, но и больше накладных расходов, и, наконец, GridView — самый сложный, имеет больше функций, но самый тяжелый и, следовательно, самый медленный на странице. Теперь есть новый элемент управления ListView, который пытается предоставить лучшее с обеих сторон: скорость и гибкость в дизайне, а также множество функций, таких как разбиение на страницы, обновление или удаление записей и т. д. Из-за этого элемент управления ListView часто является лучшим выбором, чем Repeater или DataList. Библиотека собеса по С#

Как бы вы настроили систему диалогов для NPC в Unity? Для настройки диалоговой системы для NPC в Unity можно следовать следующим шагам: 1. Определение структуры диалога: Создайте структуру данных для хранения диалогов. Это может быть класс или структура, содержащая текст диалога, варианты ответов и ссылки на следующие реплики. 2. Создание интерфейса: Разработайте пользовательский интерфейс для отображения диалогов. Используйте UI элементы, такие как текстовые поля для отображения реплик и кнопки для выбора ответов. 3. Скрипт NPC: Напишите скрипт для NPC, который будет инициировать диалог при взаимодействии с игроком. Этот скрипт должен загружать соответствующий диалог из вашей структуры данных. 4. Система управления диалогом: Создайте класс, который будет управлять логикой диалога. Он должен обрабатывать выбор игрока, обновлять текст на экране и переходить к следующей реплике. 5. Сохранение и загрузка диалогов: Если диалоги сложные, можно использовать JSON или Scriptable Objects для хранения и загрузки данных диалога. 6. Тестирование и доработка: Протестируйте систему, чтобы убедиться, что все работает корректно, и внесите необходимые изменения для улучшения взаимодействия. Эти шаги помогут вам создать базовую диалоговую систему для NPC в Unity. 🐸Библиотека собеса по С#

😸 Каждый разработчик подходит к задаче со своим опытом: помнит прошлые решения, знает ограничения проекта и понимает, какой
😸 Каждый разработчик подходит к задаче со своим опытом: помнит прошлые решения, знает ограничения проекта и понимает, какой код команда пропустит на ревью. Для человека это естественная часть работы. У Claude Code этого контекста по умолчанию нет — только задача и инструкции, которые ему дали.
Поэтому в большой команде недостаточно просто выбрать хорошую модель. ❗️ Нужно ещё объяснить ей, как у вас устроена разработка: какие подходы приняты, что обязательно проверять и по каким правилам принимать решения.
🗓 23 июля в 19:00 МСК поговорим об этом на бесплатном вебинаре с Алексеем Жиряковым — он Executive Director в Сбере, руководит GenAI Data Platform, и с этой проблемой сталкивался не раз 🔥 Покажет живое демо, разберём, как встроить AI в процесс разработки так, чтобы он реально помогал, а не добавлял ещё один повод для споров на ревью. 🔗 Занять место на вебинаре 🏃‍♀️ Proglib Academy