ar
Feedback

لا تقع ضحية للمخادعين! تيليمتريو يكتشف ويُميّز هذه القنوات 👉 إذا كنت تريد رؤية العلامة، اشترك

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

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

الذهاب إلى القناة على Telegram

Все самое полезное для C#-разработчика в одном канале. Наши курсы: https://clc.to/y3LDtw По рекламе: @tproger_sales_bot Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead

إظهار المزيد

📈 نظرة تحليلية على قناة تيليجرام Библиотека шарписта | C#, F#, .NET, ASP.NET

تُعد قناة Библиотека шарписта | C#, F#, .NET, ASP.NET (@csharpproglib) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 21 538 مشتركاً، محتلاً المرتبة 6 161 في فئة التكنولوجيات والتطبيقات والمرتبة 30 446 في منطقة روسيا.

📊 مؤشرات الجمهور والحراك

منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 21 538 مشتركاً.

بحسب آخر البيانات بتاريخ 29 أكتوبر, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -114، وفي آخر 24 ساعة بمقدار -12، مع بقاء الوصول العام مرتفعاً.

  • حالة التحقق: غير موثّقة
  • معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 15.81‎%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 7.41‎% من ردود الفعل نسبةً إلى إجمالي المشتركين.
  • وصول المنشورات: يحصل كل منشور على متوسط 3 406 مشاهدة. وخلال اليوم الأول يجمع عادةً 1 597 مشاهدة.
  • التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 4.
  • الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل .net, шарписта, навигация, await, string.

📝 الوصف وسياسة المحتوى

يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“Все самое полезное для C#-разработчика в одном канале. Наши курсы: https://clc.to/y3LDtw По рекламе: @tproger_sales_bot Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead”

بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 30 أكتوبر, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.

21 538
المشتركون
-1224 ساعات
-487 أيام
-11430 أيام
أرشيف المشاركات
🤓 Что нового в Git 2.52 В Git 2.52 появились полезные новинки для повседневной работы и поддержки больших репозиториев. Кома
🤓 Что нового в Git 2.52 В Git 2.52 появились полезные новинки для повседневной работы и поддержки больших репозиториев. Команда внедрила новую команду git last-modified, с помощью которой теперь можно быстро увидеть, какие коммиты последними изменяли каждый файл в папке. Для тех, кто заботится о здоровье репозиториев, git maintenance получил новый режим geometric, который экономит время при репаках. Ещё одна заметная особенность — экспериментальная команда git repo, которая помогает получать разную информацию о репозитории, например, сколько в нём веток или тегов. ➡️ Анонс обновления 🐸Библиотека шарписта #async_news

😵‍💫 Усиль свои позиции на собесе в Data Science знаниями математики! Чем важна математика расскажет Мария Тихонова - кандидат компьютерных наук, руководитель исследовательского направления SberAI, доцент факультета компьютерных наук и преподаватель НИУ ВШЭ на курсе «Математика для Data Science» от Proglib Academy. 👀 Мария - человек, который реально работает с LLM и делает так, чтобы модели понимали человеческую речь, а не делали вид. 📌 Добавь в свое портфолио проект, выделись среди конкурентов Курс предусматривает выполнение практического проекта с фидбеком от экспертов. За проект можно взять темы: • обучите градиентный спуск для предсказания цен на квартиры • создадите классификатор тональности или тематики текста • построите простую рекомендательную систему на матричных разложениях Бонусы: - скидка 40% до 30 ноября - если оплатить до конца ноября, получите курс «Базовая математика» в подарок ➡️ Пройти бесплатный тест на знание математики 👇👇👇 Записаться на курс

رسالة فيديو00:29

⚡️ Быстрая фишка Когда тип переменной явно указан, можно опускать его в инициализации с помощью target-typed new:
Dictionary<string, int> scores = new();
Вместо повторения полного типа справа, достаточно просто написать new(). Фича доступна с C# 9. 🐸Библиотека шарписта #sharp_view

⚙️ nameof теперь понимает несвязанные обобщения Удобство и гибкость метапрограммирования — теперь nameof работает для обобщений без аргументов. Благодаря новой поддержке можно получить имена обобщенных типов без указания параметров:
Console.WriteLine(nameof(List<>));  // Выведет "List"
🐸Библиотека шарписта #sharp_view

🎓 Экспресс-курс «Математика для Data Science» стартует 4 декабря Этот курс для вас, если вы: 🧑‍💻 Программист Когда нужно п
🎓 Экспресс-курс «Математика для Data Science» стартует 4 декабря Этот курс для вас, если вы: 🧑‍💻 Программист Когда нужно понять, что происходит «под капотом» ML-алгоритмов. 📊 Начинающий DS / аналитик / студент Чтобы закрыть теорию, подтянуть фундамент и собрать портфолио. 📈 Смежный специалист Чтобы уверенно работать с моделями, статистикой и гипотезами. 🎁 Сейчас лучший момент стартовать: — скидка 40% на курс до конца ноября — можно пройти бесплатный тест на знание основ математики 👉 Записаться на курс

💡 PowerToys может получить Windows Edge Light Команда Microsoft обсуждает интеграцию Windows Edge Light в PowerToys. Это неб
💡 PowerToys может получить Windows Edge Light Команда Microsoft обсуждает интеграцию Windows Edge Light в PowerToys. Это небольшая утилита для освещения лица во время видеоконференций, которая нужна, когда вокруг вас темно, а вебкамера плохо справляется с автоматическими настройками. Сейчас Windows Edge Light работает как отдельное приложение: вы запускаете его перед видеозвонком, и оно подсвечивает лицо через экран вашего монитора. Инструмент простой, но продуманный — можно менять интенсивность света, использовать горячие клавиши для быстрого включения-отключения, удерживать окно поверх других приложений и даже кликать через него, не закрывая фокус на основном приложении. ➡️ Новость ➡️ Репозиторий Windows Edge Light 🐸Библиотека шарписта #async_news

😍 Сериализация и API контракты по умолчанию Records созданы для API контрактов и DTO. System.Text.Json работает с ними без дополнительных конфигураций — просто как есть.
public record WeatherData(string City, decimal Temperature, string Condition);

var data = new WeatherData("Москва", 15.5M, "Облачно");
var json = JsonSerializer.Serialize(data);
Console.WriteLine(json);
// {"City":"Москва","Temperature":15.5,"Condition":"Облачно"}

var deserialized = JsonSerializer.Deserialize<WeatherData>(json);
Ни лишних конструкторов, ни public setters, ни аннотаций. Десериализация понимает init-only свойства и positional параметры. Это делает API слой минималистичным и надёжным. Работает и с Newtonsoft.Json, и с gRPC. Records — это естественный способ определения контрактов между системами. 🐸Библиотека шарписта #sharp_view

🛠 Натуральные преобразования для Span и ReadOnlySpan C# 14 позволяет неявно преобразовывать между Span<T>, ReadOnlySpan<T> и массивами, упрощая манипуляции с данными и повышая скорость:
ReadOnlySpan<char> roSpan = "hello";
Span<char> span = roSpan;
char[] array = roSpan.ToArray();
Типы Span теперь могут выступать как принимающие методы расширения, то есть станут получателями вызова таких методов. Они также могут комбинироваться с другими типами преобразований. 🐸Библиотека шарписта #il_люминатор

💬 На чьей стороне вы 🐸Библиотека шарписта #garbage_collector
💬 На чьей стороне вы 🐸Библиотека шарписта #garbage_collector

🚀 В IT ценится не перфекционизм, а движение вперёд, и если вы давно откладывали обучение — самое время начать. ❤️ Proglib Ac
🚀 В IT ценится не перфекционизм, а движение вперёд, и если вы давно откладывали обучение — самое время начать. ❤️ Proglib Academy продлевает розыгрыш MacBook Pro 14 до 30 ноября! Что нужно: ⚡️ выбрать курс; ⚡️ пройти минимум две недели обучения (можно за два вечера); ⚡️ написать куратору #розыгрыш; ⚡️ забрать макбук. 🎓 Курсы, которые участвуют 👉 Участвовать

🖥 Pattern matching как в функциональных языках Records идеально сочетаются с pattern matching. Вы получаете алгебраические типы данных, которые раньше были только в функциональных языках вроде F#. Представьте, что вам нужно рассчитать площадь разных фигур:
public abstract record Shape;
public record Circle(double Radius) : Shape;
public record Rectangle(double Width, double Height) : Shape;

double CalculateArea(Shape shape) => shape switch
{
    Circle(var r) => Math.PI * r * r,
    Rectangle(var w, var h) => w * h,
    _ => throw new ArgumentException("Неизвестная фигура")
};
Никаких is checks, никаких кастов, никакого боксинга. Компилятор знает структуру и гарантирует полноту проверки всех случаев. Можете комбинировать с проверками свойств:
if (shape is Rectangle { Width: > 100, Height: > 100 })
    Console.WriteLine("Большой прямоугольник");
Это делает бизнес-логику выразительнее и безопаснее. Вместо цепочки if-else с кастами получаете элегантный switch:
public abstract record OrderStatus;
public record Pending : OrderStatus;
public record Shipped(DateTime Date) : OrderStatus;
public record Cancelled(string Reason) : OrderStatus;

string Describe(OrderStatus status) => status switch
{
    Pending => "Ожидает отправки",
    Shipped(var date) => $"Отправлен {date:d}",
    Cancelled(var reason) => $"Отменён: {reason}",
};
🐸Библиотека шарписта #sharp_view

❓ Признавайтесь, что вас зацепило на этой неделе
Anonymous voting

⭐️ Дайджест недели Неделю взяли Microsoft со своей конференцией и обновлениями. — .NET Conf. День 1 и день 2 — Doom теперь в
⭐️ Дайджест недели Неделю взяли Microsoft со своей конференцией и обновлениями. — .NET Conf. День 1 и день 2 — Doom теперь в Telegram — Юбилейный .NET — Обновления .NET и .NET Framework В ноябрьском обновлении 2025 года вышли новые релизы .NET 8.0.22 и .NET 9.0.11, включающие набор безопастностных и технических исправлений. 🐸Библиотека шарписта #async_news

⚡️ Ключевое слово field упрощает свойства Управление данными в свойствах теперь проще с новым ключевым словом для доступа к автоматически созданному полю. Раньше для добавления логики установки значения использовалось отдельное поле и аксессоры:
private string _msg;
public string Message
{
    get => _msg;
    set => _msg = value ?? throw new ArgumentNullException(nameof(value));
}
Сейчас field ссылается на поле, которое создает компилятор, сокращая код:
public string Message
{
    get;
    set => field = value ?? throw new ArgumentNullException(nameof(value));
}
Минимум кода — максимум контроля: write-only свойства снаружи и строгая логика внутри. 🐸Библиотека шарписта #il_люминатор

❓ Признавайтесь, что вас зацепило на этой неделе
Anonymous voting

🔍 Как увидеть вакансии, которые потерялись в ленте LinkedIn и других сайтов Большинство кандидатов видят только популярные в
🔍 Как увидеть вакансии, которые потерялись в ленте LinkedIn и других сайтов Большинство кандидатов видят только популярные вакансии, а те, что скрыты, остаются незаметными из-за дефектов поиска и плохих фильтров. Булевые операторы помогают создавать точные запросы, которые учитывают и исключают нужные параметры. Гитхаб и Google — дополнительные инструменты для охоты на вакансии, особенно стартапы, которые редко выкладывают открытые позиции на обычных сайтах. ➡️ Найдите вакансии, которые скрыты от других 🐸Библиотека шарписта

➕ Расширяем типы по-новому В C# 14 расширяется концепция расширений: можно создавать не только расширенные методы для экземпляров типов, но и свойства расширения, а также расширения, которые относятся к самому типу как к статическому элементу. Пример:
public static class EnumerableExtensions
{
    extension<TSource>(IEnumerable<TSource> source)
    {
        public bool IsEmpty => !source.Any();  // Расширенное свойство
    }

    extension<TSource>(IEnumerable<TSource>)
    {
        public static IEnumerable<TSource> Combine(IEnumerable<TSource> first, IEnumerable<TSource> second) 
            => first.Concat(second);  // Статический метод расширения
    }
}
Конструкция extension<TSource>(IEnumerable<TSource> source) — это новый синтаксис блока расширения для экземпляра типа: здесь определяются расширяющие члены, которые «прикрепляются» к объекту IEnumerable<TSource>. Внутри блока объявлено свойство IsEmpty, которое возвращает true, если последовательность пуста (!source.Any()). Второй блок extension<TSource>(IEnumerable<TSource>) — расширение для самого типа IEnumerable<TSource> как статического члена. Внутри него определён статический метод Combine, который принимает две последовательности и объединяет их с помощью Concat. Как это использовать:
var list = new List<int> { 1, 2, 3 };

bool empty = list.IsEmpty; // false — вызов расширенного свойства как у экземпляра

var combined = Enumerable<int>.Combine(new[] { 1 }, new[] { 2, 3 }); // {1, 2, 3}
🐸Библиотека шарписта #il_люминатор

📘 Хочешь в Data Science, но есть пробелы в знаниях математики? Мы сделали экспресс-курс «Математика для Data Science», котор
📘 Хочешь в Data Science, но есть пробелы в знаниях математики? Мы сделали экспресс-курс «Математика для Data Science», который за 2 месяца даст тебе фундамент, без которого ни одна ML-модель не взлетит 🚀 Что тебя ждёт: 🔹 живые вебинары с экспертами (НИУ ВШЭ, SberAI, Wildberries&Russ); 🔹 практика в Python, квизы и проверка заданий экспертами; 🔹 матрицы, регрессии, вероятности и статистика: всё на примерах из реальных задач; 🔹 старт — 4 декабря. 🔥 Не упусти халяву: сейчас 40% до 30 ноября 👉 Записаться на курс

🆚 Лаконичный стиль или привычный блок В C# есть конструкция using, которая помогает правильно освобождать ресурсы. Но выгляд
🆚 Лаконичный стиль или привычный блок В C# есть конструкция using, которая помогает правильно освобождать ресурсы. Но выглядеть она может по-разному, и сейчас можно выбрать, какой стиль использовать. Старый добрый способ с блоком:
using (var connection = new SqlConnection(connString))
{
    connection.Open();
    // Сюда кладём код работы с ресурсом
} // Dispose вызывается автоматически при выходе из блока
Чётко, понятно, но возникают лишние скобки и с отступами порой становится сложнее. Особенно, если таких блоков много. А теперь взгляд современного разработчика:
using var connection = new SqlConnection(connString);
connection.Open();
// Здесь код с использованием ресурса
// Dispose вызовется автоматически при выходе из области видимости метода
Минимализм, читаемость, меньше шума. Но важно помнить, что Dispose произойдёт в конце метода, а не сразу после строки. 💬 Что выбираете вы? Старый стиль с блоками или лаконичный using? 🐸Библиотека шарписта #entry_point