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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#Собес #boxing #unboxing #reference_type
🤔 Что такое упаковка (boxing) и распаковка (unboxing) в .NET и зачем они нужны?

💬 Кратко:

Boxing — это упаковка значения value type в объект object (на куче), а unboxing — извлечение значения обратно в value type. Необходимы для прозрачной работы с общим базовым типом object или интерфейсами. Упаковка создаёт дополнительный объект и копирует данные, распаковка проверяет тип и снова копирует, что может влиять на производительность.

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

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

💬 Кратко:
Чтобы определить, где ошибка, сначала проверьте, приходит ли ответ от сервера. Откройте вкладку Network в инструментах разработчика браузера. Если запрос уходит, но ответа нет или статус 5xx — проблема на бэкенде. Если ответ приходит, но интерфейс работает некорректно — ошибка на фронтенде. Также можно проверить консоль браузера на наличие JavaScript-ошибок.

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

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

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

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

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

💬 Кратко:

Замыкание - это функция, которая запоминает переменные из внешней области видимости, даже после того как внешняя функция завершила работу. В C# замыкания создаются с помощью лямбда-выражений и анонимных методов, которые захватывают внешние переменные. Компилятор автоматически генерирует класс для хранения захваченных переменных, что позволяет им сохранять свое состояние между вызовами. Замыкания широко используются для обработки событий, асинхронных операций и отложенного выполнения.

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

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

💬 Кратко:
Dispose — это метод интерфейса IDisposable, предназначенный для явного освобождения неуправляемых ресурсов (файлов, соединений с БД, сокетов). Он вызывается вручную или через конструкцию using. В отличие от финализатора, Dispose выполняется детерминированно и не зависит от сборщика мусора. Это помогает избежать утечек памяти и блокировок ресурсов.

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #window_function #analytics #ranking
🤔 Как работают оконные функции (window functions) в SQL?

💬 Кратко:

Оконные функции выполняют вычисления над набором строк, связанных с текущей строкой (окном). Они не группируют данные в одну строку, а сохраняют все строки. Примеры: ROW_NUMBER(), RANK(), SUM() OVER().

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

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

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

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

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #solid #dependency_inversion
🤔 Как принципы SOLID, в частности Dependency Inversion, могут применяться не только в ООП, но и при проектировании взаимодействия между микросервисами?

💬 Кратко:

Принципы SOLID, особенно Dependency Inversion, применимы на уровне микросервисов как принципы слабой связности и чётко определённых контрактов. Вместо зависимости от конкретной реализации другого сервиса, микросервис должен зависеть от стабильного контракта (API), который описывает взаимодействие. Это позволяет сервисам развиваться независимо, а также подменять реализацию (например, на заглушку для тестирования) без изменения кода потребителя.

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #get #request
🤔 Почему авторизацию нельзя (или нежелательно) делать через GET-запрос?

💬 Кратко:

GET-запросы передают данные через URL, который легко логируется и кэшируется. Авторизационные данные могут попасть в историю браузера или серверные логи. Это создаёт риск утечки токенов или паролей. Даже при HTTPS URL остаётся видимым для клиента. Поэтому для авторизации используют body запроса.

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
😐1
#podcast #всё
📚 TeachMeSkills IT-школа

Это серия выпусков от "TeachMeSkills Школа программирования"
Речь пойдет об актуальные направления и технологии в IT; перспективы роста начинающих специалистов; холиварные топики из жизни разработчиков.


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

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

💬 Кратко:
Проблема ромбовидного наследования возникает, когда класс наследуется от двух классов, которые, в свою очередь, наследуются от одного общего родителя. Это создаёт неоднозначность: какой метод общего предка будет вызван? Решения различаются в зависимости от языка. В C++ используют виртуальное наследование, чтобы общий базовый класс присутствовал в иерархии только один раз. В Python применяют линеаризованный порядок разрешения методов (MRO), который гарантирует детерминированный обход иерархии. Java и C# вообще запрещают множественное наследование классов, предлагая вместо него множественную реализацию интерфейсов.

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

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

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

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

💬 Вопросы:

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

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

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

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

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

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #WebSocket #Server-Sent_Events #SSE
🤔 Чем WebSocket отличается от SSE (Server-Sent Events) и long polling?

💬 Кратко:
WebSocket — это протокол для полноценного двустороннего обмена данными по постоянному соединению. SSE (Server-Sent Events) позволяет серверу отправлять события клиенту по одному HTTP-соединению, но клиент не может отправлять данные через этот же канал. Long polling — это техника, при которой клиент отправляет запрос, а сервер держит его открытым, пока не появится новая информация, после чего клиент сразу отправляет новый запрос. WebSocket подходит для интерактивных приложений, SSE — для потоковой передачи от сервера, а long polling — простая, но менее эффективная альтернатива.

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#repository #кибербезопасность
📚 Структурированный 90-дневный план обучения кибербезопасности предназначенный для начинающих специалистов

План обучения, разделённый на ежедневные задания, охватывающие ключевые темы

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #Jeffrey_Richter #CLR_via_C# #.NET
🤔 Кто такой Джеффри Рихтер?

💬 Кратко:
Джеффри Рихтер — известный автор книг по разработке на платформе Microsoft .NET и Windows. Он написал фундаментальные труды, такие как "CLR via C#" и "Windows via C/C++". Его работы глубоко объясняют внутреннее устройство CLR, управление памятью, потоки и асинхронность. Рихтер также является сооснователем компании Wintellect, занимающейся консалтингом и обучением.

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

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