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
帖子存档
⚡️ Бесплатный вебинар — ИИ-агенты: новая фаза развития AI 24 сентября в 19:00 МСК состоится бесплатный вебинар с Максимом Шаланкиным — Data Science Team Lead в финтех-команде MWS, а познакомиться с ним ближе можно в его тг-канале. Тема:
«ИИ-агенты: новая фаза развития искусственного интеллекта».
На вебинаре разберёмся, почему агенты — это следующий шаг после ChatGPT, чем они отличаются от обычных моделей и как уже приносят бизнесу ROI до 80%. А дальше я покажу, как эта тема ложится в наш курс по ИИ-агентам, который разработан под руководством Никиты Зелинского. Подробности рассказываем в гс выше — включай, чтобы не пропустить.

🔄 Поддержка релизов .NET STS теперь 24 месяца Microsoft увеличивает срок поддержки релизов .NET с типом Short Term Support с
🔄 Поддержка релизов .NET STS теперь 24 месяца Microsoft увеличивает срок поддержки релизов .NET с типом Short Term Support с 18 до 24 месяцев. Это означает, что .NET 9, выпущенный 12 ноября 2024 года, будет поддерживаться до 10 ноября 2026 года — на 6 месяцев дольше, чем планировалось ранее. LTS-релизы сохраняют прежнюю политику: поддержка в течение 36 месяцев или 12 месяцев после выпуска следующего релиза. ➡️ Блог разработчиков 🐸Библиотека шарписта #async_news

📊 Почему сайты тормозят: фронтенд ли Сегодня большинство сайтов загружаются 3–5 секунд. Для пользователя это уже привычно, н
📊 Почему сайты тормозят: фронтенд ли Сегодня большинство сайтов загружаются 3–5 секунд. Для пользователя это уже привычно, но для бизнеса — потерянные клиенты и деньги. И дело не только во фронтенде: корень проблемы иногда глубже — в бэкенде. Что влияет на скорость ответа: • неоптимизированные запросы к базе • тяжёлые API-эндпоинты • отсутствие кэша или его неправильная реализация • перегрузка серверов и медленные очереди Фронтенд может ужать картинки и ускорить отрисовку, но если бэкенд думает по 2 секунды на запрос — сайт всё равно будет тормозить. 💬 Как вы относитесь к этой проблеме и что делаете в своих проектах, чтобы бэкенд не становился узким местом? 🐸Библиотека шарписта #entry_point

📅 24 сентября в 19:00 МСК — бесплатный вебинар с Максимом Шаланкиным. Тема: «ИИ-агенты: новая фаза развития искусственного интеллекта». 🔹 Почему все говорят про ИИ-агентов и куда вливаются миллиарды инвестиций. 🔹 Чем они отличаются от ChatGPT и обычных ботов. 🔹 Как работает цикл агента: восприятие → планирование → действие → обучение. 🔹 Живое демо простого агента. 🔹 Потенциал для бизнеса: автоматизация процессов и ROI до 80%. Не придёшь — будешь потом рассказывать, что «агенты — это как чат-боты», и ловить косые взгляды от коллег 😏 👉 Регистрируйтесь через форму на лендинге

👨‍💻 Ленивая генерация DTO Часто не хочется писать шаблонный код и будто для этого и были придуманы нейросети. Сегодня делимся с вами промптом для разбавления рутины. Промпт для генерации DTO:
Сгенерируй DTO класс на C# с публичными свойствами для объекта, содержащего следующие поля: {подставить полный список свойств}. Класс должен иметь комментарии для каждого свойства, описывающие его назначение. Используй стандартные соглашения оформления C# для именования классов и свойств.
🐸Библиотека шарписта #буст

👨‍💻 Как ускорить запуск .NET приложения 1️⃣ Сначала измерьте Включите EventPipe/PerfView/dotnet-trace для старта: какие сборки грузятся, на что тратится время. Снимите таймлайны: «вход в Main → готовность endpoint'ов / UI». Измеряйте Release-сборку, без отладчиков и без «горячих» кэшей. 2️⃣ Оптимизации сборки • ReadyToRun (R2R) Компилирует IL в машинный код при публикации:
<!-- Directory.Build.props или csproj -->
<PropertyGroup>
  <PublishReadyToRun>true</PublishReadyToRun>
  <PublishTrimmed>true</PublishTrimmed> 
  <TrimMode>partial</TrimMode>                    <!-- для библиотек и DI -->
</PropertyGroup>
• PGO (Profile-Guided Optimization) + R2R Соберите профиль и примените при crossgen2 (даёт лучший порядок/инлайнинг для «горячего» пути старта). • NativeAOT Полностью нативный бинарь, почти мгновенный старт. Подходит для CLI/служб с ограниченным набором фич и для «узких» сервисов или edge-эндпоинтов в вебе. 3️⃣ Минимизация загрузки и работы на старте Уберите всё, что не нужно при старте: тяжёлые клиенты (БД, кеши, внешние SDK) создавайте лениво, после поднятия хостинга. Прогружайте конфигурацию минимально: уберите лишние провайдеры, большие JSON-файлы, многократные AddJsonFile. Логи на старте — только консоль/минимальный уровень, позже можно расширить. Уберите неиспользуемые пакеты, объедините внутренние пакеты, избегайте древовидных зависимостей ради одной функции. Встроенный контейнер быстрый, но следите за графом: • Регайте Singleton/Scoped только когда нужно. • Избегайте «сервисов-глобов» с большим конструктором на десятки зависимостей. • Используйте фабрики/Lazy для тяжёлых зависимостей. 4️⃣ ASP.NET Core: быстрый подъём хоста Минимальный хостинг и только нужные middleware:
var builder = WebApplication.CreateBuilder(args);
// Оставьте только то, что нужно для старта
builder.Services.AddRouting();
var app = builder.Build();
// Критичный middleware – ближе к началу конвейера
app.MapGet("/healthz", () => "OK");
app.Run();
Отключите всё, что делает работу на старте: избыточная авто-дискавери Swagger, отражение в валидации, сканирование сборок. 5️⃣ Инициализация после старта Разнесите готовность принимать трафик и полную готовность всех подсистем: • Быстрый /healthz сразу. • Прогрев кэшей/метаданных — в фоне IHostedService с низким приоритетом. • В оркестраторе задайте readinessProbe после минимального старта, а «тяжёлый прогрев» делайте уже на фоне. 6️⃣ Тримминг: аккуратно, но даёт эффект PublishTrimmed=true + TrimMode=partial часто снижает размер и ускоряет загрузку. Обязательно добавляйте DynamicDependency/UnconditionalSuppressMessage/RD.XML для сохранения типов, которые нужны через рефлексию (DI/JSON/ORM). 💬 А у вас сколько секунд уходит на холодный старт .NET сервиса? 🐸Библиотека шарписта #буст

🧗 Кто такие Unit-лид и Technical Owner Классическая связка «тимлид + продакт-менеджер» не справляется с ростом команд до 50-
🧗 Кто такие Unit-лид и Technical Owner Классическая связка «тимлид + продакт-менеджер» не справляется с ростом команд до 50-100+ человек и усложнением продуктов. На смену приходят роли, ориентированные на продуктовое мышление вместо простого исполнения задач. Unit-лид функционирует как мини-CEO продуктового направления: управляет стратегией, а technical owner служит мостом между бизнесом и техникой. Главное отличие от прошлого: специалисты не просто выполняют поставленные задачи, а понимают продукт целиком. ➡️ Подробнее про обе роли 🐸Библиотека шарписта

🧩 Оптимизация кода с помощью Application Insights В .NET теперь проще выявлять узкие места и оптимизировать производительнос
🧩 Оптимизация кода с помощью Application Insights В .NET теперь проще выявлять узкие места и оптимизировать производительность приложений благодаря обновлениям в Application Insights. Инструмент собирает данные о работе кода в реальном времени, помогает находить медленные участки, лишние аллокации и повторяющиеся операции. ➡️ Блог разработчиков 🐸Библиотека шарписта

💎 Вспоминаем SOLID SOLID — это 5 принципов объектно-ориентированного проектирования. Давайте повторим эту базу. — Single Res
💎 Вспоминаем SOLID SOLID — это 5 принципов объектно-ориентированного проектирования. Давайте повторим эту базу. — Single Responsibility Principle (Принцип единственной ответственности) Каждый класс должен иметь только одну причину для изменения. Плохо: класс UserManager и сохраняет пользователя в БД, и отправляет email. Хорошо: UserRepository хранит, EmailService отправляет письма. — Open/Closed Principle (Принцип открытости/закрытости) Классы должны быть открыты для расширения, но закрыты для изменения. Новый функционал добавляем через расширение, а не переписывание старого кода. Пример: вместо переписывания метода — создаём новый подкласс или внедряем стратегию. — Liskov Substitution Principle (Принцип подстановки Барбары Лисков) Объекты подклассов должны работать так же, как объекты родителя. Если Square наследуется от Rectangle, он должен вести себя как прямоугольник, а не ломать ожидания. Суть: наследование не должно рушить логику программы. — Interface Segregation Principle (Принцип разделения интерфейсов) Лучше много маленьких интерфейсов, чем один огромный. Плохо: интерфейс IMachine с методами print(), scan(), fax(). Хорошо: IPrinter, IScanner, IFax. Каждый класс реализует только нужное. — Dependency Inversion Principle (Принцип инверсии зависимостей) Зависимости должны быть от абстракций, а не от конкретных классов. Плохо: класс ReportGenerator напрямую вызывает MySQLDatabase. Хорошо: ReportGenerator работает с интерфейсом Database, а уже конкретная БД подставляется снаружи. Без SOLID код быстро превращается в спагетти, где одно изменение ломает всё. 💬 Пишите в комменты как вы объясняете, что такое SOLID 🐸Библиотека шарписта #буст

Библиотечный метод возвращает ValueTask<T> (часто завершается синхронно). В вызывающем коде результат нужно ждать несколько раз и/или комбинировать с другими задачами через Task.WhenAll. Что делать правильно? 👾 — ValueTask<T> можно await-ить сколько угодно раз — как Task<T> 👍 — Сконвертировать в Task<T> через .AsTask() и уже его ждать/комбинировать 🥰 — Обернуть в Task.Run(...), чтобы получить полноценную Task ⚡️ — Никогда не возвращать ValueTask<T> из публичных API — всегда только Task<T> Библиотека задач по C#

📰 Недельный дайджест Собрали для вас материалы второй недели осени. — Сентябрьские обновления .NET Microsoft выпустили обнов
📰 Недельный дайджест Собрали для вас материалы второй недели осени. — Сентябрьские обновления .NET Microsoft выпустили обновления для .NET 8.0 и .NET 9.0. Эти обновления содержат исправления, не связанные с безопасностью, и направлены на улучшение стабильности и качества платформы. — Улучшения производительности в .NET 10 В .NET 10 значительные улучшения производительности были достигнуты благодаря оптимизациям в Just-In-Time (JIT) компиляторе. Также улучшена деабстракция, позволяющая интерфейсам и делегатам работать быстрее, а виртуальные вызовы — эффективно инлайнироваться. — 5 трендов IT-найма 2025Первый кандидат к релизу .NET 10Visual Studio 2026 Insiders уже доступна 🐸Библиотека шарписта

💬 Full-Stack или глубокая специализация Разработчики всегда стояли на перепутье: либо углубляться в одну область, становясь
💬 Full-Stack или глубокая специализация Разработчики всегда стояли на перепутье: либо углубляться в одну область, становясь мастерами в ней, либо учить всё и сразу, чтобы быть востребованными на рынке. Сейчас не редкость, что на рынок труда выходят кандидаты, которые могут работать с абсолютно всем — от фронтенда до бэкенда, от баз данных до DevOps. В некоторых случаях это выглядит как «швейцарские ножи», которые знают всё, но ни в чём не являются экспертами. Появление инструментов, таких как фреймворки и библиотеки, изменяет саму парадигму разработки. Сегодня мы можем использовать множество технологий, не будучи экспертами в каждой из них. Это позволяет нам быстро создавать сложные системы без необходимости углубляться в каждую деталь. 💬 Как думаете вы? Лучше углубиться в одну область или быть «швейцарским ножом»? 🐸Библиотека шарписта #междусобойчик

Каждый .NET разработчик рано или поздно сталкивается с этим: два запроса одновременно обновляют одну сущность в Entity Framew
Каждый .NET разработчик рано или поздно сталкивается с этим: два запроса одновременно обновляют одну сущность в Entity Framework, и один из них молча затирает изменения другого. Классическая проблема многопоточных приложений, которая превращает стабильный код в источник багов. В многопользовательских приложениях, где несколько пользователей или процессов одновременно читают или изменяют одни и те же данные, очень важно обеспечить целостность и согласованность данных. В статье разбираемся как это сделать с помощью двух типов блокировок. ➡️ Читать статью 🐸Библиотека шарписта

🔥 Последняя неделя перед стартом курса по AI-агентам Старт курса уже 15го числа! Если вы планировали вписаться — сейчас ПОСЛ
🔥 Последняя неделя перед стартом курса по AI-агентам Старт курса уже 15го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место На курсе:разложим LLM по косточкам: токенизация, SFT, PEFT, инференс — соберём RAG и научимся оценивать его адекватно — построим настоящую мультиагентную систему — архитектуру, которая умеет расти — разберём CoPilot, сломаем через prompt injection (спасибо Максу) — и наконец, посмотрим, как это работает в MCP и реальных кейсах 📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API» Промокод на 5.000₽: LASTCALL 👉 Курс здесь

⭐️ Паттерн-матчинг vs операторы Нашли для вас видео, которое поможет разобраться в различиях между операторами неравенства !=
⭐️ Паттерн-матчинг vs операторы Нашли для вас видео, которое поможет разобраться в различиях между операторами неравенства != и паттерн-матчингом с is not в C#. Несмотря на схожесть, каждое из этих решений имеет свои особенности, и неправильное использование может привести к ошибкам, особенно в случаях с боксингом, проверкой на null и перегрузкой операторов. Паттерн-матчинг предоставляет более безопасное и гибкое решение, особенно для работы с типами и константами. ➡️ Смотреть видео 🐸Библиотека шарписта #буст

🔐 Хэширование в C#: как и когда использовать Хэширование — это процесс преобразования данных в фиксированное значение, котор
🔐 Хэширование в C#: как и когда использовать Хэширование — это процесс преобразования данных в фиксированное значение, которое затем можно использовать для быстрого поиска и сравнения. Основная цель хэширования — ускорить операции, например, поиск элементов в коллекциях или в базах данных. Как работает хэширование В C# хэширование чаще всего встречается в таких структурах данных, как Dictionary и HashSet, где хэш-функции используются для быстрого поиска элементов. Эти коллекции используют хэш-таблицы для того, чтобы операции поиска, добавления и удаления выполнялись за время O(1) в среднем. Хэш-таблица использует хэш-функцию, которая принимает ключ и преобразует его в индекс, который указывает на место хранения данных в массиве. Пример реализации собственного хэширования:
// Переопределение метода GetHashCode для обеспечения корректного хэширования
    public override int GetHashCode()
    {
        // Простой хэш-функции, использующей значения полей объекта
        // Здесь мы комбинируем хэши Name и Age для создания уникального хэш-значения
        int hashName = Name == null ? 0 : Name.GetHashCode();
        int hashAge = Age.GetHashCode();
        
        // Используем формулу для комбинирования хэшей, чтобы минимизировать коллизии
        return hashName ^ hashAge;
    }
Когда стоит использовать хэширование Если вам нужно быстро найти, добавить или удалить данные, хэширование может значительно ускорить эти операции. Когда вы добавляете или ищете элемент, хэш-функция преобразует его ключ в индекс, и вы сразу попадаете в нужную ячейку, не перебирая все данные. Хэширование используется для защиты данных, например, в процессе хранения паролей. В этом случае важно использовать криптографически стойкие хэш-функции, такие как SHA-256 или bcrypt. Хэш-функции могут использоваться для проверки, не изменились ли данные, например, для контроля над целостностью файлов. 💬 Как вы используете хэширование в своих проектах? Делитесь примерами в комментариях 👇 🐸Библиотека шарписта #междусобойчик