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 701 名订阅者,在 技术与应用 类别中位列第 5 943,并在 俄罗斯 地区排名第 30 267

📊 受众指标与增长动态

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

根据 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 701
订阅者
-624 小时
-57
-4830
帖子存档
💥 Весь октябрь -40% на курсы для разработчиков в proglib.academy Бери знания под свой стек: Python | алгоритмы | математика
💥 Весь октябрь -40% на курсы для разработчиков в proglib.academy Бери знания под свой стек: Python | алгоритмы | математика для Data Science | архитектура кода.
Пока одни ждут «идеальный момент», другие просто учатся. А потом берут ваши офферы.
⚡️ Пока скидка действует, апдейтни свои навыки

🎓 Как вайб-кодинг меняет рынок IT-образования За последние годы подход к обучению программированию меняется быстрее, чем сам
🎓 Как вайб-кодинг меняет рынок IT-образования За последние годы подход к обучению программированию меняется быстрее, чем сами языки. На смену долгим упражнениям с синтаксисом приходит работа с идеями и концепциями, где код во многом генерируется автоматически. Этот сдвиг называют «вайб-кодингом». Он уже влияет на университетские программы, онлайн-курсы и требования к выпускникам. ➡️ В статье о том, что стоит за этим термином и как он меняет обучение IT-специалистов. 🐸 Библиотека шарписта

⭐️ Два пункта вниз C# потерял сразу две позиции в рейтинге PYPL. 🐸 Библиотека шарписта #async_news
⭐️ Два пункта вниз C# потерял сразу две позиции в рейтинге PYPL. 🐸 Библиотека шарписта #async_news

🛠 Ловите ошибку сразу Ничто не портит день разработчика так, как внезапный NullReferenceException в проде. Лучше упасть сраз
🛠 Ловите ошибку сразу Ничто не портит день разработчика так, как внезапный NullReferenceException в проде. Лучше упасть сразу — с понятным сообщением, чем потом искать, где всё пошло не так. Как избежать ошибки:
_ = arg ?? throw new ArgumentNullException(nameof(arg));
Это fail-fast подход: программа ломается там, где ошибка реально возникла, а не через пять вызовов. Полезно для входных параметров, обязательных зависимостей и DTO, пришедших из вне. 🐸 Библиотека шарписта #sharp_view

⚙️ Под капотом async/await Когда вы пишете асинхронный метод вроде:
async Task<int> GetDataAsync()
{
    var data = await FetchAsync();
    return data.Length;
}
вы можете думать, что это «всего лишь ожидание задачи». Но на самом деле компилятор C# превращает этот метод в state machine — конечный автомат, который управляет переходами между состояниями выполнения. State machine — это структура, которая: • хранит текущее состояние выполнения программы, например, до await, после await или завершено, • знает, в какое состояние перейти дальше, когда наступает внешнее событие например, завершение Task. Проще говоря, компилятор разворачивает ваш линейный асинхронный код в набор состояний + переключатель между ними. Что делает компилятор При компиляции метода с await создаётся вспомогательный класс, реализующий интерфейс IAsyncStateMachine. Если упростить, то наш пример превращается примерно в:
private struct GetDataAsyncStateMachine : IAsyncStateMachine
{
    public int _state;
    public AsyncTaskMethodBuilder<int> _builder;
    private TaskAwaiter<string> _awaiter;

    public void MoveNext()
    {
        try
        {
            if (_state == 0)
            {
                // после await
                var result = _awaiter.GetResult();
                _builder.SetResult(result.Length);
                return;
            }

            var task = FetchAsync();
            if (!task.IsCompleted)
            {
                _state = 0;
                _awaiter = task.GetAwaiter();
                _builder.AwaitUnsafeOnCompleted(ref _awaiter, ref this);
                return;
            }

            _builder.SetResult(task.Result.Length);
        }
        catch (Exception ex)
        {
            _builder.SetException(ex);
        }
    }

    public void SetStateMachine(IAsyncStateMachine stateMachine) { }
}
Другие примеры использования state machines в C# • yield return — генерация итераторов IEnumerator • foreach на async коллекциях — асинхронные итераторы IAsyncEnumerable Каждый await или yield превращает метод в "автомат", который сам управляет своим ходом выполнения. 🐸 Библиотека шарписта #il_люминатор

