C# Development | YeaHub
743 subscribers
303 photos
33 videos
1 file
535 links
Теория, подготовка к интервью и курсы для C# разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
#Собес #microservice #index #acid

🤔 Middle C# Backend разработчик в компанию IT One

Техническое собеседование. Осень 2024. Просил 270к+. Опыт в резюме: 3.6 года. Обсуждали опыт работы с микросервисами, оптимизацию запросов. Был лайвкодинг - задачи на проверку дубликатов в массиве и вычисление чисел Фибоначчи.

💬 Вопросы:

- В чем разница между структурой и классом в C#?

- Что такое сборщик мусора (Garbage Collection) в C#?

- В чем разница между методами Dispose и Finalize в C#?

- Что такое индекс в базе данных?

- Что означает ACID?

👉 Все вопросы из этого собеседования (18)

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #sigkill
🤔 Что происходит, если контейнер не завершился после SIGTERM?

💬 Кратко:

Если контейнер не завершился после получения SIGTERM, Docker отправляет ему SIGKILL. Этот сигнал принудительно завершает процесс без возможности обработки. Контейнер будет остановлен в любом случае. Такое завершение может привести к потере данных. Поэтому приложения должны корректно реагировать на SIGTERM.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#article #api
📚 Что такое API? Простыми словами для Начинающих

Автор объясняет понятие API (Application Programming Interface) простыми и живыми примерами, показывая, как разные программы могут взаимодействовать друг с другом без необходимости вручную переносить данные. Через аналогии с «розетками» и интернет-эндпоинтами он демонстрирует, что API — это своего рода программный интерфейс, который позволяет одной программе отправлять команды и получать данные от другой по заранее определённым правилам и форматам (например, JSON), и как это используется в реальных веб-сервисах между фронтендом и бэкендом.

Перейти к материалу

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #profiling #performance
🤔 Какие инструменты и методы используются для профилирования и поиска проблем производительности?

💬 Кратко:

Для профилирования используются: Application Insights для мониторинга в production, dotTrace/JetBrains Profiler для детального анализа CPU и памяти, SQL Server Profiler для диагностики запросов к БД, и нагрузочное тестирование с помощью JMeter. Методика включает сбор метрик, идентификацию "узких мест", оптимизацию и повторное тестирование.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #cache #caching #.net
🤔 Что такое кэширование?

💬 Кратко:

Кэширование — это процесс временного хранения данных в памяти для повышения производительности приложения. Существует три основных типа кэширования: кэширование страниц, данных и фрагментов.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #index #read
🤔 Как индексы влияют на скорость чтения и записи данных

💬 Кратко:

Индексы ускоряют чтение данных, потому что БД быстрее находит нужные строки. При этом каждая операция записи должна обновлять все индексы, из-за чего INSERT, UPDATE и DELETE становятся медленнее. Чем больше индексов, тем выше цена записи. Поэтому всегда нужен баланс между скоростью чтения и записи.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#article #api
📚 Что такое API? Простыми словами для Начинающих

Автор объясняет понятие API (Application Programming Interface) простыми и живыми примерами, показывая, как разные программы могут взаимодействовать друг с другом без необходимости вручную переносить данные. Через аналогии с «розетками» и интернет-эндпоинтами он демонстрирует, что API — это своего рода программный интерфейс, который позволяет одной программе отправлять команды и получать данные от другой по заранее определённым правилам и форматам (например, JSON), и как это используется в реальных веб-сервисах между фронтендом и бэкендом.

Перейти к материалу

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #indexers #class #oop
🤔 Что такое индексаторы (Indexers) в C#?

💬 Кратко:

Индексаторы в C# позволяют объектам класса быть индексируемыми, как массивы. Они позволяют использовать синтаксис массива для доступа к элементам объекта.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #Task #exception_handling #async
🤔 Как обрабатываются исключения в Task?

💬 Кратко:
Исключения в Task обрабатываются с помощью await, который извлекает исключение из агрегатного исключения. Если задача завершилась с ошибкой, await выбрасывает первое исключение из AggregateException. Также можно использовать try-catch вокруг await или методы ContinueWith и Task.Wait для обработки.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #configuration #environment_variables #deployment
🤔 Как организовать конфигурацию приложения, если путь деплоя неизвестен заранее?

💬 Кратко:
Используйте переменные окружения для параметров, зависящих от среды, таких как URL API или ключи доступа. Храните конфигурацию по умолчанию в файлах (например, .env.example), которые не коммитятся, а реальные значения задаются на сервере. Для сложных случаев применяйте конфигурационные сервисы или загружайте настройки при запуске из внешнего источника. Это позволяет одному коду работать в development, staging и production без изменений.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#video #api
📚 Разработка Web API на ASP.NET Core 5 и .NET 5

Используя чистую архитектуру (clean architecture), ASP NET Core 5, EF Core 5, Swagger, IdentityServer4, C#, SQLite, Fluent Validation, XUnit, NSwag Studio, Serilog, Automapper, MediatR, CQRS мы будем разрабатывать web api для работы с заметками.

