Библиотека шарписта | C#, F#, .NET, ASP.NET
Все самое полезное для C#-разработчика в одном канале. Наши курсы: https://clc.to/y3LDtw По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Ko'proq ko'rsatish📈 Telegram kanali Библиотека шарписта | C#, F#, .NET, ASP.NET analitikasi
Библиотека шарписта | C#, F#, .NET, ASP.NET (@csharpproglib) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 21 698 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 5 943-o'rinni va Rossiya mintaqasida 30 265-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 21 698 obunachiga ega bo‘ldi.
30 Avgust, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -46 ga, so‘nggi 24 soatda esa -4 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 17.05% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 7.93% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 3 700 marta ko‘riladi; birinchi sutkada odatda 1 720 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 23 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent .net, шарписта, навигация, await, string kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Все самое полезное для C#-разработчика в одном канале.
Наши курсы: https://clc.to/y3LDtw
По рекламе: @proglib_adv
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 31 Avgust, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
«ИИ-агенты: новая фаза развития искусственного интеллекта».На вебинаре разберёмся, почему агенты — это следующий шаг после ChatGPT, чем они отличаются от обычных моделей и как уже приносят бизнесу ROI до 80%. А дальше я покажу, как эта тема ложится в наш курс по ИИ-агентам, который разработан под руководством Никиты Зелинского. Подробности рассказываем в гс выше — включай, чтобы не пропустить.
Сгенерируй DTO класс на C# с публичными свойствами для объекта, содержащего следующие поля: {подставить полный список свойств}. Класс должен иметь комментарии для каждого свойства, описывающие его назначение. Используй стандартные соглашения оформления C# для именования классов и свойств.🐸Библиотека шарписта #буст
<!-- Directory.Build.props или csproj -->
<PropertyGroup>
<PublishReadyToRun>true</PublishReadyToRun>
<PublishTrimmed>true</PublishTrimmed>
<TrimMode>partial</TrimMode> <!-- для библиотек и DI -->
</PropertyGroup>
• PGO (Profile-Guided Optimization) + R2R
Соберите профиль и примените при crossgen2 (даёт лучший порядок/инлайнинг для «горячего» пути старта).
• NativeAOT
Полностью нативный бинарь, почти мгновенный старт. Подходит для CLI/служб с ограниченным набором фич и для «узких» сервисов или edge-эндпоинтов в вебе.
3️⃣ Минимизация загрузки и работы на старте
Уберите всё, что не нужно при старте: тяжёлые клиенты (БД, кеши, внешние SDK) создавайте лениво, после поднятия хостинга.
Прогружайте конфигурацию минимально: уберите лишние провайдеры, большие JSON-файлы, многократные AddJsonFile.
Логи на старте — только консоль/минимальный уровень, позже можно расширить.
Уберите неиспользуемые пакеты, объедините внутренние пакеты, избегайте древовидных зависимостей ради одной функции.
Встроенный контейнер быстрый, но следите за графом:
• Регайте Singleton/Scoped только когда нужно.
• Избегайте «сервисов-глобов» с большим конструктором на десятки зависимостей.
• Используйте фабрики/Lazy для тяжёлых зависимостей.
4️⃣ ASP.NET Core: быстрый подъём хоста
Минимальный хостинг и только нужные middleware:
var builder = WebApplication.CreateBuilder(args);
// Оставьте только то, что нужно для старта
builder.Services.AddRouting();
var app = builder.Build();
// Критичный middleware – ближе к началу конвейера
app.MapGet("/healthz", () => "OK");
app.Run();
Отключите всё, что делает работу на старте: избыточная авто-дискавери Swagger, отражение в валидации, сканирование сборок.
5️⃣ Инициализация после старта
Разнесите готовность принимать трафик и полную готовность всех подсистем:
• Быстрый /healthz сразу.
• Прогрев кэшей/метаданных — в фоне IHostedService с низким приоритетом.
• В оркестраторе задайте readinessProbe после минимального старта, а «тяжёлый прогрев» делайте уже на фоне.
6️⃣ Тримминг: аккуратно, но даёт эффект
PublishTrimmed=true + TrimMode=partial часто снижает размер и ускоряет загрузку.
Обязательно добавляйте DynamicDependency/UnconditionalSuppressMessage/RD.XML для сохранения типов, которые нужны через рефлексию (DI/JSON/ORM).
💬 А у вас сколько секунд уходит на холодный старт .NET сервиса?
🐸Библиотека шарписта
#буст!= и паттерн-матчингом с is not в C#.
Несмотря на схожесть, каждое из этих решений имеет свои особенности, и неправильное использование может привести к ошибкам, особенно в случаях с боксингом, проверкой на null и перегрузкой операторов. Паттерн-матчинг предоставляет более безопасное и гибкое решение, особенно для работы с типами и константами.
➡️ Смотреть видео
🐸Библиотека шарписта
#бустDictionary и HashSet, где хэш-функции используются для быстрого поиска элементов. Эти коллекции используют хэш-таблицы для того, чтобы операции поиска, добавления и удаления выполнялись за время O(1) в среднем.
Хэш-таблица использует хэш-функцию, которая принимает ключ и преобразует его в индекс, который указывает на место хранения данных в массиве.
Пример реализации собственного хэширования:
// Переопределение метода GetHashCode для обеспечения корректного хэширования
public override int GetHashCode()
{
// Простой хэш-функции, использующей значения полей объекта
// Здесь мы комбинируем хэши Name и Age для создания уникального хэш-значения
int hashName = Name == null ? 0 : Name.GetHashCode();
int hashAge = Age.GetHashCode();
// Используем формулу для комбинирования хэшей, чтобы минимизировать коллизии
return hashName ^ hashAge;
}
Когда стоит использовать хэширование
Если вам нужно быстро найти, добавить или удалить данные, хэширование может значительно ускорить эти операции. Когда вы добавляете или ищете элемент, хэш-функция преобразует его ключ в индекс, и вы сразу попадаете в нужную ячейку, не перебирая все данные.
Хэширование используется для защиты данных, например, в процессе хранения паролей. В этом случае важно использовать криптографически стойкие хэш-функции, такие как SHA-256 или bcrypt.
Хэш-функции могут использоваться для проверки, не изменились ли данные, например, для контроля над целостностью файлов.
💬 Как вы используете хэширование в своих проектах? Делитесь примерами в комментариях 👇
🐸Библиотека шарписта
#междусобойчик