ru
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 день
Архив постов
🔍 50 фраз, из-за которых ваше резюме C#-разработчика летит в корзину На первый взгляд может показаться, что фраза «пишу чист
🔍 50 фраз, из-за которых ваше резюме C#-разработчика летит в корзину На первый взгляд может показаться, что фраза «пишу чистый код на C#» звучит убедительно и профессионально — но на практике рекрутеры и ATS-системы давно привыкли к таким штампам и игнорируют их как пустые слова. Помните: каждая строчка в резюме должна отвечать на вопрос «и что?». Если после вашей фразы можно задать этот вопрос — значит, она недостаточно конкретна. ➡️ В статье про все клише, которые стоит убрать из резюме 🐸 Библиотека шарписта

🤓 Пока Python стал π-thon, ты можешь стать Data Scientist'ом В Proglib.academy стартует экспресс-курс «Математика для Data S
🤓 Пока Python стал π-thon, ты можешь стать Data Scientist'ом В Proglib.academy стартует экспресс-курс «Математика для Data Science»: 10 живых вебинаров, практика на Python и спикеры из ВШЭ, Яндекс Практикума и Wildberries, которые всё разложат по полочкам. В программе: 🔹 матан, линал, теория вероятностей; 🔹 3 практических проекта + викторина с розыгрышем TG Premium; 🔹 поддержка преподавателей и чат с единомышленниками; 🎁 Оплати курс до 19 октября — получи курс по базовой математике в подарок. 🗓️ Старт — 6 ноября 👉 Записаться на курс

👨‍💻 Windows 10 больше не получит обновлений Сегодня Microsoft выпустила последнее обновление для Windows 10. Дальше — тишин
👨‍💻 Windows 10 больше не получит обновлений Сегодня Microsoft выпустила последнее обновление для Windows 10. Дальше — тишина: новых патчей безопасности не будет. Через пару недель система станет мишенью для вирусов и хакерских атак. Есть несколько способов продлить жизнь десятке — от года до нескольких лет. • Официальная программа ESU — до октября 2026 Microsoft запустила программу расширенных обновлений. Бесплатно, но только на год. Чтобы подключиться: 1. Войдите в учётную запись Microsoft 2. Смените регион на США (для пользователей из России и Беларуси) 3. Проверьте статус через команду в PowerShell 4. Зарегистрируйтесь через Центр обновлений После активации система получит доступ к патчам безопасности ещё на год. • LTSC-версия — до января 2027 Корпоративная сборка Windows 10 LTSC (21H2) не получает новых функций, но апдейты безопасности идут до начала 2027 года. Подходит тем, кому нужна стабильность без лишних обновлений. • TSforge — до 2028 года Скрипт через PowerShell, который продлевает поддержку ещё на три года. Нужно сменить регион на страну ЕС, запустить команду и активировать ESU через меню. Проверить результат можно через команду в системе. • 0patch Agent — постоянная защита Программа, которая ставит микропатчи прямо в код системы. Работает даже после окончания всех официальных обновлений и закрывает уязвимости в реальном времени. 🐸 Библиотека шарписта #async_news

🪚 Швейцарский нож для коллекций коллекций Коллекция коллекций — частая головная боль. Пришли батчи из очереди, загрузили стр
🪚 Швейцарский нож для коллекций коллекций Коллекция коллекций — частая головная боль. Пришли батчи из очереди, загрузили страницы из API, получили результаты от нескольких потоков. Одна строка вместо циклов и временных списков:
var all = batches.SelectMany(b => b).ToList();
Когда использовать • Батчи сообщений из Kafka/RabbitMQ → один список для обработки • Постраничные данные из API → единая коллекция • Результаты параллельных задач → склеить всё вместе SelectMany сохраняет порядок. Если у вас [1,2], [3,4], [5,6] — получите [1,2,3,4,5,6]. Критично для событий, логов, приоритетных очередей. 🐸 Библиотека шарписта #sharp_view

Как работать с массивами в C# без тормозов и без unsafe-кода В C# каждое обращение к элементу массива проверяется на выход за
Как работать с массивами в C# без тормозов и без unsafe-кода В C# каждое обращение к элементу массива проверяется на выход за границы. Это безопасно, но медленно. Разработчики часто решают проблему через unsafe-код с указателями — быстро, но опасно: один неверный индекс, и приложение крашится или получает дыру в безопасности. Есть третий путь — Span<T> Span — это структура, которая хранит указатель на данные и их длину. Фишка в том, что это ref struct — она живёт только в стеке и не может попасть в кучу. Благодаря этому компилятор гарантирует: данные переживут span, а значит проверки границ можно убрать. Например, в быстрой сортровке вместо передачи массива с индексами low/high передаёте span. Код короче, переполнение невозможно, а рекурсивные вызовы работают через срезы:
// Было: опасно, (low + high) может переполниться
void Quicksort(int[] array, int low, int high) {
    int mid = (low + high) / 2;  // 💥 overflow!
    // ...
    Quicksort(array, low, pivot - 1);
    Quicksort(array, pivot + 1, high);
}

