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

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

Open in Telegram

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

Show more

📈 Analytical overview of Telegram channel Библиотека шарписта | C#, F#, .NET, ASP.NET

Channel Библиотека шарписта | C#, F#, .NET, ASP.NET (@csharpproglib) in the Russian language segment is an active participant. Currently, the community unites 21 701 subscribers, ranking 5 943 in the Technologies & Applications category and 30 267 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 21 701 subscribers.

According to the latest data from 29 August, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -48 over the last 30 days and by -6 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 16.72%. Within the first 24 hours after publication, content typically collects 7.84% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 3 628 views. Within the first day, a publication typically gains 1 702 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 23.
  • Thematic interests: Content is focused on key topics such as .net, шарписта, навигация, await, string.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
Все самое полезное для C#-разработчика в одном канале. Наши курсы: https://clc.to/y3LDtw По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead

Thanks to the high frequency of updates (latest data received on 30 August, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

21 701
Subscribers
-624 hours
-57 days
-4830 days
Posts Archive
💥 Весь октябрь -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