🚩 Задача с собеса: контейнер с водой Ваша задача — выбрать две вертикальные линии на плоскости, чтобы вместе с осью X они об
🚩 Задача с собеса: контейнер с водой Ваша задача — выбрать две вертикальные линии на плоскости, чтобы вместе с осью X они образовали контейнер, в который поместится максимум воды. Даны высоты этих линий в массиве. Как действовать: 1. Ставим два указателя: один — на начало, второй — на конец массива. 2. Считаем объем текущего контейнера: ширина между указателями умножается на минимальную из двух высот. 3. Двигаем указатель с меньшей высотой внутрь. Если обе высоты равны — можно сдвигать любой. 4. Запоминаем максимум, повторяем шаги, пока указатели не встретятся. По сути, это жадный алгоритм с двумя указателями, который перебирает края и минимизирует лишние проверки. Пример реализации:
public int MaxArea(int[] h)
{
    int l = 0, r = h.Length - 1, m = 0;
    while (l < r)
    {
        m = Math.Max(m, (r - l) * Math.Min(h[l], h[r]));
        if (h[l] < h[r]) l++; else r--;
    }
    return m;
}
➡️ Попробовать на литкоде 🐸 Библиотека шарписта #dotnet_challenge

🤔 Что вас зацепило на неделе Делитесь в комментах: • Крутые материалы • Интересные новости • Полезные инсайты • Новые инструменты Собираем коллективную мудрость 👇 🐸 Библиотека шарписта #entry_point

🗞 Дайджест недели Освежаем в памяти прошедшие дни и готовимся к новой рабочей неделе. — JetBrains просит разработчиков подел
🗞 Дайджест недели Освежаем в памяти прошедшие дни и готовимся к новой рабочей неделе. — JetBrains просит разработчиков поделиться кодом Участие добровольное, а конфиденциальность и контроль — в руках пользователя. Новые опции появятся в обновлении 2025.2.4 уже в ближайшие недели. — PostgreSQL 18ТОП-9 популярных AI-агентов для разработкиMicrosoft представили Agent FrameworkRx.NET 6.1 🐸 Библиотека шарписта #async_news

🚀 Курс «ИИ-агенты для DS-специалистов» уже стартовал Первый вебинар успешно прошёл, участники уже начали разбираться, как ис
🚀 Курс «ИИ-агенты для DS-специалистов» уже стартовал Первый вебинар успешно прошёл, участники уже начали разбираться, как использовать ИИ-агентов в реальных проектах. Но всё самое интересное только начинается! 🔥 Впереди 4 мощных занятия — с практикой, инсайтами и разбором кейсов от экспертов. 💸 Сейчас действует специальная цена → 69.000 ₽ вместо 79.000 ₽. ⏳ Осталось всего 4 места. Не упустите шанс прокачаться в том, что будет определять будущее индустрии. 👉 Забронировать место на курсе

✏️ Генерация игнор-файла прямо из CLI В .NET есть команда создаёт готовый .gitignore, оптимизированный под экосистему. В нём уже прописаны все типичные исключения: каталоги bin/, obj/, кэш NuGet, файлы публикаций, временные артефакты IDE и прочие служебные данные, которые не должны попадать в репозиторий. Команда:
dotnet new gitignore
Не нужно искать шаблон на GitHub или копировать его вручную — всё доступно из коробки. 🐸 Библиотека шарписта #sharp_view

🚀 Cвежие улучшения для реактивного кода В новой версии Rx.NET 6.1 появилось три ключевых новшества: метод DisposeWith для уд
🚀 Cвежие улучшения для реактивного кода В новой версии Rx.NET 6.1 появилось три ключевых новшества: метод DisposeWith для удобной работы с CompositeDisposable, новый TakeUntil(CancellationToken) для управления бесконечными потоками и оператор ResetExceptionDispatchState, решающий проблему с растущими стектрейсом при повторных await. ➡️ Подробнее про обнову 🐸 Библиотека шарписта #asycn_news

⚙️ Проверка на пустоту Когда нужно проверить строку на пустоту в C# есть два популярных метода: string.IsNullOrEmpty(str) воз
⚙️ Проверка на пустоту Когда нужно проверить строку на пустоту в C# есть два популярных метода: string.IsNullOrEmpty(str) возвращает true, если строка равна null или имеет длину 0 (""). string.IsNullOrWhiteSpace(str) идёт дальше: он также учитывает пробелы, табы и переводы строк. То есть " " будет считаться пустой. Код:
Console.WriteLine(string.IsNullOrEmpty("   ")); // False
Console.WriteLine(string.IsNullOrWhiteSpace("   ")); // True
string.IsNullOrWhiteSpace(str) идёт дальше: он также учитывает пробелы, табы и переводы строк. То есть " " будет считаться пустой. Если нужно проверить только на null и пустую строку — используйте IsNullOrEmpty. Если важно исключить строки, состоящие только из пробелов или невидимых символов — выбирайте IsNullOrWhiteSpace. 🐸 Библиотека шарписта #sharp_view

