fa
Feedback
C# (C Sharp) programming

C# (C Sharp) programming

رفتن به کانال در Telegram

По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ

نمایش بیشتر

📈 تحلیل کانال تلگرام C# (C Sharp) programming

کانال C# (C Sharp) programming (@csharp_ci) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 18 302 مشترک است و جایگاه 7 331 را در دسته فناوری و برنامه‌ها و رتبه 36 951 را در منطقه روسيا دارد.

📊 شاخص‌های مخاطب و پویایی

از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 18 302 مشترک جذب کرده است.

بر اساس آخرین داده‌ها در تاریخ 11 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -27 و در ۲۴ ساعت گذشته برابر 6 بوده و همچنان دسترسی گسترده‌ای حفظ شده است.

  • وضعیت تأیید: تأیید نشده
  • نرخ تعامل (ER): میانگین تعامل مخاطب 16.94% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 8.35% واکنش نسبت به کل مشترکان کسب می‌کند.
  • دسترسی پست‌ها: هر پست به طور میانگین 3 100 بازدید دریافت می‌کند. در اولین روز معمولاً 1 528 بازدید جمع‌آوری می‌شود.
  • واکنش‌ها و تعامل: مخاطبان به‌طور فعال حمایت می‌کنند؛ میانگین واکنش به هر پست 0 است.
  • علایق موضوعی: محتوا بر موضوعات کلیدی مانند .net, api, логика, архитектура, string تمرکز دارد.

📝 توضیح و سیاست محتوایی

نویسنده این فضا را محل بیان دیدگاه‌های شخصی توصیف می‌کند:
По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ

به لطف به‌روزرسانی‌های پرتکرار (آخرین داده در تاریخ 12 ژوئن, 2026)، کانال همواره به‌روز و دارای دسترسی بالاست. تحلیل‌ها نشان می‌دهد مخاطبان به‌طور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامه‌ها تبدیل کرده‌اند.

18 302
مشترکین
+624 ساعت
-27 روز
-2730 روز
آرشیو پست ها
💻Полный перебор выглядит простым решением, пока не сталкивается с реальностью. Как только задача усложняется, перебор станов
💻Полный перебор выглядит простым решением, пока не сталкивается с реальностью. Как только задача усложняется, перебор становится неприемлемо медленным — и именно здесь начинаются настоящие алгоритмы. 📆На открытом уроке вы напишете алгоритм Dancing Links Дональда Кнута — один из самых элегантных способов решения задач точного покрытия. Мы разберём, почему классический перебор не работает, и как четырёхсвязный список позволяет добавлять и удалять элементы практически без затрат. Вы увидите, как несколько десятков строк кода решают задачи, которые выглядят непосильными для brute force. Реализуете алгоритм полностью, разберёте его внутреннюю механику и примените к задаче пентамино. 👉Встречаемся 12 января в 20:00 МСК в преддверие старта курса «Алгоритмы и структуры данных». Регистрация открыта: https://tglink.io/cb04fae31111?erid=2W5zFHHfYCx Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

✔️ C# стал языком 2025 года по версии TIOBE. Индекс TIOBE подвел итоги года: звание «Язык 2025 года» досталось C#, который по
✔️ C# стал языком 2025 года по версии TIOBE. Индекс TIOBE подвел итоги года: звание «Язык 2025 года» досталось C#, который показал рекордный рост популярности (+2.94%)? однако в общем зачете он по-прежнему занимает 5-ю строчку. Абсолютным лидером остается Python с 22.61% долей рынка. В первой пятерке произошли перестановки: язык C поднялся на 2 место, сместив C++ на 4-ю позицию; 3 место досталось Java, а R вернулся в топ-10. Провал года - Go, который неожиданно сдал позиции, опустившись сразу на 16-е место. Индекс оценивает популярность технологий на основе поисковых запросов, активности комьюнити и количества обучающих материалов. https://www.tiobe.com/tiobe-index/

💡 В EF Core есть штука, о которой многие забывают: CompileAsyncQuery. С её помощью можно заранее скомпилировать LINQ-запрос,
💡 В EF Core есть штука, о которой многие забывают: CompileAsyncQuery. С её помощью можно заранее скомпилировать LINQ-запрос,а потом выполнять его асинхронно: быстрее и без лишнего overhead’а. И важный еще момент: вам не нужно писать отдельную “async-версию” самого LINQ-запроса. EF сам оборачивает выполнение в асинхронный пайплайн. Немного странно, но работает. Пример:

private static Func<AppDbContext, string, Task<Newsletter?>> GetByTitle =
    EF.CompileAsyncQuery(
        (AppDbContext context, string title) =>
            context.Set<Newsletter>()
                   .FirstOrDefault(c => c.Title == title)
    );

public async Task<Newsletter?> GetNewsletterByTitleAsync(string title)
{
    return await GetByTitle(this, title);
}
Что получаем: • повторные запросы выполняются быстрее • нет лишней компиляции выражений • async-подход сохраняется Если в проекте есть часто вызываемые запросы - Compiled Queries могут дать хороший прирост производительности, особенно под нагрузкой.

В какой строке возникнет первое исключение?
Anonymous voting

#ПятничныйКвиз
#ПятничныйКвиз

🔍 Как делать code review, которые находят реальные баги, а не только придираются к стилю Большинство code review застревают
🔍 Как делать code review, которые находят реальные баги, а не только придираются к стилю Большинство code review застревают на форматировании, нейминге и мелочах. В итоге реальные проблемы - логические ошибки, гонки, неправильные инварианты - проходят мимо. Идея правильного code review: — Проверять поведение кода, а не его внешний вид — Искать сценарии отказа, а не соответствие линтеру — Думать как система, а не как форматтер Что реально стоит смотреть на ревью: • Граничные случаи и ошибки в бизнес-логике • Null / empty сценарии и некорректные состояния • Побочные эффекты и порядок операций • Работа с асинхронностью, транзакциями и ресурсами • Соответствие инвариантам доменной модели Инструменты с AI-ассистентами для code review помогают сместить фокус: — меньше шума про стиль — больше внимания к логике и потенциальным багам — автоматические подсказки прямо в PR Хороший code review — это не «код красивый», а «код не сломается в проде».

Интеграционные тесты прямо в CI/CD - максимум уверенности в коде 🚀 Я запускаю интеграционные тесты прямо внутри CI/CD пайпла
Интеграционные тесты прямо в CI/CD - максимум уверенности в коде 🚀 Я запускаю интеграционные тесты прямо внутри CI/CD пайплайна. Так я проверяю не абстракции и моки, а реальное поведение системы. Всё это возможно благодаря: - Docker - Testcontainers Идея простая: ты поднимаешь реальные внешние сервисы как контейнеры и используешь их прямо в тестах. В примере поднимаются: - PostgreSQL - Redis - Keycloak Контейнеры: - автоматически стартуют перед тестами - доступны из кода приложения - уничтожаются после выполнения тестов Почему это работает лучше моков: - тесты максимально близки к продакшену - одинаковое поведение локально и в CI - сразу ловятся проблемы с конфигурацией, миграциями, auth - меньше сюрпризов после деплоя Особенно полезно для: - backend-сервисов - микросервисной архитектуры - систем с авторизацией и внешними зависимостями - .NET-приложений с серьёзной бизнес-логикой Если хочешь вывести интеграционное тестирование в .NET на новый уровень — Testcontainers стоит попробовать обязательно. #dotnet, #testing

⚡️ В мире #dotnet есть куда больше вариантов для messaging, чем RabbitMQ и Kafka. И для real-time систем эти инструменты част
⚡️ В мире #dotnet есть куда больше вариантов для messaging, чем RabbitMQ и Kafka. И для real-time систем эти инструменты часто избыточны. Большинство брокеров сообщений заточены под надёжность, сложную маршрутизацию и enterprise-сценарии. Это отлично, когда нужны гарантии доставки и сложные пайплайны. Но если система живёт на частых событиях, минимальной задержке и мгновенной реакции, этот вес начинает мешать. Здесь идеально заходит NATS. NATS - лёгкая и сверхбыстрая система обмена сообщениями, спроектированная именно для real-time: - минимальная латентность - простая модель - высокая масштабируемость Отлично подходит для: - телеметрии и sensor data - live-обновлений - edge-систем - сценариев, где важно «сейчас», а не «через секунду» В статье подробно разобрано: - когда NATS имеет смысл (а когда нет) - сравнение с RabbitMQ и Kafka - использование NATS в .NET с понятными примерами кода - Pub/Sub, queue groups и request–reply https://thecodeman.net/posts/introduction-to-nats-real-time-messaging

3 простые оптимизации, которые реально ускоряют код 1️⃣ Забирай данные пачкой Меньше запросов — меньше сетевых задержек. Вмес
3 простые оптимизации, которые реально ускоряют код 1️⃣ Забирай данные пачкой Меньше запросов — меньше сетевых задержек. Вместо десятков запросов — один IN (...). 2️⃣ Делай больше параллельно Если задачи не зависят друг от друга — выполняй их одновременно. Асинхронность часто даёт бесплатный прирост скорости. 3️⃣ Кэшируй результаты Если данные не меняются — не пересчитывай и не запрашивай их заново. Память дешевле времени. Никакой магии и сложных алгоритмов — просто базовые приёмы, которые в реальных проектах дают самый заметный эффект.

🚦 Feature Flags в .NET - как управлять релизами без redeploy Feature flags (фиче-флаги) позволяют включать и выключать функц
🚦 Feature Flags в .NET - как управлять релизами без redeploy Feature flags (фиче-флаги) позволяют включать и выключать функциональность на лету, без повторного деплоя и риска для продакшена. Идея простая: код задеплоен → поведение управляется конфигурацией. Что это даёт на практике: — Постепенные релизы Можно включить новую фичу сначала для 1%, 10% или конкретной группы пользователей. — Быстрый rollback Если что-то пошло не так — просто выключаете флаг. Без откатов и срочных хотфиксов. — A/B тесты Разные пользователи получают разное поведение одного и того же кода. — Targeting пользователей Фичи можно включать: • по user id • по роли • по региону • по environment (dev / staging / prod) — Меньше фиче-веток Код живёт в main, а не за флагами в git. В .NET обычно используют: - Microsoft.FeatureManagement - Azure App Configuration - LaunchDarkly / Unleash / ConfigCat Где это особенно полезно: - публичные API - high-traffic сервисы - SaaS-продукты - экспериментальные и рискованные фичи Коротко: Feature flags превращают релиз из «одного опасного момента» в управляемый процесс. Это один из самых мощных инструментов для зрелой backend-архитектуры. 👉 Подробнее

🔍 Как делать code review, которые находят реальные баги, а не только придираются к стилю Большинство code review застревают
🔍 Как делать code review, которые находят реальные баги, а не только придираются к стилю Большинство code review застревают на форматировании, нейминге и мелочах. В итоге реальные проблемы - логические ошибки, гонки, неправильные инварианты - проходят мимо. Идея правильного code review: — Проверять поведение кода, а не его внешний вид — Искать сценарии отказа, а не соответствие линтеру — Думать как система, а не как форматтер Что реально стоит смотреть на ревью: • Граничные случаи и ошибки в бизнес-логике • Null / empty сценарии и некорректные состояния • Побочные эффекты и порядок операций • Работа с асинхронностью, транзакциями и ресурсами • Соответствие инвариантам доменной модели Инструменты с AI-ассистентами для code review помогают сместить фокус: — меньше шума про стиль — больше внимания к логике и потенциальным багам — автоматические подсказки прямо в PR Хороший code review — это не «код красивый», а «код не сломается в проде».

Что выведет на экран этот код?
Anonymous voting

#ПятничныйКвиз
#ПятничныйКвиз

🔍 Инструмент для перехвата сессий в C# SessionHop — это утилита на C#, использующая COM-объект IHxHelpPaneServer для перехвата пользовательских сессий. С помощью создания "сессионного моникера" и интерфейса Execute можно запускать произвольные файлы в контексте другой сессии, что полезно для таких задач, как кейлоггинг или скриншоты. 🚀Основные моменты: - Перехват сессий пользователей с помощью COM-объекта. - Запуск файлов в контексте другой сессии. - Альтернатива удаленному инжектированию процессов. - Полезен для доступа к ресурсам как затронутый пользователь. 📌 GitHub: https://github.com/3lp4tr0n/SessionHop #csharp

👨‍💻Задачи точного покрытия — фундамент для многих алгоритмических подходов. Но пока теория лежит на полке, она мало что мен
👨‍💻Задачи точного покрытия — фундамент для многих алгоритмических подходов. Но пока теория лежит на полке, она мало что меняет в вашем инженерном мышлении На открытом уроке мы разберем Dancing Links через практику: соберем пентамино на столе, представим фигуры в виде строк матрицы и разберемся, как работает поиск с возвратом. Когда алгоритм становится наглядным, вы начинаете понимать, что на самом деле происходит внутри. Если вы хотите развивать алгоритмическое мышление, системно улучшать свои решения и уверенно чувствовать себя в задачах уровня middle+, такие разборы — обязательная часть роста. 📆 Встречаемся 22 декабря в 20:00 МСК в преддверие старта курса «Алгоритмы и структуры данных», регистрация открыта: https://tglink.io/3be365254757?erid=2W5zFHNTeic Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

⚡️ Синтаксическое сжатие строк даёт больше вертикального пространства в редакторе. Строки без букв и цифр сжимаются на 25%, б
⚡️ Синтаксическое сжатие строк даёт больше вертикального пространства в редакторе. Строки без букв и цифр сжимаются на 25%, благодаря чему на экране помещается больше кода без потери читаемости. Скоро в Visual Studio.

🔥 Открытый урок «Основы работы с Telegram API». 🗓 25 декабря в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «C# Devel
🔥 Открытый урок «Основы работы с Telegram API». 🗓 25 декабря в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «C# Developer». На вебинаре: ✔️ Рассмотрим общие вопросы посвященные работе c API, WEB API . ✔️ Более подробно познакомимся с работой Telegram API , позволяющей создавать ботов для Telegram. Кому будет полезно: - Для начинающих разработчиков, которые хотят создать своего первого бота для Telegram. Что вы получите: К концу занятия мы получим необходимые знания и умения для написания консольного приложения работающего с Telegram API, создадим Telegram бота. 🔗 Ссылка на регистрацию: https://otus.pw/ZC0M/?erid=2W5zFGtDrat Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

Многим C#-разработчикам знакома боль: в проекте хаос из имён классов, обработчиков, сервисов. Общих правил нет, каждый пишет
Многим C#-разработчикам знакома боль: в проекте хаос из имён классов, обработчиков, сервисов. Общих правил нет, каждый пишет как хочет — и через полгода код сложно читать даже автору. Есть практичное решение: архитектурные тесты, которые автоматически проверяют соблюдение naming conventions. Пример ниже - тест, который гарантирует, что все командные обработчики заканчиваются на CommandHandler. Если кто-то добавит класс с неправильным именем, тест упадёт, и проблема решится ещё до ревью. Такую технику можно использовать для: - сервисов (`...Service`) - хендлеров (`...Handler`) - репозиториев (`...Repository`) - DTO/Queries/Commands - модульных границ и зависимости между слоями Это простой способ навести порядок в архитектуре, а не надеяться только на дисциплину команды. Пример теста (C#):

public void CommandHandler_ShouldHave_NameEndingWith_CommandHandler()
{
    Types.InAssembly(ApplicationAssembly)
        .That()
        .ImplementInterface(typeof(ICommandHandler<>))
        .Or()
        .ImplementInterface(typeof(ICommandHandler<,>))
        .Should()
        .HaveNameEndingWith("CommandHandler")
        .GetResult()
        .ShouldBeSuccessful();
}
Такие архитектурные проверки избавляют от стихийных ошибок и делают кодовую базу предсказуемой — особенно в больших командах и долгоживущих проектах.

⚡️ASP.NET Core лайфхак: если нужно получить данные текущего пользователя в любом слое приложения — внедри IHttpContextAccesso
⚡️ASP.NET Core лайфхак: если нужно получить данные текущего пользователя в любом слое приложения — внедри IHttpContextAccessor и оберни его в сервис UserContext. Так ты централизуешь доступ к UserId и статусу авторизации без прямых обращений к HttpContext, а при отсутствии контекста сразу получишь исключение вместо тихих ошибок.

/// Пример класса контекста пользователя
internal sealed class UserContext(IHttpContextAccessor httpContextAccessor)
    : IUserContext
{
    public Guid UserId =>
        httpContextAccessor
            .HttpContext?
            .User
            .GetUserId() ??
        throw new ApplicationException("User context is unavailable");

    public bool IsAuthenticated =>
        httpContextAccessor
            .HttpContext?
            .User
            .Identity?
            .IsAuthenticated ??
        throw new ApplicationException("User context is unavailable");
}

✔️ Delegating Handlers в .NET: как правильно добавлять сквозную логику для HttpClient DelegatingHandler - это удобный способ
✔️ Delegating Handlers в .NET: как правильно добавлять сквозную логику для HttpClient DelegatingHandler - это удобный способ внедрять сквозную логику в каждый HTTP-запрос: авторизацию, логирование, метрики, ретраи и любые другие политики, не трогая основной код. Пример обработчика аутентификации: - добавляет заголовок Authorization - подставляет корректный User-Agent - затем передаёт управление следующему звену конвейера Это позволяет централизованно контролировать конфигурацию запросов и избегать дублирования логики во всех сервисах. Подходит для чистой архитектуры, микросервисов и SDK, где важна единообразная обработка запросов.