// Стало: безопасно и выразительно
void Quicksort(Span<int> span) {
    if (span.Length <= 1) return;
    
    int pivot = Partition(span);
    Quicksort(span[..pivot]);        // левая часть
    Quicksort(span[(pivot + 1)..]);  // правая часть
}
Раньше для передачи части массива в функцию приходилось либо копировать данные, либо таскать массив + offset + length. Span решает это элегантно: создаёте срез array[10..20], передаёте дальше — никакого копирования, полная безопасность типов. 🐸 Библиотека шарписта #il_люминатор

Практикум, который снимет боль про микросервисы, о которой все молчат. Sync vs Async: что убьёт ваш проект, а что спасёт? 15
Практикум, который снимет боль про микросервисы, о которой все молчат. Sync vs Async: что убьёт ваш проект, а что спасёт? 15 октября, 19:00 — практический вебинар для разработчиков, архитекторов и девопсеров от OTUS. Работаем вместе с Олегом Голенищевым, Senior .NET-разработчиком Directum, преподавателем Microsoft. Приходи, если хочешь: ✍️Понимать, где Sync — мастхэв, а где Async — единственный шанс выжить ✍️Получить FANG-уровня чек-лист по интеграции (и бонус — шаблоны конфигов Spring Boot для Kafka и RabbitMQ) ✍️Забрать 7% скидку на любой курс OTUS (именно так, просто за регистрацию) ✍️Не попасть в “клуб тех, кто строил микросервисы по учебнику, а теперь переписывает всё с нуля” Запишись, чтобы не чинить то, что можно не ломать. Запись, подарки и скидка — только для своих. Лови шанс — кликай на регистрацию: https://tglink.io/a0d055ccd13e Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: 2W5zFJ4TwVr

🚩 Задача с собеса Задача: дана строка s и строка p. Необходимо найти все начальные индексы подстрок в s, которые являются анаграммами строки p. Анаграмма — это слово или фраза, образованная перестановкой букв другого слова, используя все исходные буквы ровно один раз. Пример:
Input: s = "cbaebabacd", p = "abc" Output: [0, 6] Объяснение: Подстрока с индекса 0 - "cba", анаграмма "abc". Подстрока с индекса 6 - "bac", анаграмма "abc".
Оптимальное решение использует технику скользящего окна с подсчетом частот символов. 1. Подсчитываем количество и частоту всех символов в строке p 2. Создаем скользящее окно размером со строку p в строке s 3. Для каждой позиции окна сравниваем частоты символов с эталоном 4. При совпадении добавляем индекс в результат Код:
public class Solution 
{
    public IList<int> FindAnagrams(string s, string p) 
    {
        List<int> result = new List<int>();
        
        if (s.Length < p.Length) 
            return result;
        
        // Массивы для подсчета частот символов (26 букв английского алфавита)
        int[] pCount = new int[26];
        int[] windowCount = new int[26];
        
        // Подсчитываем частоты в строке p и первом окне
        for (int i = 0; i < p.Length; i++) 
        {
            pCount[p[i] - 'a']++;
            windowCount[s[i] - 'a']++;
        }
        
        // Проверяем первое окно
        if (AreEqual(pCount, windowCount))
            result.Add(0);
        
        // Скользим окном по строке s
        for (int i = p.Length; i < s.Length; i++) 
        {
            // Добавляем новый символ справа
            windowCount[s[i] - 'a']++;
            
            // Удаляем старый символ слева
            windowCount[s[i - p.Length] - 'a']--;
            
            // Проверяем текущее окно
            if (AreEqual(pCount, windowCount))
                result.Add(i - p.Length + 1);
        }
        
        return result;
    }
    
    // Вспомогательный метод для сравнения массивов частот
    private bool AreEqual(int[] arr1, int[] arr2) 
    {
        for (int i = 0; i < 26; i++) 
        {
            if (arr1[i] != arr2[i])
                return false;
        }
        return true;
    }
}
🐸 Библиотека шарписта #dotnet_challenge

В proglib.academy — Глобальная распродажа знаний ‼️ 💥 Весь октябрь –40% на те курсы, которые выбирают чаще всего.
Курсы с практикой, без воды и пафоса. Просто берёшь и делаешь апгрейд.
👉 Успей забрать свой курс на proglib.academy

❓ Какой контент на этой неделе был топ
Anonymous voting

📰 Дайджест недели Что произошло в мире за последние семь дней. — Разработчик как AI-код-ревьюер Введение AI в .NET разработк
📰 Дайджест недели Что произошло в мире за последние семь дней. — Разработчик как AI-код-ревьюер Введение AI в .NET разработку повышает темпы, но успешная интеграция зависит от тщательной проверки: ревьюеру важно контролировать архитектуру, тесты и качество, иначе риски для поддержки и надёжности возрастают. — .NET 10 готовит революцию в управлении памятью Разработчики включат по умолчанию функцию DATAS, которая адаптирует размер кучи к текущим потребностям приложения. — C# потерял две позиции в рейтинге PYPLКак вайб-кодинг меняет рынок IT-образования JetBrains .NET Days 2025 🐸 Библиотека шарписта #async_news

🧠 Должен ли разработчик запоминать код На Reddit вспыхнула классическая тема — запоминают ли профессиональные разработчики с
🧠 Должен ли разработчик запоминать код На Reddit вспыхнула классическая тема — запоминают ли профессиональные разработчики свой код. Комментаторы разбились на два лагеря:
Если ты не помнишь, как работает твоя функция, ты просто копипастер!
и
Профессионал не держит в голове код, он держит в голове логику и подход. Код — деталь реализации
💬 Нужно ли запоминать код, или важно просто понимать, как он работает? 🐸 Библиотека шарписта #entry_point

✏️ Задача с собеса: квадраты отсортированного массива Вам дан отсортированный по возрастанию массив целых чисел. Нужно создать новый массив, в котором содержатся квадраты этих чисел — и он тоже должен быть отсортирован по возрастанию. Поскольку исходный массив отсортирован, отрицательные числа после возведения в квадрат могут стать больше положительных, поэтому нужно рассматривать оба края массива. 1. Обрабатываем два края массива (left и right), сравниваем их квадраты. 2. Наибольший квадрат записываем в конец результирующего массива. 3. Сдвигаем соответствующий указатель — либо left, либо right. 4. В конце получаем отсортированный массив квадратов. Решение с двумя указателями:
public int[] SortedSquares(int[] nums) {
    int n = nums.Length;
    int[] result = new int[n];
    int left = 0, right = n - 1, pos = n - 1;

    while (left <= right) {
        int leftSq = nums[left] * nums[left];
        int rightSq = nums[right] * nums[right];

        if (leftSq > rightSq) {
            result[pos] = leftSq;
            left++;
        } else {
            result[pos] = rightSq;
            right--;
        }
        pos--;
    }
    return result;
}
➡️ Попробовать на литкоде 🐸 Библиотека шарписта #dotnet_challenge

🚀 JetBrains .NET Days 2025 JetBrains снова собрала лучших инженеров и евангелистов .NET на своей онлайн-конференции .NET Day
🚀 JetBrains .NET Days 2025 JetBrains снова собрала лучших инженеров и евангелистов .NET на своей онлайн-конференции .NET Days. Два дня плотных докладов — от чистой архитектуры и распределённых систем до GenAI и F#. Самое интересное за первый день: • Чистая архитектура с ASP.NET Core Как выстроить проект так, чтобы код был читаемым, тестируемым и легко рефакторился. Разделение слоёв и зависимостей без боли. • Nullability в C#: включаем защиту от NullReferenceException Аннотации и статический анализ помогают избавиться от NullReferenceException и внедрить null safety даже в старый код. • Как выбрать систему обмена сообщениями Сравнение AWS SQS, RabbitMQ и Azure Service Bus — плюсы, минусы и типичные ошибки при выборе очередей сообщений. • TDD на фронтенде с Blazor Как применять TDD на фронтенде с Blazor и bUnit. Быстрая обратная связь и уверенность в каждом изменении. Темы за второй день: • Версионирование событийных систем Безопасные приёмы эволюции событий: версионирование, апкастинг и совместимость без поломок у потребителей. • Генеративный ИИ и .NET Aspire в действии Интеграция LLM, управление контекстом и масштабируемая оркестрация с помощью Semantic Kernel и Aspire. • Функциональное программирование в F#: мода или польза Реальные преимущества функционального подхода — лаконичные пайплайны, паттерн-матчинг и безопасные абстракции. • Как нашли утечку 2 ГБ в день за 5 минут История о том, как обнаружить гигабайтные утечки памяти с помощью dotMemory в продакшене за считанные минуты. Два дня — и десятки инсайтов о будущем .NET: от облаков и AI до функционального подхода и устойчивой архитектуры. Записи доступны на YouTube. ➡️ Первый день ➡️ Второй день 🐸 Библиотека шарписта #sharp_view

👀 Показываем взаимодействие окружений в 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

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