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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#Собес #boxing #memory #performance
🤔 Когда происходит боксинг?

💬 Кратко:

Боксинг происходит, когда тип значения (например, int или struct) преобразуется в ссылочный тип object. Это нужно, когда тип значения используется там, где ожидается object - например, при добавлении в коллекцию ArrayList. При этом создается новый объект в куче, что требует дополнительной памяти и времени. Распаковка (unboxing) - обратный процесс, когда object преобразуется обратно в тип значения.

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #Entity_Framework #SaveChanges #SQL
🤔 Что делает метод SaveChanges() — отправляет ли он дополнительный запрос в базу для сравнения?

💬 Кратко:
Метод SaveChanges() не отправляет дополнительный запрос для сравнения. Он анализирует изменения, отслеживаемые контекстом (change tracker), и генерирует соответствующие SQL-команды INSERT, UPDATE или DELETE. Затем эти команды выполняются в одной транзакции. Дополнительных запросов на сравнение не требуется, так как EF Core отслеживает состояние каждой сущности.

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #HTTP_HEAD #HTTP_methods #REST_API
🤔 Для чего используется HEAD-запрос?

💬 Кратко:
HEAD-запрос похож на GET, но сервер не возвращает тело ответа. Он используется для проверки существования ресурса, получения метаданных (заголовков) или проверки времени последнего изменения без загрузки содержимого. Это экономит трафик и ускоряет работу.

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

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

Тут собрано всё, что нужно знать про самый популярный протокол интернета

✓ Все статус-коды с понятными объяснениями
✓ Методы и заголовки
✓ Подборка инструментов для тестирования HTTP
✓ Чёткая инфа про HTTP/3

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

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

💬 Кратко:

Запечатанный (sealed) класс не позволяет создавать от него производные классы. Это защищает класс от модификаций и обеспечивает его неизменяемость.

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

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

💬 Кратко:
Значимые типы в C# (например, int, struct) обычно хранятся в стеке, но могут оказаться в куче в нескольких случаях. Это происходит при упаковке (boxing), когда значение присваивается переменной типа object или интерфейса. Также, если структура является полем ссылочного типа (класса), она хранится в куче вместе с объектом. Ещё при использовании в замыканиях или асинхронных методах локальные значимые типы могут быть "подняты" в кучу.

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

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

💬 Кратко:

Планирование задач обычно происходит итеративно, через спринты или канбан. Задачи формируются из бэклога и оцениваются командой. Распределение учитывает приоритеты и загрузку разработчиков. Frontend участвует в обсуждении сроков и сложности. Это помогает делать реалистичные планы.

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#video #архитектура
📚 Road to Highload: видеопроект о проектировании архитектуры высоконагруженных систем

Инженеры Яндекс 360 накопили значительный опыт в проектировании и разработке систем, которыми ежедневно пользуются больше 95 миллионов человек ежемесячно.

В этом видеопроекте разработчики на практических примерах рассказывают, как создают архитектуру систем, которые держат 1 000 000 RPS и хранят петабайты мета-данных.

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #csharp #unity #architecture
🤔 Где применим паттерн MVC (или MV-паттерны в целом)?

💬 Кратко:

MVC и MV-паттерны применяются для разделения ответственности в UI-слое игр: интерфейсы меню, HUD элементы, системы настроек. Model хранит данные, View отображает интерфейс, Controller обрабатывает пользовательский ввод и обновляет Model.

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #clr #.net #c#
🤔 Что такое Common Language Runtime (CLR)?

💬 Кратко:

CLR — это виртуальная машина, которая является частью .NET Framework. Она управляет выполнением программ, обеспечивая такие услуги, как управление памятью, многозадачностью, безопасность типов и удаленным вызовом. CLR также разделяет код на управляемый и неуправляемый, где управляемый код работает в его среде.

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
❤1
#Собес #bulk_insert #copy #postgresql
🤔 Как выполнить массовую вставку данных в PostgreSQL?

💬 Кратко:

Для массовой вставки данных в PostgreSQL можно использовать команду COPY или выполнить вставку данных с помощью нескольких строк в одном запросе INSERT. Оба метода значительно ускоряют процесс по сравнению с вставкой данных по одной строке за раз.

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#article #highload #dotnet
📚 Система резервации на 600 заказов в секунду без буферизации и другой дичи

Автор подробно показывает, как создать высоконагруженный сервис резервирования остатков товаров в базе данных на .NET/C# и PostgreSQL, который способен обрабатывать сотни заказов в секунду без буферизации и лишних ухищрений. Он описывает архитектуру приложения, модель данных, настройки Entity Framework и схемы транзакционной обработки, объясняет, как гарантировать целостность данных и инвариант (чтобы резерв не превышал остаток), а также делится практическими примерами кода и оптимизаций для достижения высокой пропускной способности в условиях конкурентных обновлений

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #copy #clone #array
🤔 В чем разница между методами System.Array.CopyTo() и System.Array.Clone()?

💬 Кратко:

CopyTo() копирует элементы из одного массива в другой, а Clone() создает новый массив, содержащий все элементы исходного массива.

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #signalr #sse #grpc
🤔 Опыт работы с SignalR, SSE? Чем они отличаются от gRPC?

💬 Кратко:

- SignalR/SSE – для веб-клиентов (подписка на события).
- gRPC – для сервис-сервисного обмена (бинарный, мультиплексирование).

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #pod_network #networking #ip_allocation
🤔 Что такое Pod Network в Kubernetes?

💬 Кратко:

Pod Network – это виртуальная сеть, которая соединяет Pod-ы внутри кластера. Она позволяет Pod-ам взаимодействовать друг с другом без необходимости ручной настройки маршрутизации.

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

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

Онлайн-платформа программирования, которая позволяет учащимся осваивать программирование с помощью структурированных курсов, тысяч практических задач и регулярных конкурсов

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

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

💬 Кратко:
ValueType (типы значений) хранятся в стеке (stack), если они являются локальными переменными в методе, или внутри объекта в куче, если они являются полями класса. ReferenceType (ссылочные типы) всегда хранятся в куче (heap), а в стеке или другом месте хранится только ссылка (адрес) на этот объект. Это различие влияет на производительность и поведение при присваивании: типы значений копируются по значению, а ссылочные типы — по ссылке. Понимание этого помогает избежать неожиданных изменений данных и оптимизировать использование памяти.

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

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

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

Техническое собеседование. Осень 2024. Просил 280к. Опыт в резюме: 3+ года. Говорили про C#, базы данных.

💬 Вопросы:

- Какие существуют типы индексов в PostgreSQL и когда их использовать?

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

- В чём разница между WHERE и HAVING в SQL-запросах?

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

- Каково может быть время жизни объекта в DI-контейнере и какие существуют варианты (singleton, transient, scoped)?

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #pagination #limit #offset
🤔 Какие проблемы с пагинацией через LIMIT OFFSET?

💬 Кратко:

Пагинация через LIMIT OFFSET может быть неэффективной на больших смещениях, потому что база данных должна пропустить OFFSET строк перед возвратом результата, что требует времени и ресурсов. Кроме того, при изменении данных (добавлении/удалении) между запросами могут возникать пропущенные или дублированные строки.

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

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

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #linq #query #ienumerable
🤔 Что такое LINQ в C#?

💬 Кратко:

LINQ (Language Integrated Query) — это встроенный в C# инструмент для удобного запроса данных. Он позволяет работать с коллекциями, базами данных, XML и другими источниками с использованием SQL-подобного синтаксиса.

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

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