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

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

Ir al canal en Telegram

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

Mostrar más
5 659
Suscriptores
-124 horas
Sin datos7 días
+6230 días
Archivo de publicaciones
Что такое LINQ и как он работает? LINQ (Language Integrated Query) - это функция в C#, которая предоставляет единый способ запроса источников данных, таких как коллекции, массивы, XML-документы и базы данных. Он использует декларативный синтаксис, который позволяет вам выражать запросы более читаемым и кратким образом. var evenNumbers = numbers.Where(x => x % 2 == 0); Библиотека собеса по С#

Вы планируете вернуть из публичного API ValueTask<T> ради снижения аллокаций. Какие риски это несёт для потребителей и как правильно поступить? ValueTask<T> допускает только одно ожидание и плохо сочетается с повторным await/композицией (WhenAll, кеширование результата). Его нельзя хранить в полях и возвращать повторно. В публичных API обычно оставляют Task<T>, а ValueTask<T> используют только на горячих путях, где >90% завершений синхронные; при необходимости многократно ждать/комбинировать — сразу делать .AsTask(). Библиотека собеса по С#

❗ Сегодня премьера В 19:00 МСК стартует бесплатный вебинар с Максимом Шаланкиным — «ИИ-агенты: новая фаза развития искусствен
❗ Сегодня премьера В 19:00 МСК стартует бесплатный вебинар с Максимом Шаланкиным«ИИ-агенты: новая фаза развития искусственного интеллекта». В программе: — почему агенты ≠ чат-боты; — живое демо простого агента; — и как эта тема встроена в курс, который разработан под руководством Никиты Зелинского. Это прямой эфир: подключиться можно через лендинг курса.

В проекте возникают микрофризы при спавне/деактивации множества объектов и подгрузке ассетов во время игры. Как диагностировать и убрать эти GC-спайки без ухудшения качества? Профилировать (Unity Profiler/Deep Profile) и убрать аллокации на горячем пути: вместо Instantiate/Destroy — Object Pooling; ассеты грузить Addressables.Load*Async с предварительным прогревом; исключить LINQ/boxing/строковые конкатенации в Update; включить Incremental GC; крупные вычисления вынести в Jobs + Burst; тяжелые загрузки — на кадры/батчами; проверять, что пул и кэш не вызывают утечек (release/UnloadUnusedAssets по плану). Библиотека собеса по С#

В проекте возникают микрофризы при спавне/деактивации множества объектов и подгрузке ассетов во время игры. Как диагностировать и убрать эти GC-спайки без ухудшения качества? Профилировать (Unity Profiler/Deep Profile) и убрать аллокации на горячем пути: вместо Instantiate/Destroy — Object Pooling; ассеты грузить Addressables.Load*Async с предварительным прогревом; исключить LINQ/boxing/строковые конкатенации в Update; включить Incremental GC; крупные вычисления вынести в Jobs + Burst; тяжелые загрузки — на кадры/батчами; проверять, что пул и кэш не вызывают утечек (release/UnloadUnusedAssets по плану). Библиотека собеса по С#

🔥 Не пропустите событие осени для AI-комьюнити 24 сентября, 19:00 Мск — бесплатный вебинар с Максимом Шаланкиным «ИИ-агенты:
🔥 Не пропустите событие осени для AI-комьюнити 24 сентября, 19:00 Мск — бесплатный вебинар с Максимом Шаланкиным «ИИ-агенты: новая фаза развития искусственного интеллекта» 😤 Пока все спорят, «боты это или нет», мы покажем, как работают настоящие агенты: с планированием, инструментами и памятью. За час Максим разберёт: — почему ИИ-агенты сейчас на пике инвестиций — чем они отличаются от ChatGPT и обычных моделей — цикл агента: восприятие → планирование → действие → обучение — живое демо простого агента — как бизнес уже получает ROI до 80% ⚡️ Хотите спросить у Максима всё, что обычно остаётся «за кадром»? Ловите шанс — только в прямом эфире.Мест мало, регистрация закроется, как только забьём комнату

В ASP.NET Core у вас кэш над БД. Когда TTL истекает, сотни запросов одновременно пробивают кэш и штурмуют БД (cache stampede). Как спроектировать дедупликацию «получения значения» per-key без дедлоков и утечек, учитывая отмену/таймауты? Сделать single-flight per key: ConcurrentDictionary<TKey, Lazy<Task<T>>> (или AsyncLazy) + GetOrAdd. Первый запрос запускает загрузку, остальные await той же Task. Важно: на ошибке/отмене удалять ключ из словаря, чтобы не закрепить failed-task; прокидывать CancellationToken; ставить таймаут и stale-while-revalidate для мягкого обновления. Для изоляции горячих ключей — пер-key SemaphoreSlim или Channel; результаты хранить в IMemoryCache с policy (TTL, size, eviction). Библиотека собеса по С#

В ASP.NET Core у вас async-метод защищает кэш обычным lock и делает await внутри критической секции. Под нагрузкой — залипания и просадка RPS. В чём проблема и как починить? await внутри lock держит монитор и блокирует потоки → contention/starvation и возможные deadlock’и. Решение: не делать await под lock; использовать ConcurrentDictionary (например, GetOrAdd с Lazy<Task<T>>) или асинхронную синхронизацию (SemaphoreSlim/AsyncLock, часто per-key), выносить await за пределы критической секции. Библиотека собеса по С#

