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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#Собес #GetHashCode #hash_code #C#
🤔 Как работает метод GetHashCode()?

💬 Кратко:
Метод GetHashCode() возвращает целочисленный хеш-код, который представляет объект. Этот код используется структурами данных, например, Dictionary или HashSet, для быстрого определения примерного местоположения объекта в коллекции. Для корректной работы важно, чтобы равные объекты возвращали одинаковые хеш-коды. Однако разные объекты могут иметь одинаковый хеш-код (коллизия), и в этом случае используется дополнительная проверка через Equals().

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

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

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

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

💬 Вопросы:

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

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

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

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

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

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #http #get #post
🤔 Чем отличаются GET и POST-запросы?

💬 Кратко:

- GET — получает данные (параметры в URL, кэшируется).
- POST — отправляет данные (тело запроса, не кэшируется).
- GET менее безопасен, POST — для изменения данных.

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

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

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

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

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

💬 Кратко:
Классы передаются по ссылке, поэтому изменения внутри метода влияют на оригинальный объект. Структуры передаются по значению, создавая копию, и изменения не затрагивают исходную переменную. Это фундаментальное различие между ссылочными и значимыми типами.

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

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

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

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

💬 Вопросы:

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

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

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

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

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

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

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

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

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#article #dotnet7 #genericmath #codedesign
📚 Всё про Generic Math в C#

Автор подробно объясняет, что такое Generic Math в C# — мощная фича, появившаяся с .NET 7 и C# 11, которая позволяет описывать обобщённые математические операции через интерфейсы со статическими абстрактными членами. Он рассказывает, почему раньше было сложно писать обобщённые алгоритмы (например, суммирование для любых числовых типов), как концепция реализована через набор интерфейсов в System.Numerics, и показывает практические сценарии применения в различных задачах, а также сравнивает с альтернативами и обсуждает плюсы/потенциальные ограничения этой технологии

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

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

💬 Кратко:

Рефлексия в C# — это процесс получения информации о типах, методах, свойствах и других элементах программы во время выполнения. Для этого используется пространство имен System.Reflection.

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

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

💬 Кратко:

SOA фокусируется на интеграции крупных, многофункциональных сервисов через общую шину (ESB), что обеспечивает повторное использование компонентов. Микросервисная архитектура делает акцент на мелких, узкоспециализированных сервисах, которые общаются напрямую через легковесные протоколы и могут разрабатываться независимо. Микросервисы можно рассматривать как эволюцию SOA с большим упором на автономность сервисов.

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

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

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

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

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


Это настольная книга программиста, которая позволяет ознакомиться с базовыми основами языка. В ней показано, как разрабатывать программы для командной строки и что необходимо для создания веб-приложений.
Для того чтобы читатель лучше осваивал материал, автор постарался предоставить большое количество практических примеров, в которых он объясняет, за что отвечает каждый из блоков программы.
Сильная сторона книги в том, что в ней уделяется внимание повторному использованию кода — то, что нужно многим программистам, которые работают в компаниях.

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

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