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

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

Kanalga Telegram’da o‘tish

Все самое полезное для C#-разработчика в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/b60af5a4 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead

Ko'proq ko'rsatish

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

Библиотека шарписта | C#, F#, .NET, ASP.NET (@csharpproglib) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 21 866 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 6 209-o'rinni va Rossiya mintaqasida 30 824-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 21 866 obunachiga ega bo‘ldi.

11 Iyun, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -95 ga, so‘nggi 24 soatda esa -6 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 12.48% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 7.13% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 2 729 marta ko‘riladi; birinchi sutkada odatda 1 560 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 9 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent .net, шарписта, навигация, await, string kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
Все самое полезное для C#-разработчика в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/b60af5a4 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead

Yuqori yangilanish chastotasi (oxirgi ma’lumot 12 Iyun, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.

21 866
Obunachilar
-624 soatlar
-237 kunlar
-9530 kunlar
Postlar arxiv
🌲 Подборка вакансий для шарпистов C#/.NET Developer на удалёнку C#/.NET Developer с ЗП от 2 500 до 5 000$ C# / .NET Разработчик, middle, middle+ — от 190 000 до 290 000 ₽ 🔸 AI-агенты для DS-специалистов 🔸 Получить консультацию менеджера 🔸 Сайт Академии 🔸 Сайт Proglib ➡️ Еще больше топовых вакансий — в нашем канале C# Jobs 🐸 Библиотека шарписта

🔍 Устаревший синтаксис в F# 10 Раньше F# позволял опускать ключевое слово seq при создании последовательностей, что выглядело так:
{ 1..10 } |> List.ofSeq  // неявная последовательность
Это была особенность синтаксиса, но она расходилась с остальными вычислительными выражениями в языке и могла сбивать с толку. Теперь компилятор рекомендует явно писать seq, чтобы сделать код однозначным и понятным:
seq { 1..10 } |> List.ofSeq
Сейчас это предупреждение, а не ошибка, чтобы дать время адаптироваться и исправить код. Но в будущих версиях F# это может превратиться в ошибку. 🔸 AI-агенты для DS-специалистов 🔸 Получить консультацию менеджера 🔸 Сайт Академии 🔸 Сайт Proglib 🐸 Библиотека шарписта #sharp_view

📞 Комбинации букв телефонного номера: решение за один проход рекурсии Задача — сгенерировать все возможные буквенные комбина
📞 Комбинации букв телефонного номера: решение за один проход рекурсии Задача — сгенерировать все возможные буквенные комбинации по цифрам телефона, где каждая цифра соответствует набору букв. Идея решения: для каждой цифры берём соответствующие буквы и рекурсивно добавляем их к уже сформированным комбинациям. Алгоритм: 1. Если входная строка пуста, возвращаем пустой результат 2. Используем массив с отображением цифр на наборы букв. 3. Рекурсивно проходим по цифрам, добавляя буквы к текущей комбинации 4. Когда достигнут конец строки, сохраняем сформированную комбинацию. Решение:
public class Solution {
    private static readonly string[] map = { "", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz" };

    public IList<string> LetterCombinations(string digits) {
        var result = new List<string>();
        if(string.IsNullOrEmpty(digits))
            return result;
        Backtrack(digits, 0, new StringBuilder(), result);
        return result;
    }

    private void Backtrack(string digits, int index, StringBuilder current, List<string> result) {
        if(index == digits.Length) {
            result.Add(current.ToString());
            return;
        }

        string letters = map[digits[index] - '0'];
        foreach(char c in letters) {
            current.Append(c);
            Backtrack(digits, index + 1, current, result);
            current.Length--;
        }
    }
}
🔸 ML для старта в Data Science 🔸 Получить консультацию менеджера 🔸 Сайт Академии 🔸 Сайт Proglib 🐸Библиотека шарписта #dotnet_challenge

📘 4 декабря стартует набор на курс «Математика для разработки AI-моделей» Если вы работаете с моделями или хотите перейти в
📘 4 декабря стартует набор на курс «Математика для разработки AI-моделей» Если вы работаете с моделями или хотите перейти в DS/ML, декабрь — идеальный момент закрыть фундаментальные пробелы. На курсе вы разберёте ключевые разделы, которые лежат в основе современных AI-моделей: линейная алгебра, анализ, оптимизация, математический анализ, вероятности, статистика. Всё через практику в Python. В программе живые занятия с экспертами AI-индустрии (SberAI, ВШЭ, WB&Russ), разбор реальных задач, квизы и финальный проект. 🌐 Формат: онлайн + доступ к записям 🎁 Бонусы: курс «Школьная математика» в подарок, бесплатный тест по математике После лекций будет разбор ваших решений и возможность задать вопросы преподавателям. 👉 Записаться на курс

✏️ Запрет псевдо-вложенных модулей внутри типов в F# 10 В F# 10 добавили важное правило: теперь нельзя объявлять модуль внутри определения типа с тем же уровнем отступа, как сам тип. Это выглядело как вложенный модуль, но на самом деле модуль создавался на одном уровне с типом — то есть был соседом, а не дочерним элементом. Пример из старого кода:
type U =
    | A
    | B
    module M =  // на самом деле не вложенный модуль
        let f () = ()
Правильный код:
type U =
    | A
    | B

module M =
    let f () = ()
Это предотвращает частую ошибку, когда модуль кажется «вложенным» в тип, но на самом деле не является таковым. 🔸 Получить консультацию менеджера 🔸 Сайт Академии 🔸 Сайт Proglib 🐸Библиотека шарписта #sharp_view

✋ Хватит плохих новостей Такое ощущение, что плохих новостей вокруг уже больше, чем уведомлений от коллег. Наткнулись на кана
Хватит плохих новостей Такое ощущение, что плохих новостей вокруг уже больше, чем уведомлений от коллег. Наткнулись на канал с позитивными новостями и это как антидот к новостному шуму и думскроллингу, где можно сознательно переключиться в режим у мира ещё есть шансы. 🤌 Бонусы для подписчиков:Скидка 40% на все курсы АкадемииРозыгрыш Apple MacBookБесплатный тест на знание математики 🐸Библиотека шарписта

📰 Последняя неделя ноября Ноябрь вот-вот закончится, а мы подводим итоги недели. — Куда катится .NET Microsoft выкатили боль
📰 Последняя неделя ноября Ноябрь вот-вот закончится, а мы подводим итоги недели. Куда катится .NET Microsoft выкатили большой лонгрид про то, как .NET в .NET 10 окончательно переезжает на Unified Build — виртуальный монорепозиторий и вертикальные сборки, чтобы быстрее и предсказуемее собирать весь продукт. — Ивент про ИИ .NET‑команда анонсировала бесплатный онлайн‑ивент .NET Day on Agentic Modernization, который пройдёт 9 декабря 2025 — Redis 8.4 Redis выкатили версию, которая одновременно ускоряет кэш, упрощает жизнь кластерам и делает Redis куда более удобным движком для AI и гибридного поиска — GitHub Copilot TestingПерестаньте ждать, пока вас найдутКарьерная «страховка» для IT‑шника 🫶 Бонусы для подписчиков:Скидка 40% на все курсы АкадемииРозыгрыш Apple MacBookБесплатный тест на знание математики 🐸Библиотека шарписта #async_news

🔥 Хочешь строить свои AI-модели, а не просто запускать чужие? Proglib.academy открывает курс «Математика для разработки AI-моделей» — программу, которая превращает понимание ML из «черного ящика» в осознанную инженерную работу. 📌 Почему без математики в AI никуда: → Чтобы пройти собеседование. Это первый фильтр: линал, матстат, оптимизация — спрашивают везде. → Чтобы понимать процесс изнутри. Инженер AI должен понимать, почему и как работает модель, а не просто жать fit(). 🎓 Что будет на курсе: → 3 практических задания на Python + финальный проект с разбором от специалистов; → программа обновлена в ноябре 2025; → за 2 месяца пройдёшь весь фундамент, нужный для работы с моделями; → преподаватели — гуру математики, методисты и исследователи из ВШЭ и индустрии. 🎁 Бонусы ноября: — 40% скидка; — получаешь курс «Школьная математика» в подарок; — короткий тест и узнать свой уровень. 🔗 Подробнее о курсе

👨‍💻 DbContext в ASP.NET Core лучше оставлять scoped В ASP.NET Core есть негласное правило DbContext живет ровно столько, сколько живет HTTP запрос. Эту модель Microsoft прямо закладывает в документацию, ведь DbContext задуман как короткоживущий объект под одну единицу работы одну бизнес операцию и один вызов SaveChanges. Когда вы регистрируете контекст так:
builder.Services.AddDbContext<AppDb>(opt =>
    opt.UseNpgsql(connString));
контейнер DI по умолчанию регистрирует AppDb с временем жизни Scoped. Это значит новый экземпляр создается на каждый запрос и шарится только между сервисами внутри этого запроса. Если сделать DbContext Singleton вы получите общий экземпляр на все запросы сразу и это прямой путь к гонкам, утечкам и странным багам. 🤌 Бонусы для подписчиков:Скидка 40% на все курсы АкадемииРозыгрыш Apple MacBookБесплатный тест на знание математики 🐸Библиотека шарписта #sharp_view

😂 Я ставлю X. Ваш ход 🐸Библиотека шарписта #garbage_collector
😂 Я ставлю X. Ваш ход 🐸Библиотека шарписта #garbage_collector

💻 Поддержка паттерна discard в use! в F# 10 Раньше в use! вычислительных выражениях нельзя было указать _ для игнорирования результата, что заставляло создавать ненужные имена переменных, например, __ или _ignored. Теперь можно прямо написать:
use! _ = acquireResourceAsync()
Это обозначает, что ресурс используется только для управления временем жизни, и его значение не будет задействовано в коде. 🤌 Бонусы для подписчиков:Скидка 40% на все курсы АкадемииРозыгрыш Apple MacBookБесплатный тест на знание математики 🐸Библиотека шарписта #sharp_view

💳 Как выбить зарплату побольше Собрали для вас в карточках 5 стратегий для торгов на собеседовании. Есть ещё несколько, кото
+5
💳 Как выбить зарплату побольше Собрали для вас в карточках 5 стратегий для торгов на собеседовании. Есть ещё несколько, которые подробно описаны в статье. 🤌 Бонусы для подписчиков:Скидка 40% на все курсы АкадемииРозыгрыш Apple MacBookБесплатный тест на знание математики 🐸Библиотека шарписта

⚡️ Batch-обработка с помощью Chunk Если нужно обработать коллекцию по частям — например, выгрузить данные пакетами, есть решение: метод Chunk. Он создаёт из исходного списка последовательность подсписков одинакового размера. Пример:
foreach (var batch in items.Chunk(100))
{
    await SaveBatch(batch);
}
} Chunk тут удобен тем, что не требует писать циклы с индексами и сложную логику по разбиению. Просто задайте размер пакета, и метод сделает всё за вас. 🔹 Практический интенсив «Архитектуры и шаблоны проектирования» 🔹 Получить консультацию менеджера 🔹 Сайт Академии 🔹 Сайт Proglib 🐸Библиотека шарписта #sharp_view

💡 Tail-call оптимизация в вычислительных выражениях F# 10 В F# 10 появилась важная возможность оптимизировать использование вычислительных выражений с помощью поддержки tail-call оптимизации для ключевых вызовов return!, yield! и do!. Теперь компилятор распознаёт, когда эти вызовы находятся в хвостовой позиции, и, если реализация билдера поддерживает специальные методы ReturnFromFinal, YieldFromFinal и им подобные, он применяет оптимизацию tail call. Это позволяет выполнять вызовы без дополнительного роста стека. 🔹 Основы IT для непрограммистов 🔹 Получить консультацию менеджера 🔹 Сайт Академии 🔹 Сайт Proglib 🐸 Библиотека шарписта #sharp_view

Коллекции .NET: взгляд изнутри Как устроены стандартные коллекции в .NET и почему понимание их внутренней логики помогает пис
Коллекции .NET: взгляд изнутри Как устроены стандартные коллекции в .NET и почему понимание их внутренней логики помогает писать более производительный код? На открытом вебинаре курса OTUS «C# Developer. Advanced» Антон Герасименко покажет, что происходит «под капотом» List, Dictionary и других структур данных. 🗓 4 декабря, 20:00 Коллекции .NET: взгляд изнутри: — разберём устройство стандартных коллекций — заглянем в исходный код и объясним, почему они работают именно так — обсудим, когда стоит реализовать собственную структуру данных Вебинар будет полезен разработчикам уровня Junior и выше, которые хотят глубже понимать, как устроены базовые механизмы .NET и как использовать их эффективнее. 👉 Зарегистрируйтесь: https://clc.to/8-oWYg Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

💼 Карьерная «страховка» для IT‑шника Рынок IT сильно изменился за последние годы. После бурного роста начались крупные сокра
💼 Карьерная «страховка» для IT‑шника Рынок IT сильно изменился за последние годы. После бурного роста начались крупные сокращения и оптимизация команд. Сегодня никто не может быть уверен в стабильности работы — даже опытные разработчики сталкиваются с риском внезапного увольнения. Поэтому важно задуматься о своей карьерной страховке — простых шагах и инструментах, которые помогут защитить себя и сохранить финансовую устойчивость в любой ситуации. ➡️ Собрать свою страховку 🔸 ML для старта в Data Science 🔸 Получить консультацию менеджера 🔸 Сайт Академии 🔸 Сайт Proglib 🐸Библиотека шарписта

👨‍💻 Обработка ошибок в .NET minimal API При разработке API важно правильно и понятно передавать клиентам информацию о возникших ошибках. Одним из удобных способов сделать это в .NET minimal API является использование встроенного метода Results.Problem. Он возвращает объект с подробностями ошибки в стандарте ProblemDetails, что упрощает клиентам обработку ответа. Пример:
app.MapGet("/users/{id}", async (string id, IUserRepo repo) =>
{
    if (!Guid.TryParse(id, out var guid))
        return Results.Problem("Invalid id", statusCode: 400);

    var user = await repo.Find(guid);
    return user is null ? Results.NotFound() : Results.Ok(user);
});
В этом коде при неверном формате id возвращается ProblemDetails с кодом 400, если пользователь не найден — 404, иначе 200 с данными. 🐸Библиотека шарписта #sharp_view

🤩 Типизированные вычислительные выражения в F# 10 без скобок В F# 10 упростили синтаксис для аннотирования типов в вычислительных выражениях. Теперь можно добавлять типы в let!, use! и and! без необходимости использовать дополнительные скобки вокруг идентификаторов. ньше для указания типа в вычислительном выражении приходилось писать так:
let! (x: int) = fetchValue()
Сейчас можно написать короче:
let! x: int = fetchValue()
Если вы часто работаете с async, task или другими вычислениями, это изменение вы оцените. 🔹 Алгоритмы и структуры данных 🔹 Получить консультацию менеджера 🔹 Сайт Академии 🔹 Сайт Proglib 🐸Библиотека шарписта #sharp_view

🔥 На рынке сейчас математика — снова король: AI растёт быстрее, чем вузы успевают обновлять программы. Мы же перестраиваем к
🔥 На рынке сейчас математика — снова король: AI растёт быстрее, чем вузы успевают обновлять программы. Мы же перестраиваем курс под индустрию мгновенно. Хочешь наконец разобраться в математике для DS, а не гуглить «что такое градиент» перед собесом? Новый курс «Математика для разработки AI-моделей» — это 8 недель плотной подготовки, свежая программа и только актуальные темы, которые реально нужны в ML. Что в курсе: → линал, производные, градиенты, вероятности, статистика; → практика на Python и 3 большие ДЗ; → живые вебинары + разбор ваших вопросов; → финальный мини-проект, который можно положить в портфолио; → доступ к материалам и чат с экспертами. Для старта нужны только школьная математика и базовый Python. 🎁 Бонусы ноября: — скидка 40% до 30 ноября; — «Базовая математика» в подарок при оплате; → бесплатный тест уровня математики. 👉 Записывайся на курс