Что такое AJAX в ASP.NET? Полная форма ASP.NET AJAX — это асинхронный JavaScript и XML. ASP.NET AJAX, также известный как AJAX, представляет собой набор дополнений ASP.NET. Он использует асинхронную передачу данных между браузером и веб-сервером, чтобы веб-страницы могли запрашивать небольшие фрагменты информации с сервера вместо целых страниц. Этот метод делает интернет-приложения меньше, быстрее и удобнее для пользователя. Он создан корпорацией Microsoft для выполнения функций AJAX в веб-приложениях. ASP.NET AJAX работает с библиотекой AJAX, которая использует объектно-ориентированное программирование (ООП) для более быстрых многофункциональных веб-приложений. Библиотека собеса по С#

⚡️ Бесплатный вебинар — ИИ-агенты: новая фаза развития AI 24 сентября в 19:00 МСК состоится бесплатный вебинар с Максимом Шаланкиным — Data Science Team Lead в финтех-команде MWS, а познакомиться с ним ближе можно в его тг-канале. Тема:
«ИИ-агенты: новая фаза развития искусственного интеллекта».
На вебинаре разберёмся, почему агенты — это следующий шаг после ChatGPT, чем они отличаются от обычных моделей и как уже приносят бизнесу ROI до 80%. А дальше я покажу, как эта тема ложится в наш курс по ИИ-агентам, который разработан под руководством Никиты Зелинского. Подробности рассказываем в гс выше — включай, чтобы не пропустить.

📅 24 сентября в 19:00 МСК — бесплатный вебинар с Максимом Шаланкиным. Тема: «ИИ-агенты: новая фаза развития искусственного интеллекта». 🔹 Почему все говорят про ИИ-агентов и куда вливаются миллиарды инвестиций. 🔹 Чем они отличаются от ChatGPT и обычных ботов. 🔹 Как работает цикл агента: восприятие → планирование → действие → обучение. 🔹 Живое демо простого агента. 🔹 Потенциал для бизнеса: автоматизация процессов и ROI до 80%. Не придёшь — будешь потом рассказывать, что «агенты — это как чат-боты», и ловить косые взгляды от коллег 😏 👉 Регистрируйтесь через форму на лендинге

Как можно запустить бесконечный цикл с помощью оператора for()? Используя for(;;). Библиотека собеса по С#

У вас в ASP.NET Core есть эндпоинт, который стримит данные клиенту. Под нагрузкой память растёт, клиенты часто обрывают соединение. Что сделать? Не копите всё в памяти: сделайте ограниченную очередь (Channel.CreateBounded), отправляйте по мере готовности (await foreach с RequestAborted), пишите потоково в ответ (Response.BodyWriter), а не собирайте большие буферы. Библиотека собеса по С#

Какие гарантии и ограничения даёт lock в C# при работе с многопоточностью? Короткий ответ: обеспечивает взаимное исключение по одному и тому же объекту и полные барьеры памяти (acquire на входе, release на выходе; «happens-before» между секциями по тому же объекту), но не гарантирует справедливость/очередность, не предотвращает дедлоки и не синхронизирует потоки, использующие разные объекты. Библиотека собеса по С#

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

Долгоживущий .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-снимков. Библиотека собеса по С#

В чем разница между Task и Thread в C#? Ниже приведены различия между Task и Thread в C#: Task — это объект, используемый в Task Parallel Library (TPL) для представления асинхронной операции, в то время как Thread — это отдельный путь выполнения в программе. Задачи — это более высокий уровень абстракции, чем потоки, и используются для управления параллельным выполнением кода. Задачи проще в использовании и управлении, чем потоки, и их также можно использовать для обеспечения более эффективного использования ресурсов. Потоки, с другой стороны, обеспечивают более низкий уровень абстракции и используются для выполнения кода непосредственно в процессоре. Библиотека собеса по С#

В ASP.NET Core сервисе растёт хвост задержек и паузы GC. Профилировщик показывает миллионы аллокаций byte[]/MemoryStream в сети/серилизации на горячем пути. Как перепроектировать ввод/вывод, чтобы сделать его low-alloc/почти zero-copy, и какие подводные камни учесть? Перейти на System.IO.Pipelines (PipeReader/PipeWriter) и парсинг через ReadOnlySequence<byte>/SequenceReader<byte>; писать в IBufferWriter<byte> вместо конкатенаций и ToArray(). Временные буферы брать из ArrayPool<byte>/MemoryPool<byte> (IMemoryOwner<byte>) и возвращать в finally. Не удерживать Span<T> через await (переносить как Memory<T>), уважать backpressure (AdvanceTo, FlushAsync), ограничивать параллелизм. Минимизировать boxing/LINQ на горячем пути, использовать source-generated сериализацию. Проверить ETW/EventCounters и бенчмарки, валидировать, что аллокации и tail-latency упали. Библиотека собеса по С#

🔥 Последняя неделя перед стартом курса по AI-агентам Старт курса уже 15го числа! Если вы планировали вписаться — сейчас ПОСЛ
🔥 Последняя неделя перед стартом курса по AI-агентам Старт курса уже 15го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место На курсе:разложим LLM по косточкам: токенизация, SFT, PEFT, инференс — соберём RAG и научимся оценивать его адекватно — построим настоящую мультиагентную систему — архитектуру, которая умеет расти — разберём CoPilot, сломаем через prompt injection (спасибо Максу) — и наконец, посмотрим, как это работает в MCP и реальных кейсах 📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API» Промокод на 5.000₽: LASTCALL 👉 Курс здесь