C# Development | YeaHub
743 subscribers
303 photos
33 videos
1 file
536 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)

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

💬 Кратко:
Процесс деплоя через Docker включает несколько ключевых шагов. Сначала создается Dockerfile — инструкция для сборки образа приложения. Затем образ собирается локально или на CI-сервере с помощью команды docker build. Далее образ помещается в реестр, например Docker Hub или частный registry. На целевой сервер (продакшен) образ загружается и запускается как контейнер командой docker run. Для управления несколькими контейнерами часто используют docker-compose или оркестраторы вроде Kubernetes.

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#book #book
📚 C# 10 и .NET 6. Современная кросс-платформенная разработка
Автор: Марк Прайс


В шестом издании книги автор рассказывает о принципах объектно ориентированного программирования. Он учит писать, тестировать функции плюс заниматься отладкой, созданием интерфейсов и т. п.
Отдельный раздел посвящён API .NET для управления данными, мониторинга производительности, работы с файловой системой, асинхронными потоками, сериализацией и шифрованием.
Также рассказывается о консольных приложениях, интерфейсных приложениях и службах с задействованием ASP.NET Core, MVC и Blazor. В шестом издании появились три новые главы, которые посвящены .NET MAUI для разработки кросс-платформенных приложений и сервисов с веб-API, OData, gRPC, GraphQL, SingalR и Azure.

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

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

💬 Кратко:
Proxy и Adapter — это структурные паттерны, но они решают разные задачи. Adapter изменяет интерфейс объекта, чтобы он стал совместимым с другим интерфейсом, который ожидает клиент. Proxy предоставляет суррогат или заместитель для другого объекта, чтобы контролировать доступ к нему, не меняя его интерфейса. Adapter используется, когда нужно заставить работать несовместимые интерфейсы вместе, а Proxy — когда нужно добавить дополнительную логику (ленивую инициализацию, кэширование, контроль доступа) к существующему объекту, не изменяя его клиентский код.

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #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 и широко поддерживается в инструментах, но уступает по скорости и полноте контрактов.

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

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