ch
Feedback
Библиотека шарписта | C#, F#, .NET, ASP.NET

Библиотека шарписта | C#, F#, .NET, ASP.NET

前往频道在 Telegram

Все самое полезное для C#-разработчика в одном канале. Наши курсы: https://clc.to/y3LDtw По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead

显示更多

📈 Telegram 频道 Библиотека шарписта | C#, F#, .NET, ASP.NET 的分析概览

频道 Библиотека шарписта | C#, F#, .NET, ASP.NET (@csharpproglib) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 21 698 名订阅者,在 技术与应用 类别中位列第 5 943,并在 俄罗斯 地区排名第 30 267

📊 受众指标与增长动态

невідомо 创建以来,项目保持高速增长,吸引了 21 698 名订阅者。

根据 29 八月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -48,过去 24 小时变化为 -6,整体触达仍然可观。

  • 认证状态: 未认证
  • 互动率 (ER): 平均受众互动率为 16.72%。内容发布后 24 小时内通常能获得 7.84% 的反应,占订阅者总量。
  • 帖子覆盖: 每篇帖子平均可获得 3 628 次浏览,首日通常累积 1 702 次浏览。
  • 互动与反馈: 受众积极参与,单帖平均反应数为 23
  • 主题关注点: 内容集中在 .net, шарписта, навигация, await, string 等核心主题上。

📝 描述与内容策略

作者将该频道定位为表达主观观点的平台:
Все самое полезное для C#-разработчика в одном канале. Наши курсы: https://clc.to/y3LDtw По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead

凭借高频更新(最新数据采集于 30 八月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。

21 698
订阅者
-624 小时
-57
-4830
帖子存档
🤩 ТОП-9 популярных AI-агентов для разработки ИИ-агенты перестали быть экспериментом и превратились в полноценный инструмент
🤩 ТОП-9 популярных AI-агентов для разработки ИИ-агенты перестали быть экспериментом и превратились в полноценный инструмент для разработчиков. Они пишут код, проверяют ошибки, помогают с архитектурой и ускоряют рутинные задачи. К 2025 году сформировался список решений, которые стали самыми востребованными в работе программистов. Одни берут скоростью, другие — точностью, третьи — умением интегрироваться в экосистему команды. ➡️ Выбрать своего агента 🐸 Библиотека шарписта

⚡️ Быстрый in-memory кеш для .NET BitFaster.Caching — это библиотека для in-memory кеша с акцентом на работу в многопоточной
⚡️ Быстрый in-memory кеш для .NET BitFaster.Caching — это библиотека для in-memory кеша с акцентом на работу в многопоточной среде. В отличие от стандартного MemoryCache, она предлагает больше контроля над политиками вытеснения и поведением при высокой нагрузке. Что умеет: • Потокобезопасные кеши без глобальных блокировок. • Поддержка LRU и LFU (включая TinyLFU) для выбора стратегии вытеснения. • Атомарное вычисление значений, чтобы избежать шторма запросов. • Настраиваемые политики истечения: по времени доступа или записи. • API-билдер для конфигурации размера и параметров кеша. Пример:
var cache = CacheBuilder
    .NewLru<string, MyObject>()
    .WithCapacity(1000)
    .ExpireAfterAccess(TimeSpan.FromMinutes(5))
    .Build();

var value = cache.GetOrAdd("key", k => new MyObject(k));
➡️ Попробовать либу 🐸 Библиотека шарписта #sharp_view

🔥 Избавляемся от if-else деревьев Когда логика программы разрастается, мы часто пишем целые деревья if-else или switch. Но такой код тяжело читать и сопровождать. Вместо if-ветвей можно использовать паттерн State. Он выносит каждое состояние в отдельный класс. Объект делегирует своё поведение текущему состоянию, а переходы происходят прозрачно. Код с if'ами:
public class Document
{
    public string State { get; set; } = "Draft";

    public void Publish()
    {
        if (State == "Draft") State = "Moderation";
        else if (State == "Moderation") State = "Published";
        else Console.WriteLine("Документ уже опубликован");
    }
}
Код со State:
public interface IDocumentState
{
    void Publish(Document doc);
}

public class Draft : IDocumentState
{
    public void Publish(Document doc) => doc.State = new Moderation();
}

public class Moderation : IDocumentState
{
    public void Publish(Document doc) => doc.State = new Published();
}

public class Published : IDocumentState
{
    public void Publish(Document doc) => Console.WriteLine("Уже опубликован");
}

public class Document
{
    public IDocumentState State { get; set; } = new Draft();
    public void Publish() => State.Publish(this);
}
Теперь добавление нового состояния — просто новый класс, без переписывания всей логики. 🐸 Библиотека шарписта #sharp_view

🤖 Курс «ИИ-агенты для DS-специалистов» Последняя возможность в этом году освоить ИИ-агентов с Proglib— старт живых вебинаров
🤖 Курс «ИИ-агенты для DS-специалистов» Последняя возможность в этом году освоить ИИ-агентов с Proglib— старт живых вебинаров на курсе уже 3 октября! Уже 24 студента изучают 5 лонгридов подготовительного модуля, чтобы сформировать базу к старту живых вебинаров с Никитой Зелинским. 📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой. 🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽. 🔗 Записаться на курс и узнать подробности

🐘 PostgreSQL 18 — быстрее, умнее, надёжнее Вышла новая версия PostgreSQL 18. Главное новшество — асинхронный ввод-вывод. Так
🐘 PostgreSQL 18 — быстрее, умнее, надёжнее Вышла новая версия PostgreSQL 18. Главное новшество — асинхронный ввод-вывод. Также ускорили апгрейды: теперь статистика оптимизатора сохраняется между версиями, и база работает быстрее сразу после обновления. Для разработчиков добавили виртуальные вычисляемые колонки, генерацию UUIDv7 для оптимальной индексации и поддержку SSO через OAuth 2.0. В текстовых операциях появился быстрый PG_UNICODE_FAST для Unicode-сравнений и новые возможности для полнотекстового поиска. ➡️ Анонс обновления 🐸 Библиотека шарписта #async_news

⚡️ Nullable vs null-check работа с null всегда была источником ошибок. Каждый хоть раз ловил NullReferenceException в рантайме. Есть два подхода: старый — вручную проверять null, и новый — использовать nullable reference types с поддержкой компилятора. Код с ручной проверкой на null:
public string GetUserName(User? user)
{
    if (user == null)
        return "Anonymous";

    return user.Name;
}
Плюсы: • просто и понятно • работает везде Минусы: • легко забыть проверить • ошибки проявятся только в рантайме С включённой фичей #nullable enable компилятор начинает помогать:
public string GetUserName(User? user)
{
    return user?.Name ?? "Anonymous";
}
User? явно говорит: объект может быть null • компилятор подсветит, если забыли проверить • меньше бойлерплейта, больше читаемости 🐸 Библиотека шарписта #sharp_view

🤖 Курс «ИИ-агенты для DS-специалистов» Последняя возможность в этом году освоить ИИ-агентов — курс стартует уже 3 октября! П
🤖 Курс «ИИ-агенты для DS-специалистов» Последняя возможность в этом году освоить ИИ-агентов — курс стартует уже 3 октября! Первый вебинар пройдёт в день старта, а подробности вебинара можно найти на сайте. 📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой. 🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽. 🔗 Записаться на курс и узнать подробности

📀 Record-типы в C# record в C# — это удобный способ описывать объекты данных без лишнего кода. Они сравниваются по значению, остаются неизменяемыми и отлично подходят для DTO или моделей в DDD. Если раньше приходилось писать десятки строк с Equals, GetHashCode, ToString и конструкторами, то теперь всё это даёт одна строчка:
public record User(string Name, int Age);
Отличие от классов Class сравнивается по ссылке. Два объекта с одинаковыми данными — разные сущности. Record сравнивается по значению. Два объекта с одинаковыми полями — эквивалентны.
var u1 = new User("Alice", 25);
var u2 = new User("Alice", 25);

Console.WriteLine(u1 == u2); // true
Дополнительные фишки Записи неизменяемы, но их удобно клонировать с изменением:
var u1 = new User("Alice", 25);
var u2 = u1 with { Age = 26 };

Console.WriteLine(u2); // User { Name = Alice, Age = 26 }
Можно наследовать record-тип:
public record User(string Name, int Age);
public record Admin(string Name, int Age, string Role) : User(Name, Age);
record — это синтаксический сахар, который сокращает код и делает модели данных чище и понятнее. 🐸 Библиотека шарписта #il_люминатор

🤩 Придумали ещё задачку Вопросы и задачи на знание языка, баз данных и алгоритмов позади и рекрутер задаёт такой вопрос: Твиттер или Х? Как бы вы ответили? К слову, подписывайтесь на наши каналы в обоих соц. сетях. Там мемы и полезные материалы. 🐸 Библиотека шарписта

🚩 Задача с собеса: пират и сундуки Представьте, что вы пират и у вас есть 12 закрытых сундуков. Все они полны золотых монет, но один — фейковый: в нём только песок. Золото тяжелее, песок легче. У вас есть большие весы без гирь, и всего три взвешивания, чтобы вычислить пустышку. Как решить эту задачу: 1. Делим сундуки на группы по 6 штук. Взвешиваем. Берём ту группу, где вес меньше. 2. Снова делим на группы, но теперь по 3. Взвешиваем. Берём ту тройку, где легче. 3. Сравниваем внутри этой тройки два сундука. Лёгкий сундук и будет с песком. Если сундуки одинаковые по весу, но с песком тот, что остался. Задача решается простым бинарным поиском. 🐸 Библиотека шарписта #dotnet_challenge

🤟 Шарповый взгляд Привет, шарписты! Как вам контент на этой неделе? Отзыв и предложения принимаются в комментах 👇 🐸 Библиотека шарписта

⏳ Последние часы со скидкой! Мы уже закрыли вебинар «ИИ-агенты: новая фаза развития AI», но запись всё ещё доступна. А дальше
⏳ Последние часы со скидкой! Мы уже закрыли вебинар «ИИ-агенты: новая фаза развития AI», но запись всё ещё доступна. А дальше остаётся только практика. На курсе «ИИ-агенты для DS-специалистов» ты научишься разрабатывать агентов, собирать RAG-системы и адаптировать LLM под бизнес. ⏰ Сегодня цена ещё 57.000 ₽ с промокодом datarascals. Завтра — 69.000 ₽. 👉 Успеть оплатить до полуночи

😘 Дайджест недели Собрали для вас новости и материалы последней недели. — WinUI Gallery 2.7 Вышла новая версия WinUI Gallery
😘 Дайджест недели Собрали для вас новости и материалы последней недели. — WinUI Gallery 2.7 Вышла новая версия WinUI Gallery — приложения для изучения и тестирования контролов WinUI. В версии 2.7 появились вкладки истории и избранного. Добавлены новые и обновлённые сэмплы: от TitleBar до ThemeShadow. — Google Play переходит на 16 KB .NET MAUI 9 уже совместим с новым требованием Google. Достаточно обновиться до .NET 9, проверить пакеты в проекте и заменить те, что не поддерживают новые страницы. — XAML Live PreviewГде заказать курсовую по программированиюБиблиотека для величин — UnitsNet.NET Aspire 9.5 🐸Библиотека шарписта #async_news

🔥 Сегодня последний день скидки! На недавнем вебинаре «ИИ-агенты: новая фаза развития AI» мы показали, как агенты уже меняют
🔥 Сегодня последний день скидки! На недавнем вебинаре «ИИ-агенты: новая фаза развития AI» мы показали, как агенты уже меняют работу Data Scientists и инженеров. Что тебя ждёт на курсе: ⚡️ создашь своего ИИ-агента с нуля ⚡️ соберёшь RAG-систему ⚡️ научишься адаптировать LLM под реальные данные бизнеса ⏳ До конца этого дня цена на курс 57 000 ₽. Уже завтра будет 69 000 ₽. Успевай записаться (используй промокод datarascals). 🔗 Записаться на курс

👨‍💻 Каналы в .NET Когда в приложении нужно обрабатывать поток данных от продюсеров к потребителям, первым делом вспоминают про очереди или ConcurrentQueue. Но в асинхронном мире этого мало. Поэтому в .NET есть каналы. Канал устроен как пара из продюсера и потребителя. Когда продюсер пишет элемент в канал, он либо сразу уходит к потребителю, либо ждёт, если очередь переполнена. Потребитель, в свою очередь, может ждать новые элементы без блокировки потоков — всё работает на async/await. Главная сила каналов — балансировка нагрузки. Ограниченные каналы позволяют держать под контролем количество элементов. Это защищает приложение от перегрузки: если продюсер работает быстрее, чем потребитель, система сама притормозит поток данных. Неограниченные каналы — вариант попроще, они всегда принимают новые элементы, но это может обернуться непредсказуемым ростом памяти. Мини-пример:
var channel = Channel.CreateBounded<int>(5);

// producer
_ = Task.Run(async () =>
{
    for (int i = 0; i < 10; i++)
    {
        await channel.Writer.WriteAsync(i);
        Console.WriteLine($"Produced {i}");
    }
    channel.Writer.Complete();
});

// consumer
await foreach (var item in channel.Reader.ReadAllAsync())
{
    Console.WriteLine($"Consumed {item}");
}
Почему это лучше, чем ConcurrentQueue? Потому что Channel создан сразу с учётом асинхронности. Вам не нужно городить блокировки и таймеры ожидания — достаточно написать await reader.ReadAsync(), и код будет сам по себе масштабироваться без блокировки потоков. 🐸Библиотека шарписта #sharp_view

❓ Что выведет код Пишите свои ответы в комментариях 👇 Для любознательных ответ такой: 333 #dotnet_challenge
Что выведет код Пишите свои ответы в комментариях 👇 Для любознательных ответ такой: 333 #dotnet_challenge

🤫 Курс «ИИ-агенты для DS-специалистов» Каждый технологический скачок оставляет позади тех, кто «подождал ещё чуть-чуть». ИИ-
🤫 Курс «ИИ-агенты для DS-специалистов» Каждый технологический скачок оставляет позади тех, кто «подождал ещё чуть-чуть». ИИ-агенты — это новый рывок. Уже через пару лет именно они будут драйвить аналитику и автоматизацию. Хотите остаться на гребне? 🖥️ На курсе «ИИ-агенты для DS-специалистов» мы разберём: — создание AI-агентов с нуля — сборку собственной RAG-системы — интеграцию LLM под задачи бизнеса 📌 Курс подходит: → ML/AI инженерам (middle+ / senior) → Data Scientists → Backend и platform-инженерам → Advanced CS/DS студентам ⚡️ Старт уже скоро — 3 октября. 💰 До 28 сентября действует скидка — 57.000 ₽ вместо 69.000 ₽ (по промокоду datarascals). 🔗 Узнать больше о курсе и записаться З.ы. если вы не успели на вебинар «ИИ-агенты: новая фаза развития искусственного интеллекта» — запись уже доступна

🔄 Апдейт .NET Aspire Microsoft представила .NET Aspire 9.5 — свежий релиз для разработки распределённых приложений. Главное
🔄 Апдейт .NET Aspire Microsoft представила .NET Aspire 9.5 — свежий релиз для разработки распределённых приложений. Главное новшество — file-based AppHost: теперь можно описать всё приложение в одном файле apphost.cs, без громоздких .csproj. Добавление ресурсов и сервисов делается буквально одной строкой. Ещё появились улучшения в CLI, новая команда aspire update, упрощающая апгрейд SDK и интеграций, а также обновлённый дэшборд. ➡️ Блог разработчиков 🐸Библиотека шарписта #async_news