#Собес #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
#полезное
😵💫 В .NET 10 снижена «надбавка» за использование
В .NET 9 перебор массива через
👉 Новости 👉 База вопросов
IEnumerable с 83% до 10%В .NET 9 перебор массива через
IEnumerable обходился на 83% дороже, чем прямой перебор массива, тогда как в .NET 10 эта разница составила всего 10% Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
#полезное
👋 𝗛𝘆𝗯𝗿𝗶𝗱𝗖𝗮𝗰𝗵𝗲 в .𝗡𝗘𝗧 𝟵
В .NET 9 появился новый API для кэширования — HybridCache.
Он решает ограничения
Что он предлагает:
🟠 Единый API (и для in-process, и для out-of-process кэша)
🟠 Настраиваемую сериализацию
🟠 Защиту от «штамповки» (stampede protection)
🟠 Очистку кэша по тегам
Метод
Stampede protection означает: на один ключ — только один вызов фабрики одновременно.
Вот как можно начать использовать HybridCache уже сегодня: read
👉 Новости 👉 База вопросов
В .NET 9 появился новый API для кэширования — HybridCache.
Он решает ограничения
IMemoryCache и IDistributedCacheЧто он предлагает:
Метод
GetOrCreateAsync проверяет и основной, и вторичный кэш. Если значения нет — вызывает фабрику, сохраняет результат и возвращает его.Stampede protection означает: на один ключ — только один вызов фабрики одновременно.
Вот как можно начать использовать HybridCache уже сегодня: read
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🫡
Оба могут создавать скоупы, но ключевой момент в следующем:
Так что использование
Обычно пользовательские скоупы нужны, когда вы работаете с root-провайдером.
Вот решение на практике: тык
👉 Новости 👉 База вопросов
IServiceScopeFactory vs IServiceProvider — что использовать для создания пользовательских скоупов?Оба могут создавать скоупы, но ключевой момент в следующем:
IServiceProvider.CreateScope() просто получает IServiceScopeFactory и вызывает у него CreateScope()Так что использование
IServiceScopeFactory — более прямой подход.Обычно пользовательские скоупы нужны, когда вы работаете с root-провайдером.
Вот решение на практике: тык
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🏠 В режиме Ask в VScode ты можешь общаться напрямую с экспертами — так называемыми участниками (participants). Например, участник Remote-SSH может ответить на вопросы о разработке по SSH, помочь с настройкой окружения и даже разобраться с ошибками подключения
👉 Новости 👉 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#полезное
😊 Думаешь, хорошо разбираешься в
Этот пост поменяет твой взгляд на перехват HTTP-запросов
Middleware в
Есть три подхода: на делегатах (inline), по соглашению (класс), и через
1⃣ Сначала можно использовать метод
Такое middleware на основе делегата выполняется до и после следующего компонента в конвейере.
2⃣ Если логика растёт — вынеси её в отдельный класс middleware по соглашению.
Класс должен иметь конструктор с
3⃣ Либо реализуй интерфейс
Зарегистрируй класс
Но есть важные нюансы:
🟠 Middleware по умолчанию живёт как singleton, поэтому внедряй только singleton-зависимости.
🟠 Если нужны scoped-сервисы — передавай их через параметры InvokeAsync в middleware по соглашению.
Кастомные middleware используют для:
• логирования
• авторизации
• валидации
• модификации ответов
👉 Новости 👉 База вопросов
ASP.NET Core middleware?Этот пост поменяет твой взгляд на перехват HTTP-запросов
Middleware в
ASP.NET Core — это компонент, участвующий в конвейере обработки HTTP-запросов и ответов.Есть три подхода: на делегатах (inline), по соглашению (класс), и через
IMiddleware для кастомной логики.Use напрямую в конфигурации WebApplication.Такое middleware на основе делегата выполняется до и после следующего компонента в конвейере.
Класс должен иметь конструктор с
RequestDelegate и метод InvokeAsync.IMiddleware — это более безопасный, проверяемый компилятором способ.Зарегистрируй класс
IMiddleware в DI-контейнере, и фреймворк сам будет его разрешать.Но есть важные нюансы:
Кастомные middleware используют для:
• логирования
• авторизации
• валидации
• модификации ответов
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #postgres
🤔 Что такое функции в PostgreSQL?
Функции в PostgreSQL - это блоки кода, которые выполняют заданную последовательность SQL или процедурных команд. Они позволяют выполнять вычисления, возвращать значения и обрабатывать данные более эффективно. Их можно использовать для вызова сложной логики в SQL-запросах или триггерах.
👉 Новости 👉 База вопросов
Функции в PostgreSQL - это блоки кода, которые выполняют заданную последовательность SQL или процедурных команд. Они позволяют выполнять вычисления, возвращать значения и обрабатывать данные более эффективно. Их можно использовать для вызова сложной логики в SQL-запросах или триггерах.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
😱 Скриптинг на C# это круто
Отлично подходит для простых POC и наполнения тестовыми данными, как в этом примере
👉 Новости 👉 База вопросов
Отлично подходит для простых POC и наполнения тестовыми данными, как в этом примере
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
#полезное
🛞 Visual Studio теперь отображает возвращаемые значения методов прямо в коде
Фича появилась в версии 17.12 (выпущена в ноябре).
Я всегда считал, что временные переменные помогают снизить когнитивную нагрузку при работе с возвратами методов, но, похоже, теперь игра изменилась
👉 Новости 👉 База вопросов
Фича появилась в версии 17.12 (выпущена в ноябре).
Я всегда считал, что временные переменные помогают снизить когнитивную нагрузку при работе с возвратами методов, но, похоже, теперь игра изменилась
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
#полезное
🥄 NBomber — нагрузочное тестирование на .NET без привязки к протоколам. Этот фреймворк позволяет описывать сценарии нагрузочного тестирования на чистом C#/F#, без изучения специализированного DSL.
Ключевая особенность проекта в распределённом режиме для имитации реалистичной нагрузки и интеграция с Grafana/InfluxDB для мониторинга в реальном времени. При этом сценарии можно запускать как консольное приложение или даже как xUnit-тесты в CI/CD.
Гитхаб
👉 Новости 👉 База вопросов
Ключевая особенность проекта в распределённом режиме для имитации реалистичной нагрузки и интеграция с Grafana/InfluxDB для мониторинга в реальном времени. При этом сценарии можно запускать как консольное приложение или даже как xUnit-тесты в CI/CD.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3