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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#новости
😇 Rider 2025.1 получил несколько улучшений для работы с системой контроля версий

Теперь в представлении diff сразу отображаются детали коммита, а при обновлении удалённых репозиториев Git изменения подтягиваются автоматически

Держите свои репы в актуальном состоянии без лишних усилий

Дополнительные сведения о контроле версий можно найти — здесь

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Новая реализация JsonPatch с использованием System.Text.Json появится в ASP.NET Core 10 Preview 4!
Подробнее

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🥺 Одна из многих функций ReSharper, которые мне нравятся — это постфиксные шаблоны

> logger.inject → вставит зависимость в конструктор
> Process().await → обернёт вызов в await
> someValue.return → добавит return someValue;

В версии 2025.1 появился новый шаблон — .inject. Теперь внедрять зависимости стало ещё быстрее

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #CSharp
🤔 Что такое паттерн проектирования Singleton в С#?

Паттерн Singleton ограничивает создание объекта классом, позволяя создать только один экземпляр. Он обеспечивает глобальный доступ к этому экземпляру через статический метод. Этот паттерн полезен, когда нужно использовать один и тот же обьект по всему приложению.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😎 IKVM — мост между Java и .NET. Инструмент превращает скомпилированные JAR-файлы в .NET-сборки, а также помогает стандартным Java-библиотекам работать как родные для C#.

Особенность проекта кроется в динамической трансляции байт-кода в CIL на лету или статической компиляции в DLL. Это открывает интересные сценарии, например, использование Java-библиотек машинного обучения в .NET-приложениях или интеграция legacy-кода без полного рефакторинга.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from YeaHub
🥳 В YeaHub теперь 2040 пользователей!

На этой неделе мы побили рекорд по количеству регистраций — и это важный для нас рубеж! 🚀 Мы не останавливаемся на достигнутом и готовим крутые обновления:

- Обновленный лендинг — станет еще информативнее и удобнее;
- Публичные страницы коллекций — делитесь своими подборками с сообществом;
- Избранное для вопросов — сохраняйте самое важное в один клик;
- Горячий режим 🔥 — для дополнительной мотивации;
- Мультипрофили — удобное переключение между аккаунтами;
- Новый сервис "Полезные ресурсы" — всё необходимое для развития в одном месте.

А еще мы будем еженедельно пополнять коллекции актуальными вопросами с собеседований по всем направлениям.

И это только начало! В планах — запуск 20+ новых сервисов для развития, нетворкинга и досуга. Оставайтесь с нами — будет ещё круче! 💪

👍 Обучайтесь, общайтесь, растите вместе с https://yeahub.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#полезное
🥱 В .NET 10 завозят Shuffle() для LINQ

Наконец-то можно будет перемешивать IEnumerable<T> без OrderBy(_ => Guid.NewGuid()) и кастомных костылей.

Зачем это нужно?
🟠 случайный выбор без повторений
🟠 data seeding
🟠 игры, ML, генераторы тестов и т.п.

Микро-удобство, но то, что надо

Ссылка на обсуждение

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🤓 В Rider 2025.1 добавили поддержку preview-фич C# 14:

> Упрощение nameof(List<>)
> Преобразования в Span
> Модификаторы у параметров лямбд

Полный разбор тут

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #CSharp
🤔 Перечислите часто используемые типы исключений в С#

Исключения в С# - это ошибки, которые происходят во время выполнения программы. Некоторые часто встречающиеся исключения:
ArrayTypeMismatchException - возникает при попытке сохранить несовместимый тип данных в массив.
DivideByZeroException - происходит при делении на ноль.
IndexOut0fRangeException - возникает, когда индекс массива выходит за допустимые пределы.
InvalidCastException - когда попытка приведения типов недействительна.
OutOfMemoryException - недостаточно памяти для выполнения операции.
OverflowException - происходит при переполнении при арифметических операциях.
NullReferenceException - ошибка при попытке работы с пустым объектом.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👌1
#полезное
👨‍💻 Fluent.Ribbon — WPF-библиотека для тех, кто скучает по интерфейсам в стиле Microsoft Office. Этот инструмент превратит стандартные окна в полноценную ленточную панель с вкладками, Backstage-меню и Quick Access Toolbar.

Библиотека не просто копирует визуал, а адаптирует его под WPF, сохраняя гибкость: от кастомизации галерей до тонкой настройки всплывающих подсказок. Интересно, что проект живёт уже больше десяти лет и продолжает обновляться — последние версии поддерживают .NET 8 и современные IDE.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
🛞 Одна из крутых фич в Microsoft Visual Studio — External Tools

Они позволяют разработчику подключать свои утилиты > например, обновлять версию .NET Framework или автоматически добавлять NuGet-пакеты в .csproj

Мне надоело вручную подключать Serilog в новые проекты на ASP.NET Core, когда не используется кастомный шаблон. Вместо того чтобы писать скрипт самому — я просто попросил AI сгенерировать код.

А для быстрой настройки Serilog в Program.cs — использую шаблон ReSharper.
Проект: chekme

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
🤯 Dapper + SQL Server + вычисляемые столбцы

Хочешь, чтобы возраст считался сам? В этом примере —> таблица с датами рождения, где возраст считается прямо в SQL через computed column, а данные читаются через Dapper

🟠 Без лишней логики в C#
🟠 Лёгкая ORM
🟠 Всё работает как обычное свойство
Репозиторий с примером

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #CSharp
🤔 Что такое работа с файлами в С#?

