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

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

Открыть в Telegram

Все самое полезное для C#-разработчика в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/b60af5a4 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead

Больше

📈 Аналитический обзор Telegram-канала Библиотека шарписта | C#, F#, .NET, ASP.NET

Канал Библиотека шарписта | C#, F#, .NET, ASP.NET (@csharpproglib) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 21 865 подписчиков, занимая 6 209 место в категории Технологии и приложения и 30 824 место в регионе Россия.

📊 Показатели аудитории и динамика

С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 21 865 подписчиков.

Согласно последним данным от 11 июня, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -95, а за последние 24 часа — -6, при этом общий охват остаётся высоким.

  • Статус верификации: Не верифицирован
  • Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 12.48%. В первые 24 часа после публикации контент обычно набирает 7.13% реакций от общего числа подписчиков.
  • Охват публикаций: В среднем каждый пост получает 2 729 просмотров. В течение первых суток публикация набирает 1 560 просмотров.
  • Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 9.
  • Тематические интересы: Контент сосредоточен на ключевых темах, таких как .net, шарписта, навигация, await, string.

📝 Описание и контентная политика

Автор описывает ресурс как площадку для выражения субъективного мнения:
Все самое полезное для C#-разработчика в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/b60af5a4 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead

Благодаря высокой частоте обновлений (последние данные получены 12 июня, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.

21 865
Подписчики
-624 часа
-237 дней
-9530 день
Архив постов
👀 Показываем взаимодействие окружений в Git 🐸 Библиотека шарписта #схема
👀 Показываем взаимодействие окружений в Git 🐸 Библиотека шарписта #схема

😂 Почему Console.ReadLine() не работает в браузере Вы когда-нибудь пытались использовать метод Console.ReadLine() в онлайн-к
😂 Почему Console.ReadLine() не работает в браузере Вы когда-нибудь пытались использовать метод Console.ReadLine() в онлайн-компиляторе C#? Да, звучит как извращение, но давайте углубимся в проблему. Метод Console.ReadLine() позволяет вашему приложению ожидать ввода пользователя в консоли — это основной инструмент для взаимодействия с пользователем в командной строке. Но когда вы пытаетесь использовать этот метод в браузерной среде, появляется проблема: браузеры просто не поддерживают работу с консолью напрямую. Атрибут [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] прямо в документации говорит: «Не поддерживайте это в браузере!» Браузер — это отличное место для быстрых экспериментов, но когда речь идет о полноценной разработке, лучше использовать локальные инструменты: Visual Studio или Visual Studio Code. 🐸 Библиотека шарписта #sharp_view

⌛️ Таймаут в одну строку Когда нужно ограничить время ожидания ответа от HTTP-запроса можно использовать метод WaitAsync для установки таймаута без необходимости создавать отдельные токены отмены. Пример:
var response = await http.GetAsync(url).WaitAsync(TimeSpan.FromSeconds(5));
Если время ожидания превышает заданный лимит, метод выбросит исключение. Поэтому важно правильно обрабатывать эту ситуацию, решая, нужно ли повторить запрос или применить стратегию отката. 🐸 Библиотека шарписта #sharp_view

👀 Баг или фича Пока мы думали как бы вам рассказать про наш Х, обнаружили любопытную вещь: если пользователь не залогинен в
👀 Баг или фича Пока мы думали как бы вам рассказать про наш Х, обнаружили любопытную вещь: если пользователь не залогинен в Х, то лента нашего паблика пустая — ни одного поста. Теперь разбираемся, это недоработка или новая фича, мотивирующая авторизацию 🙂 🐸 Библиотека шарписта

💥 Весь октябрь -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