⚙️ Проверка на пустоту Когда нужно проверить строку на пустоту в C# есть два популярных метода: string.IsNullOrEmpty(str) возвращает true, если строка равна null или имеет длину 0 (""). string.IsNullOrWhiteSpace(str) идёт дальше: он также учитывает пробелы, табы и переводы строк. То есть " " будет считаться пустой. Код:
Console.WriteLine(string.IsNullOrEmpty("   ")); // False
Console.WriteLine(string.IsNullOrWhiteSpace("   ")); // True
string.IsNullOrWhiteSpace(str) идёт дальше: он также учитывает пробелы, табы и переводы строк. То есть " " будет считаться пустой. Если нужно проверить только на null и пустую строку — используйте IsNullOrEmpty. Если важно исключить строки, состоящие только из пробелов или невидимых символов — выбирайте IsNullOrWhiteSpace. 🐸 Библиотека шарписта #sharp_view

💪 Разминка перед выходными Есть код:
var dict = new Dictionary<object, string>();

dict[1] = "int";
dict[1L] = "long";
dict[1.0] = "double";

Console.WriteLine(dict.Count);
Console.WriteLine(dict[1 ]);
Что выведет код? Пишите в комменты 👇 Ответь спрячем здесь: 3 int 🐸 Библиотека шарписта #dotnet_challenge

⚙️ Zero-Allocation LINQ для .NET LINQ — одна из лучших фич в C#. Она делает код декларативным и читаемым. Но у стандартного S
⚙️ Zero-Allocation LINQ для .NET LINQ — одна из лучших фич в C#. Она делает код декларативным и читаемым. Но у стандартного System.Linq есть проблема: каждая операция создает кучу объектов и аллокаций Если у вас миллионы запросов в секунду, эти «маленькие удобства» превращаются в серьёзные проблемы со сборщиком мусора, задержками и падением производительности. ZLinq — это библиотека, которая реализует все стандартные LINQ-операции (Where, Select, GroupBy, Aggregate, OrderBy и т.д.) без выделения памяти в куче. Пример:
// Обычный LINQ
var result = numbers.Where(x => x % 2 == 0).Select(x => x * 2).ToList();

// ZLinq
var result = numbers.AsZEnumerable()
                    .Where(x => x % 2 == 0)
                    .Select(x => x * 2)
                    .ToList();
➡️ GitHub либы 🐸 Библиотека шарписта #sharp_view

👾 AI-агенты — настоящее, о котором все говорят! Уже 3 октября стартует второй поток нашего нового курса «AI-агенты для DS-сп
👾 AI-агенты — настоящее, о котором все говорят! Уже 3 октября стартует второй поток нашего нового курса «AI-агенты для DS-специалистов». Это продвинутая программа для тех, кто хочет получить прикладной опыт с LLM и решать сложные задачи. На обучении вы соберёте полноценные LLM-системы с учётом особенностей доменных областей, получите hands-on навыки RAG, Crew-AI / Autogen / LangGraph и агентов. 🎓 В рамках курса вы научитесь: 1️⃣ адаптировать LLM под разные предметные области и данные 2️⃣ собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества 3️⃣ строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой Научитесь применять похожие подходы в разных доменных областях, получите фундамент для уверенного прохождения NLP system design интервью и перехода на следующий грейд. 🗓️ Завтра первый вебинар, успевайте залететь в ряды ИИ-первопроходцев 👈🏻

📎 Microsoft Agent Framework Microsoft представила Agent Framework — открытый движок для разработки приложений, где разные ИИ
📎 Microsoft Agent Framework Microsoft представила Agent Framework — открытый движок для разработки приложений, где разные ИИ-агенты могут общаться, договариваться и работать вместе. Agent Framework опирается на открытые стандарты. Он поддерживает протоколы вроде MCP и A2A. Для тех, кто работает в экосистеме .NET и C#, это шанс строить надёжные агентные системы, которые можно интегрировать с корпоративными приложениями и сервисами. Выглядит как попытка закрыть разрыв между локальными экспериментами и продакшеном. ➡️ Блог разработчиков 🐸 Библиотека шарписта #async_news

👀 DI без хаоса Dependency Injection в .NET быстро превращает Program.cs в кашу. В видео показывают, как вынести DI в расшире
👀 DI без хаоса Dependency Injection в .NET быстро превращает Program.cs в кашу. В видео показывают, как вынести DI в расширения, структурировать код и упростить регистрацию сервисов с помощью Scrutor. ➡️ Смотреть видео 🐸 Библиотека шарписта #sharp_view