Работа с файлами в С# включает в себя операции чтения и записи данных в файлы. Для этого используется пространство имен System. IO , которое предоставляет классы для работы с потоками ввода и вывода. Потоки - это последовательности байтов, через которые происходит взаимодействие с файлами. В С# существуют два типа потоков: входной (для чтения) и выходной (для записи в файл).

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🫠 Эффективная асинхронная передача данных

Когда работаешь с большими наборами данных — записями из базы, строками файлов и т.д. — не всегда хочется грузить всё в память сразу. Здесь отлично заходит IAsyncEnumerable<T>

🟠 IAsyncEnumerable<T> — позволяет стримить данные асинхронно, без блокировки потоков
🟠 Используй yield return, чтобы возвращать элементы по одному
🟠 Данные подтягиваются лениво — обрабатываешь только то, что реально нужно

С await foreach всё читается и обрабатывается по мере поступления, не блокируя выполнение

Преимущества:

1⃣ экономия, даже на больших объёмах.
2⃣ ничего не блокируется, UI не фризит
3⃣ чисто и понятно, без колбэков и костылей

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😊 7 архитектур, которые стоит знать каждому разработчику

> Монолит
Всё в одном проекте. Легко развернуть и начать разработку, но с ростом системы поддержка становится сложной. Подходит для небольших или быстрых MVP.

> MVC
Классика веб-фреймворков. Модель, представление и контроллер. Работает отлично, если роли чётко разделены (спойлер: многие контроллеры в итоге становятся объектами-богами)

> Master-Slave (сейчас чаще говорят Leader-Follower)
Популярен в БД: один командует — остальные копируют. Увеличивает отказоустойчивость, но если синхронизация сломается — беда.

> Многослойная архитектура
Знаменитый “lasagna code”: слой представления, логики, доступа к данным, база. Хорошо структурирует, но если перегнуть — становится медленно и громоздко

> Микросервисы
Каждая функция живёт отдельно. Масштабируются отлично, но усложняется тестирование, логирование и деплой. Подход не для всех проектов.

> SOA (сервис-ориентированная архитектура)
Более формальный родственник микросервисов. Часто встречается в больших компаниях и старых системах. ESB (Enterprise Service Bus) сначала кажется полезным. пока не становится главным узким местом.

> Событийно-ориентированная архитектура
Идеальна для приложений в реальном времени. Всё основано на событиях. Очень мощная, но если что-то пойдёт не так.. найти баг — непросто


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 Добавили метод UseKestrel() в WebApplicationFactory

Это появится в ASP.NET 10 Preview 4 и даст простой способ включить использование сервера Kestrel в WebApplicationFactory

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #CSharp
🤔 Что такое виртуальный метод в С#?

Виртуальный метод ( virtual method ) - это метод в базовом классе, который можно переопределить в производном классе. Он объявляется с модификатором virtual, а его новая реализация в наследнике определяется с помощью override . Это позволяет изменять поведение методов в дочерних классах, не изменяя код базового класса. Виртуальные методы используются для реализации полиморфизма, когда общий интерфейс класса остается неизменным, но его поведение может отличаться в разных реализациях.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2❤1
#полезное
👨‍💻 Метод-расширение для TagWith в Entity Framework

TagWith() очень полезен для добавления отладочной информации в логи запросов, но, конечно, мы также можем обернуть его и добавить дополнительную информацию через простой extension method, как в примере выше

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 724. Find Pivot Index

Если задан массив целых чисел nums, вычислите поворотный индекс этого массива. Поворотный индекс - это индекс, при котором сумма всех чисел строго слева от индекса равна сумме всех чисел строго справа от индекса. Если индекс находится на левом краю массива, то сумма слева равна 0, так как слева нет элементов. Это относится и к правому краю массива. Возвращается самый левый поворотный индекс. Если такого индекса не существует, возвращается -1.

Пример:
Input: nums = [1,7,3,6,5,6]
Output: 3


👨‍💻 Алгоритм:

1⃣Вычислите сумму всех элементов массива.

2⃣Пройдите по массиву, вычисляя текущую сумму элементов слева и проверяя, равна ли она разности между общей суммой и текущей суммой справа.

3⃣Если текущий индекс удовлетворяет условию, верните его; если нет, продолжайте проверку. Если такой индекс не найден, верните -1.

😎 Решение:
public class Solution {
public int PivotIndex(int[] nums) {
int totalSum = 0;
foreach (int num in nums) {
totalSum += num;
}
int leftSum = 0;
for (int i = 0; i < nums.Length; i++) {
if (leftSum == totalSum - leftSum - nums[i]) {
return i;
}
leftSum += nums[i];
}
return -1;
}
}


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥1
#полезное
😬 Что такое Queue<T>?

Queue<T> — это коллекция в C# с принципом FIFO (первым пришёл — первым ушёл).

То есть первый добавленный элемент будет извлечён первым.

Когда использовать?

🟠 Планирование задач
🟠 Очереди на печать
🟠 Обработка сообщений
🟠 Поиск в ширину (BFS) в графах

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #CSharp
🤔 Что такое модификаторы доступа в С#?

В С# модификаторы доступа определяют, какие части кода могут взаимодействовать с определенными классами, методами и переменными.
Существует 4 основных модификатора:
public - доступен отовсюду.
private - доступен только внутри своего класса.
protected - доступен внутри своего класса и наследников.
internal - доступен в пределах одной сборки.
Дополнительно есть составные модификаторы:
protected internal - доступен в пределах сборки и в классах-наследниках.
private protected - доступен только в классах-наследниках внутри одной сборки.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM