ch
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 862 名订阅者,在 技术与应用 类别中位列第 6 197,并在 俄罗斯 地区排名第 30 823

📊 受众指标与增长动态

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

根据 12 六月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -48,过去 24 小时变化为 -2,整体触达仍然可观。

  • 认证状态: 未认证
  • 互动率 (ER): 平均受众互动率为 12.66%。内容发布后 24 小时内通常能获得 7.50% 的反应,占订阅者总量。
  • 帖子覆盖: 每篇帖子平均可获得 2 769 次浏览,首日通常累积 1 640 次浏览。
  • 互动与反馈: 受众积极参与,单帖平均反应数为 9
  • 主题关注点: 内容集中在 .net, шарписта, навигация, await, string 等核心主题上。

📝 描述与内容策略

作者将该频道定位为表达主观观点的平台:
Все самое полезное для C#-разработчика в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/b60af5a4 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead

凭借高频更新(最新数据采集于 13 六月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。

21 862
订阅者
-224 小时
-257
-4830
帖子存档
🚀 Анализ изменений с git log и git diff Команды git log и git diff позволяют понять, как эволюционировал код: первая — просмотреть последовательность коммитов и метаданные, вторая — сравнить содержимое файлов между состояниями. Просмотр истории:
git log
История коммитов построчно:
git log --oneline
Граф веток + метки (ветки, теги) для всех веток:

🥳 Подборка вакансий для шарпистов С# Senior Backend Developer — от 250 000 ₽, удалёнка. C# программист — до 160 000 ₽, гибрид (Москва). Fullstack Middle C# Developer— до 500 000₽, офис (Москва). Руководитель группы C# — от 450 000 ₽, удалёнка. Бустер — Удалённо (в любом городе мира). ➡️ Еще больше топовых вакансий — в нашем канале С# Jobs

Что выведет код? 👾 — 0 👍 — No value 🥰 — null ⚡️ — Error Библиотека задач по C#
Что выведет код? 👾 — 0 👍 — No value 🥰 — null ⚡️ — Error Библиотека задач по C#

📰 Дайджест недели Несколько интересных материалов, которые вы могли пропустить. — Фильтрация, сортировка и пагинация в .NET
📰 Дайджест недели Несколько интересных материалов, которые вы могли пропустить. — Фильтрация, сортировка и пагинация в .NET От инициализации проекта и установки пакета Sieve до настройки DI и написания контроллера с автоматическим применением фильтров и сортировок. — Каналы не подходят для In-Memory шины сообщений Использование каналов в качестве шины сообщений может завести в тупик: отсутствие персистентности приводит к необходимости самому реализовывать dead-letter очереди, экспоненциальные откладывания для повторов, механизмы отложенной доставки и «claim-check» для тяжёлых полезных нагрузок. — Запуск коммерческих изданий AutoMapper и MediatR В обновлённых релизах AutoMapper v15.0 и MediatR v13.0 на NuGet реализован запрос лицензии при установке. Помимо тарификации по размеру команды и скидок за годовую подписку, подписчики получают приоритетную поддержку, ранний доступ к выпускам и частные каналы в Discord. 🐸Библиотека шарписта #свежак

❓ var в C# — удобство или маска С появлением ключевого слова var нам дали возможность уменьшить количество шаблонного кода и
var в C# — удобство или маска С появлением ключевого слова var нам дали возможность уменьшить количество шаблонного кода и писать более компактные выражения. Вместо явного написания громоздких типов можно писать лаконичный код:
// Вместо List<Dictionary<string, List<Tuple<int, DateTime>>>> data = ...
var data = GetComplexData();
Также var не делает переменную динамической, это всё тот же строго типизируемый код. Но есть и сильный аргумент против использования var. На примере кода выше:
// Вместо List<Dictionary<string, List<Tuple<int, DateTime>>>> data = ...
var data = GetComplexData(); // каков тип data? int, string, CustomType?
Тип, получаемый из функции неочевиден и это в разы ухудшает читаемость кода. var — полезный инструмент, но требует дисциплины. При очевидном типе он упрощает код, при неочевидном — мешает пониманию. 💬 Вы используете var в коде или сторонник явного? Делитесь мыслями в комментариях 👇 🐸Библиотека шарписта #междусобойчик

⚡️ Быстро и без облака Теперь разработчики могут генерировать альтернативный текст для изображений прямо в своем приложении.
⚡️ Быстро и без облака Теперь разработчики могут генерировать альтернативный текст для изображений прямо в своем приложении. Вместо того чтобы отправлять запросы в облачные сервисы, можно использовать локально размещенные модели, например Ollama. Для этого достаточно запустить простой скрипт на C#, который анализирует изображение и генерирует для него текстовое описание. ➡️ Узнать как это сделать 🐸Библиотека шарписта #буст

😤 Пока вы думаете — остальные уже учатся строить системы, которые работают за них ⚡24 часа до старта курса по AI-агентам. Са
😤 Пока вы думаете — остальные уже учатся строить системы, которые работают за них24 часа до старта курса по AI-агентам. Самое время задуматься о прокачке скиллов, потому что места ограничены! Если вы до сих пор думаете, что LLM — это просто «вызов через API», то вы рискуете очень скоро оказаться за бортом индустрии. Модели больше не в центре. Решают те, кто умеет собирать интеллектуальные системы, а не просто «дообучать модельку». ➡️ Что вы потеряете, если не впишетесь: — навык, который уже востребован на рынке — понимание, как из GPT сделать полноценного помощника, агента или продукт — шанс догнать тех, кто уже перешёл на следующий уровень 📌 Курс стартует уже завтра — 5 вебинаров, живая практика, код, разборы, продовые кейсы — без «посмотрите статью», только то, что реально нужно Спикеры: Никита Зелинский (МТС), Диана Павликова, Макс Пташник, Дима Фомин — те, кто реально собирает агентные системы, а не просто про них пишет. ❗Старт уже завтра — забронируйте место на курсе сейчас

👀 Эффективный доступ к данным в .NET В рамках трансляции .NET Live ведущие разобрали, как через чёткие интерфейсы Repository
👀 Эффективный доступ к данным в .NET В рамках трансляции .NET Live ведущие разобрали, как через чёткие интерфейсы Repository и паттерн Specification вынести всю логику запросов из бизнес-слоя, чтобы не забирать в память лишние данные и легко мокировать код для тестов. Также обсудили компромиссы generic-репозиториев и показали, как Unit of Work возвращает настоящую транзакционность, вызывая SaveChanges() один раз в конце. ➡️ Смотреть запись трансляции 🐸Библиотека шарписта #буст

💬 Техдолга много не бывает Когда речь заходит о техническом долге, и джуны, и опытные разработчики нередко сомневаются, с че
💬 Техдолга много не бывает Когда речь заходит о техническом долге, и джуны, и опытные разработчики нередко сомневаются, с чего начать и как приоритизировать задачи. Один из наших подписчиков недавно спросил:
Как определить, когда стоит принимать новый функционал, а когда — гасить технический долг
На практике подход к техдолгу зависит от контекста проекта, команды и бизнес-целей. Вот основные моменты, которые помогут выбрать стратегию: — Регулярно формируйте список всех известных проблем: устаревшие библиотеки, неочищенный код, отсутствие тестов. — Делите техдолг на «осознанный» (trade-off ради скорости) и «неосознанный» (ошибки, хаотичный рост). — Используйте метрики: время на исправление багов, количество инцидентов, сложность новых фич. — Включайте небольшие задачи по техдолгу в каждый спринт (например, 10–20 % времени). — Установите критерии «не допуска к продакшену» для новых заимствований (например, доля покрытия тестами). 💬 Как вы балансируете новые фичи и погашение техдолга? Поделитесь своим опытом в комментариях 👇 P.S. Если хотите задать вопрос сообществу или поделиться историей, заполните нашу гугл-форму. 🐸Библиотека шарписта #междусобойчик

🛠 Чек-лист по настройке и ведению репозитория .NET-проекта Составили для вас чек-лист для организации репозитория .NET-проек
🛠 Чек-лист по настройке и ведению репозитория .NET-проекта Составили для вас чек-лист для организации репозитория .NET-проекта. Получился мини-гайд, который можно скинуть джуну. ✅ Проверьте URL репозитория • Убедитесь, что имя аккаунта, название репозитория и основная ветка (main или master) соответствуют соглашениям команды. • Проверьте, нет ли опечаток или лишних символов в пути. ✅ Добавьте файл LICENSE • Поместите в корень проекта файл с лицензией (MIT, Apache, GPL и т. д.). • Проверьте, что текст лицензии актуален и соответствует требованиям компании. ✅ Настройте .gitignore • Используйте готовые шаблоны для .NET (VisualStudio, Rider): исключите bin/, obj/, настройки IDE, файлы сборки. • При необходимости добавьте игнорацию пользовательских секретов и сертификатов.
bin/
obj/
*.user
*.suo
Создайте файл .gitattributes Задайте нормализацию переводов строк:
* text=auto
*.ps1 text eol=crlf
• Укажите специальные правила для бинарных файлов, чтобы избежать проблем с кодировкой. ✅ Подробный README.md • Опишите назначение проекта, его архитектуру и ключевые зависимости. • Дайте инструкции по установке, настройке и запуску (команды CLI, порты, переменные окружения). • Приведите пример запуска основных сценариев. ✅ Проект тестов • Создайте отдельный тестовый проект (.Tests) и убедитесь, что все тесты проходят при команде dotnet test. • Добавьте в README badge с процентом покрытия (например, через Coveralls или Azure Pipelines). ✅ CI/CD через GitHub Actions • Разместите workflow в .github/workflows/ci.yml: сборка, тесты, анализ кода. • Опционально — настройте деплой на тестовый или продакшен-стенд.
name: CI
on: [push, pull_request]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-dotnet@v1
        with: { dotnet-version: '7.0.x' }
      - run: dotnet build --no-restore
      - run: dotnet test --no-build --verbosity normal
Файлы CODE_OF_CONDUCT.md и CONTRIBUTING.md • CODE_OF_CONDUCT.md определяет правила поведения участников. • CONTRIBUTING.md описывает, как создавать issue, форкать проект и оформлять PR. ✅ Метки и темы • Настройте лейблы для Issue/PR: bug, enhancement, help wanted, good first issue. • Добавьте в репозиторий релевантные темы (например, csharp, dotnet-core, webapi). ✅ Badge-значки в README • Статус сборки (Build Passing/Failing). • Процент покрытия тестами. • Поддерживаемые версии .NET. Сколько «галочек» из списка содержит ваш проект? 🐸Библиотека шарписта #буст

🐢 Столкнулись с «тормозным» C#-кодом? Медленные алгоритмы могут растянуть выполнение задачи на минуты вместо миллисекунд. 📅
🐢 Столкнулись с «тормозным» C#-кодом? Медленные алгоритмы могут растянуть выполнение задачи на минуты вместо миллисекунд. 📅 Приглашаем на открытый урок «Анализ сложности алгоритмов и сортировка на C#» 3 июля в 20:00 МСК. Разберём, что такое Big O, какие факторы влияют на скорость, и на практике напишем пузырьковую, вставками и другие сортировки. Вы увидите, как измерять время выполнения, сравнивать производительность и выбирать самый эффективный алгоритм. После занятия ваш код станет быстрее, а техническое интервью — проще. Регистрируйтесь сейчас — урок проходит перед стартом курса «C# Developer»: https://clc.to/5ttuqA Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

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

🧑‍💻 Тестирование API без выдумок Без тщательно сгенерированных сценариев, покрывающих как граничные, так и ошибочные состояния, легко упустить скрытые уязвимости, которые проявятся именно в пике трафика. Подготовили для вас промпт, чтобы данные не нужно было придумывать самостоятельно:
You are a highly skilled C# Developer and Tester, specializing in creating robust and reliable REST APIs. Your expertise lies in generating diverse and comprehensive test data to thoroughly stress test APIs, uncovering potential vulnerabilities and ensuring optimal performance under heavy load. Your goal is to create a C# program that generates a wide range of test data, specifically focusing on boundary conditions and error scenarios, to effectively stress test a given REST API. Here is the format you will use to reason through the problem and come up with a fantastic recommendation: --- ## REST API Endpoint Description $api_endpoint_description (Include the HTTP method, expected request body format, and expected response format) ## Data Types and Constraints $data_types_and_constraints (Specify the data types of each field in the request body and any constraints, such as minimum/maximum values, allowed characters, or specific formats) ## Boundary Condition Test Data $boundary_condition_test_data (Generate test data that pushes the limits of the defined constraints. Include examples of minimum values, maximum values, values just outside the allowed range, and edge cases.) ### Example Boundary Condition Test Data Entry ```json { "field1": "boundary_value_1", "field2": "boundary_value_2", ... } ``` ## Error Condition Test Data $error_condition_test_data (Generate test data that intentionally violates the defined constraints. Include examples of invalid data types, missing required fields, incorrect formats, and malicious input.) ### Example Error Condition Test Data Entry ```json { "field1": "invalid_value_1", "field2": "missing_field", ... } ``` ## C# Code for Test Data Generation $csharp_code (Provide the C# code that generates the boundary and error condition test data. The code should be well-commented and easy to understand.) ## Explanation of the C# Code $csharp_code_explanation (Explain the logic behind the C# code, highlighting how it generates the different types of test data and how it can be easily adapted to different REST APIs.) ## Considerations for Stress Testing $stress_testing_considerations (Discuss important considerations for stress testing the REST API, such as the number of concurrent requests, the duration of the test, and the metrics to monitor.)
🐸Библиотека шарписта #буст

🧠 Как алгоритмическое мышление повышает производительность Если ваше приложение «подтормаживает», вспомните о спортивном про
🧠 Как алгоритмическое мышление повышает производительность Если ваше приложение «подтормаживает», вспомните о спортивном программировании: анализируйте асимптотику и меняйте неэффективные алгоритмы — и запросы станут выполняться за доли секунды. Не догадывайтесь, где узкое место, а измеряйте его профилировщиком и выбирайте правильные структуры данных. ➡️ Почему спортивное программирование полезно

🛠 Гид по Redis в C# Представьте, что ваши запросы обрабатываются мгновенно. Для этого можно использовать Redis. Сейчас покаж
🛠 Гид по Redis в C# Представьте, что ваши запросы обрабатываются мгновенно. Для этого можно использовать Redis. Сейчас покажем как это сделать. 1. Устанавливаем
Install-Package StackExchange.Redis
2. Создаём подключение
using StackExchange.Redis;

var redis = ConnectionMultiplexer.Connect("localhost:6379");
IDatabase db = redis.GetDatabase();
3. Базовые операции: SET и GET
// Записываем строку
bool setResult = db.StringSet("user:42:name", "ProgLib");
Console.WriteLine($"SET OK: {setResult}");

// Читаем строку
string name = db.StringGet("user:42:name");
Console.WriteLine($"GET: {name}");  // → ProgLib
StringSet возвращает true, если всё прошло гладко. StringGet в случае отсутствия ключа вернёт null. 4. Механизм подписки и публикации Подписчик:
var sub = redis.GetSubscriber();
sub.Subscribe("notifications", (channel, message) => {
    Console.WriteLine($"Получено сообщение: {message}");
});
Публикация:
sub.Publish("notifications", "Новый заказ №128");
5. Дополнительно: списки, хэши и TTL Пушим и читаем из конца/начала:
db.ListRightPush("tasks", "Сделать отчёт");
var task = db.ListLeftPop("tasks");
Группируем поля в одном ключе:
db.HashSet("session:1001", new HashEntry[] {
    new HashEntry("userId", 42),
    new HashEntry("expiresAt", DateTime.UtcNow.AddMinutes(30).ToString("O"))
});
var expires = db.HashGet("session:1001", "expiresAt");
TTL для удаления ключей через время:
db.StringSet("cache:item:7", "данные", TimeSpan.FromMinutes(5));
Бонус: бест практис • ConnectionMultiplexer — тяжёлый объект, создавайте один раз. • Используйте ConfigureAwait(false) и ловите исключения RedisConnectionException. • Выполняйте атомарные операции на стороне сервера для консистентности. • При росте нагрузки переходите на кластерный режим или Redis Sentinel для отказоустойчивости. В будущем Redis становится центром событийной архитектуры: Stream-поддержка и геоданные открывают новые горизонты. 🐸Библиотека шарписта #буст

🍀 Подборка вакансий для шарпистов Middle/Senior C# разработчик — удалёнка. C# Developer — до 5500 $, удалёнка. Full-Stack .NET Developer — до 450 000 ₽, удалёнка. Tech Lead AI — от 450 000 ₽, удалёнка. С#-разработчик — от 250 000 ₽, удалёнка. Бустер — Удалённо (в любом городе мира). ➡️ Еще больше топовых вакансий — в нашем канале С# Jobs

🆕 Неделя в кадре Ключевые новости, которые могли ускользнуть от вашего внимания. — Диагностика задержек в .NET В статье опис
🆕 Неделя в кадре Ключевые новости, которые могли ускользнуть от вашего внимания. — Диагностика задержек в .NET В статье описан случай, когда некоторые запросы в .NET-приложении занимали до 20 секунд, происходя это с периодичностью каждые полчаса. Узнайте в статье разобрался ли автор с этой проблемой. — Руководство по выживанию с устаревшим кодом В 2025 году Visual Basic 6.0 уже почти не используется, а VB.NET и .NET Framework постепенно уходят в прошлое, оставшись только для поддержки старых приложений. — xUnit для сложных интеграционных тестов Джереми Миллер описывает, как интегрировать логирование в xUnit для сложных интеграционных тестов с использованием Wolverine. 🐸Библиотека шарписта #свежак