Мы пройдемся по всем основным этапам разработки web api и в итоге получим масштабируемый, легко поддерживаемый проект Web API, сделанный с использованием good practices.

Перейти к материалу

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #Entity_Framework #migrations #database_schema
🤔 Что такое миграции в Entity Framework и зачем они нужны?

💬 Кратко:
Миграции в Entity Framework — это способ обновлять схему базы данных в соответствии с изменениями в классах модели (Code-First подход). Они нужны, чтобы не изменять базу вручную: EF генерирует SQL-скрипты для создания таблиц, добавления столбцов или изменения типов. Миграции позволяют безопасно применять изменения, откатывать их и поддерживать историю версий схемы. Это упрощает разработку и развертывание, особенно в команде.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #orm #testing #multithreading

🤔 Middle C# Backend-разработчик в Элисофт

Техническое собеседование. Весна 2026. Опыт в резюме — 2.4 года.

💬 Вопросы:

- Что такое сборщик мусора (Garbage Collection) в C#?

- Почему не стоит ставить индекс на каждую колонку таблицы?

- Что такое индекс в базе данных?

- Когда использование индексов неэффективно?

- Какие есть уровни изоляции транзакций и как они работают?

👉 Все вопросы из этого собеседования (44)

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #transaction #isolation
🤔 Чем REPEATABLE READ отличается от SERIALIZABLE?

💬 Кратко:

REPEATABLE READ гарантирует, что данные, прочитанные в транзакции, не изменятся при повторном чтении. Однако он не защищает от логических аномалий при сложных условиях. SERIALIZABLE обеспечивает максимально строгую изоляцию, как если бы транзакции выполнялись строго последовательно. Это достигается ценой возможных ошибок сериализации и повторных попыток транзакций.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #disposal #finalization
🤔 Зачем нужны и в чём разница между финализатором и интерфейсом IDisposable?

💬 Кратко:

IDisposable — это детерминированный механизм, позволяющий программисту явно и немедленно освободить ресурсы (например, закрыть файл) с помощью метода Dispose(). Финализатор — это недетерминированный механизм "страховки", который сборщик мусора вызовет когда-то в будущем для освобождения ресурсов, если программист забыл это сделать сам. Основное правило: для освобождения неуправляемых ресурсов всегда используйте IDisposable, а финализатор добавляйте только как резервный вариант.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #csharp #boxing #async

🤔 Middle C# Backend Developer в ПочтаТех

Техническое собеседование. Осень 2024. Вилка: 200к+. Опыт в резюме: 3 года. Были вопросы по С#, базам данных, рассматривались реальные кейсы.

💬 Вопросы:

- Что такое CTE (Common Table Expressions) в PostgreSQL?

- В чем разница между ключевыми словами ref и out?

- Что такое сборщик мусора (Garbage Collection) в C#?

- В чем разница между методами Dispose и Finalize в C#?

- Объясните различия между типами значений и ссылочными типами.

👉 Все вопросы из этого собеседования (26)

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #grpc #performance #streaming
🤔 В чём преимущества и недостатки gRPC по сравнению с REST?

💬 Кратко:

gRPC даёт высокую производительность и двоичную сериализацию Protobuf, поддерживает стриминг, строгую типизацию и автоматическую генерацию кода, но требует HTTP/2, сложнее дебажить и не так широко поддерживается браузерами. REST с JSON проще в освоении, более совместим с HTTP/1.1 и широко поддерживается в инструментах, но уступает по скорости и полноте контрактов.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
Техническое собеседование. Вилка до 230к. Опыт в резюме — 3.6 года.

Ссылка на вопросы и задачи собеседования:
https://app.yeahub.ru/wiki/collections/414
#repository #net #примеры
📚 dotnet-samples

Официальная коллекция примеров кода от Microsoft для различных технологий .NET, включая C#. Охватывает ASP.NET Core, Entity Framework, Blazor и другие фреймворки. Полезен для изучения современных подходов к разработке на C#.

Перейти к материалу

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #multiple_inheritance #interface #composition
🤔 Как перенести множественное наследование из C++ в Java?

💬 Кратко:
В Java отсутствует множественное наследование классов для избежания проблемы ромбовидного наследования и сложностей с конструкторами. Вместо этого используется множественная реализация интерфейсов, которые могут содержать методы по умолчанию (default methods). Для повторного использования кода из нескольких источников применяется композиция (включение объектов других классов) и делегирование.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #c# #.net #postgres

🤔 Middle C# Backend разработчик в компанию TVision

Техническое собеседование. Лето 2024. Вилка: до 200к. Опыт в резюме: 3 года 4 месяца. Проект: Образовательная платформа для школ. Также были вопросы на знание React, Redux.

💬 Вопросы:

- Какие есть типы соединений (JOIN) в PostgreSQL?

- Что такое сборщик мусора (Garbage Collection) в C#?

- Что такое многопоточное программирование в .NET?

- Что такое нормальные формы в базах данных? Зачем они нужны?

- В чём отличие кластеризованного и некластеризованного индекса? Когда их стоит применять?

👉 Все вопросы из этого собеседования (21)

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа