#полезное
🛞 Одна из крутых фич в Microsoft Visual Studio — External Tools
Они позволяют разработчику подключать свои утилиты > например, обновлять версию .NET Framework или автоматически добавлять NuGet-пакеты в .csproj
Мне надоело вручную подключать Serilog в новые проекты на ASP.NET Core, когда не используется кастомный шаблон. Вместо того чтобы писать скрипт самому — я просто попросил AI сгенерировать код.
А для быстрой настройки Serilog в
Проект: chekme
👉 Новости 👉 База вопросов
Они позволяют разработчику подключать свои утилиты > например, обновлять версию .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
🟠 Всё работает как обычное свойство
Репозиторий с примером
👉 Новости 👉 База вопросов
Хочешь, чтобы возраст считался сам? В этом примере —> таблица с датами рождения, где возраст считается прямо в SQL через computed column, а данные читаются через Dapper
Репозиторий с примером
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #CSharp
🤔 Что такое работа с файлами в С#?
Работа с файлами в С# включает в себя операции чтения и записи данных в файлы. Для этого используется пространство имен
👉 Новости 👉 База вопросов
Работа с файлами в С# включает в себя операции чтения и записи данных в файлы. Для этого используется пространство имен
System. IO , которое предоставляет классы для работы с потоками ввода и вывода. Потоки - это последовательности байтов, через которые происходит взаимодействие с файлами. В С# существуют два типа потоков: входной (для чтения) и выходной (для записи в файл).Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🫠 Эффективная асинхронная передача данных
Когда работаешь с большими наборами данных — записями из базы, строками файлов и т.д. — не всегда хочется грузить всё в память сразу. Здесь отлично заходит
🟠
🟠 Используй
🟠 Данные подтягиваются лениво — обрабатываешь только то, что реально нужно
С
Преимущества:
1⃣ экономия, даже на больших объёмах.
2⃣ ничего не блокируется, UI не фризит
3⃣ чисто и понятно, без колбэков и костылей
👉 Новости 👉 База вопросов
Когда работаешь с большими наборами данных — записями из базы, строками файлов и т.д. — не всегда хочется грузить всё в память сразу. Здесь отлично заходит
IAsyncEnumerable<T>IAsyncEnumerable<T> — позволяет стримить данные асинхронно, без блокировки потоковyield return, чтобы возвращать элементы по одномуС
await foreach всё читается и обрабатывается по мере поступления, не блокируя выполнениеПреимущества:
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() очень полезен для добавления отладочной информации в логи запросов, но, конечно, мы также можем обернуть его и добавить дополнительную информацию через простой extension method, как в примере выше
👉 Новости 👉 База вопросов
TagWith в Entity FrameworkTagWith() очень полезен для добавления отладочной информации в логи запросов, но, конечно, мы также можем обернуть его и добавить дополнительную информацию через простой extension method, как в примере выше
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 724. Find Pivot Index
Если задан массив целых чисел nums, вычислите поворотный индекс этого массива. Поворотный индекс - это индекс, при котором сумма всех чисел строго слева от индекса равна сумме всех чисел строго справа от индекса. Если индекс находится на левом краю массива, то сумма слева равна 0, так как слева нет элементов. Это относится и к правому краю массива. Возвращается самый левый поворотный индекс. Если такого индекса не существует, возвращается -1.
Пример:
👨💻 Алгоритм:
1⃣ Вычислите сумму всех элементов массива.
2⃣ Пройдите по массиву, вычисляя текущую сумму элементов слева и проверяя, равна ли она разности между общей суммой и текущей суммой справа.
3⃣ Если текущий индекс удовлетворяет условию, верните его; если нет, продолжайте проверку. Если такой индекс не найден, верните -1.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 724. Find Pivot Index
Если задан массив целых чисел nums, вычислите поворотный индекс этого массива. Поворотный индекс - это индекс, при котором сумма всех чисел строго слева от индекса равна сумме всех чисел строго справа от индекса. Если индекс находится на левом краю массива, то сумма слева равна 0, так как слева нет элементов. Это относится и к правому краю массива. Возвращается самый левый поворотный индекс. Если такого индекса не существует, возвращается -1.
Пример:
Input: nums = [1,7,3,6,5,6]
Output: 3
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) в графах
👉 Новости 👉 База вопросов
Queue<T> — это коллекция в C# с принципом FIFO (первым пришёл — первым ушёл).
То есть первый добавленный элемент будет извлечён первым.
Когда использовать?
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #CSharp
🤔 Что такое модификаторы доступа в С#?
В С# модификаторы доступа определяют, какие части кода могут взаимодействовать с определенными классами, методами и переменными.
Существует 4 основных модификатора:
Дополнительно есть составные модификаторы:
👉 Новости 👉 База вопросов
В С# модификаторы доступа определяют, какие части кода могут взаимодействовать с определенными классами, методами и переменными.
Существует 4 основных модификатора:
public - доступен отовсюду.private - доступен только внутри своего класса.protected - доступен внутри своего класса и наследников.internal - доступен в пределах одной сборки.Дополнительно есть составные модификаторы:
protected internal - доступен в пределах сборки и в классах-наследниках.private protected - доступен только в классах-наследниках внутри одной сборки.Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 Если ты до сих пор считаешь, что EF Core медленный в 2025 году — ты застрял в прошлом
Одна из его новых фич — поддержка bulk-удалений
Теперь ты можешь удалить любое количество записей за один запрос к базе.
Представим, что e-commerce платформа хочет удалить все корзины, которые не обновлялись больше года.
С
Но помни: bulk-операции обходят EF Change Tracker.
EF Core предлагает много мощных фич для написания чистого и производительного кода.
Вот 5, которые ты обязан знать: readme
👉 Новости 👉 База вопросов
Одна из его новых фич — поддержка bulk-удалений
Теперь ты можешь удалить любое количество записей за один запрос к базе.
Представим, что e-commerce платформа хочет удалить все корзины, которые не обновлялись больше года.
С
ExecuteDelete это делается эффективно: выполняется один SQL-запрос DELETE, который сразу удаляет все старые корзины.Но помни: bulk-операции обходят EF Change Tracker.
EF Core предлагает много мощных фич для написания чистого и производительного кода.
Вот 5, которые ты обязан знать: readme
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Совет по Microsoft Visual Studio
Условная компиляция — отличный способ включать или исключать функциональность в зависимости от сценария деплоя.
Обычно используют
В свойствах проекта, на вкладке Build, можно задать свои собственные символы условной компиляции.
В этом примере используется пользовательский символ, чтобы определить — наследоваться от абстрактного класса или нет.
Важно иметь чёткие инструкции, в каких случаях применять такие символы, как в этом примере
👉 Новости 👉 База вопросов
Условная компиляция — отличный способ включать или исключать функциональность в зависимости от сценария деплоя.
Обычно используют
#if DEBUG, но что если условие не связано с режимом отладки или релиза?В свойствах проекта, на вкладке Build, можно задать свои собственные символы условной компиляции.
В этом примере используется пользовательский символ, чтобы определить — наследоваться от абстрактного класса или нет.
Важно иметь чёткие инструкции, в каких случаях применять такие символы, как в этом примере
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😎 99% разработчиков ошибаются в обработке исключений
А вот что делает оставшийся 1%:
Они используют глобальный обработчик исключений.
Начиная с .NET 8, можно создать класс, реализующий IExceptionHandler, чтобы перехватывать все необработанные исключения.
Внутри обработчика можно залогировать исключение и вернуть ProblemDetails клиенту API.
Можно также зарегистрировать несколько реализаций
Предсказать все исключения невозможно.
Но можно перехватить их все в одном месте.
👉 Новости 👉 База вопросов
А вот что делает оставшийся 1%:
Они используют глобальный обработчик исключений.
Начиная с .NET 8, можно создать класс, реализующий IExceptionHandler, чтобы перехватывать все необработанные исключения.
Внутри обработчика можно залогировать исключение и вернуть ProblemDetails клиенту API.
Можно также зарегистрировать несколько реализаций
IExceptionHandler — они будут вызываться в порядке регистрации.Предсказать все исключения невозможно.
Но можно перехватить их все в одном месте.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #CSharp
🤔 Что такое цепочка конструкторов в С#?
Цепочка конструкторов (constructor chaining) позволяет одному конструктору вызывать другой внутри одного класса с помощью
👉 Новости 👉 База вопросов
Цепочка конструкторов (constructor chaining) позволяет одному конструктору вызывать другой внутри одного класса с помощью
this . Это сокращает дублирование кода.Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 В
Passkey — это новый способ входа в систему без пароля, основанный на стандартах FIDO2/WebAuthn.
Вместо ввода пароля, пользователь подтверждает вход с помощью:
🟠 Face ID или Touch ID (на телефоне или ноутбуке)
🟠 PIN-кода
🟠 внешнего ключа безопасности (например, YubiKey)
👉 Новости 👉 База вопросов
ASP.NET 10 появится поддержка Passkey Passkey — это новый способ входа в систему без пароля, основанный на стандартах FIDO2/WebAuthn.
Вместо ввода пароля, пользователь подтверждает вход с помощью:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
😇 Clean Architecture by Pedro Constantino
Clean Architecture — это не только про принципы, но и про ясную структуру, которая делает проект масштабируемым, тестируемым и удобным в поддержке
источник
👉 Новости 👉 База вопросов
Clean Architecture — это не только про принципы, но и про ясную структуру, которая делает проект масштабируемым, тестируемым и удобным в поддержке
источник
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
😇 Времена жизни (Lifetimes) в .NET DI:
🟠 Singleton — один экземпляр на всё приложение
🟠 Scoped — один экземпляр на каждый запрос
🟠 Transient — новый экземпляр каждый раз при запросе
Важно помнить:
– Нельзя внедрять Scoped/Transient в Singleton — это может привести к утечкам памяти
– Используй Singleton только для безсостояний или потокобезопасных сервисов
👉 Новости 👉 База вопросов
Важно помнить:
– Нельзя внедрять Scoped/Transient в Singleton — это может привести к утечкам памяти
– Используй Singleton только для безсостояний или потокобезопасных сервисов
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #postgres
🤔 Что означает команда enable-debug в PostgreSQL?
Команда
👉 Новости 👉 База вопросов
Команда
enable-debug в PostgreSQL для включения дополнительных параметров отладки при компиляции. Она необходима разработчикам и администраторам баз данных для диагностики проблем и улучшения производительности.Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #postgres
🤔 Какой максимальный размер таблицы в PostgreSQL?
B PostgreSQL максимальный размер таблицы ограничен размером базы данных - до 32 ТБ, если используется стандартный блок данных размером 8 КБ. Это ограничение связано с максимальной длиной идентификатора блока в системе.
👉 Новости 👉 База вопросов
B PostgreSQL максимальный размер таблицы ограничен размером базы данных - до 32 ТБ, если используется стандартный блок данных размером 8 КБ. Это ограничение связано с максимальной длиной идентификатора блока в системе.
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
❤1
#полезное
📞 Создание кастомного GPT в ChatGPT может быть крайне полезным.
Например, разработчик хочет заменить SqlClient-операции на Dapper и ему предстоит проделать это множество раз.
С помощью кастомного GPT можно избежать постоянного ввода промптов — достаточно просто вставить код и получить результат.
В этом случае я создал инструкцию в Microsoft Word, сохранил её в PDF и загрузил в кастомного GPT
👉 Новости 👉 База вопросов
Например, разработчик хочет заменить SqlClient-операции на Dapper и ему предстоит проделать это множество раз.
С помощью кастомного GPT можно избежать постоянного ввода промптов — достаточно просто вставить код и получить результат.
В этом случае я создал инструкцию в Microsoft Word, сохранил её в PDF и загрузил в кастомного GPT
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1