Библиотека шарписта | C#, F#, .NET, ASP.NET
23K subscribers
2.24K photos
35 videos
85 files
4.4K links
Все самое полезное для C#-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
🤔 Какие вебинары вам действительно нужны?

Привет, шарписты! 👋

Мы готовим новые вебинары и хотим сделать их максимально полезными для вас. Это поможет нам не только создавать актуальный контент, но и развивать проект, находя новые точки контактов для вас.

Ваши ответы дадут нам понимание, какие темы и форматы действительно важны, а также помогут сделать вебинары интереснее и продуктивнее.

Заполнение займет всего пару минут, а нам это очень поможет! Спасибо, что участвуете в нашем развитии! 💙

👉 Пройти опрос
1
Как классическая классификация ML помогает в реальном мире

🤖 Классификация в ML — это метод обучения, в котором модель обучается на размеченных данных и предсказывает, к какому классу относится новый объект.

Фильтрация спама – чтобы в почте оставалось только важное.
Рекомендации фильмов – Netflix знает, что ты любишь!
Кредитный скоринг – банки решают, дать ли тебе займ.
Предсказание мэтчей – как на нашем вебинаре по speed dating.

14 февраля мы разберём на практике задачу классификации:

- Как выбрать оптимальные признаки

- Что делать с несбалансированными данными

- Как интерпретировать результаты модели

🔥 Если уже работаешь с ML или только начинающий программист – приходи на наш вебинар, в котором мы разберем «как предсказывать мэтч на speed dating» .

Приходи!
👍1
💡 Shuffle() в действии

До сих пор в LINQ не было встроенного метода для случайного перемешивания коллекций. Разработчикам приходилось использовать разные неэффективные методы.

В новом PR был добавлен метод Shuffle() в IEnumerable<T>. Будем ждать в одном из следующих релизов .NET

Пример будущего кода:
var shuffledItems = items.Shuffle();


Подробности:

🔗 Обсуждение необходимости метода

🔗 Реализация в .NET

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
👍40🤔7
Вам нравится читать контент на этом канале?

Возможно, вы задумывались о том, чтобы купить на нем интеграцию?

Следуйте 3 простым шагам, чтобы сделать это:

1) Нажмите на ссылку: Вход
2) Пополняйтесь удобным способом
3) Размещайте публикацию

Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.
👍5🥱1
Как применять сторителлинг на IT-собеседовании

Чтобы выделиться среди других кандидатов, можно использовать сторителлинг — инструмент, который помогает не только запомниться работодателю, но и показать свои софт-скиллы и опыт в выгодном свете.

➡️ Что внутри статьи:

▪️ Почему сторителлинг работает лучше сухого перечисления навыков.

▪️ Советы по созданию историй для IT-собеседований.

▪️ Готовые примеры успешных историй.

🔗 Читать статью

🔵 Чтобы подготовиться к IT-собеседованию, попробуйте наш курс «Алгоритмы и структуры данных»
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
💡 Оркестрация фоновых задач в .NET

Temporal.io — это инструмент для управления сложными рабочими процессами, который обеспечивает автоматическое восстановление, управление состоянием и предсказуемость выполнения задач.

🛠 Как использовать Temporal в .NET

1. Добавляем Temporal в .NET проект
dotnet add package Temporalio


2. Настраиваем клиент Temporal
var client = await TemporalClient.ConnectAsync(new TemporalClientConnectOptions
{
TargetHost = "localhost:7233"
});

TargetHost — это адрес сервера Temporal, который управляет процессами.

3. Создаем Workflow
[Workflow]
public class MyWorkflow
{
public async Task<string> RunAsync(string name)
{
return $"Hello, {name}!";
}
}

Workflow — это логика, которая будет управляться Temporal.

4. Запускаем Workflow из .NET-кода
var handle = await client.StartWorkflowAsync(
(MyWorkflow wf) => wf.RunAsync("Temporal.io"),
new WorkflowOptions("my-workflow"));
Console.WriteLine($"Workflow started: {handle.Id}");

Temporal автоматически отслеживает состояние процесса, перезапускает его при сбоях и масштабирует при необходимости.

Temporal + .NET = надежная система, где даже долгие процессы не теряются, не ломаются и автоматически восстанавливаются

📎 Подробнее в статье

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🌚91
📈 IT-найм 2025: почему сеньоры будут на вес золота, а джуны — без работы?

Времена «мастеров на все руки» в IT подходят к концу. Работодатели все чаще отдают предпочтение кандидатам с опытом работы на конкретном стеке и с продолжительным опытом в конкретной отрасли, будь то финтех, е-ком, ритейл, фудтех и т. д.

Все потому, что рынок требует специалистов с глубоким пониманием специфики отрасли, способных решать задачи в рамках строгих ограничений.

Рассказываем, какие специалисты будут востребованы в 2025 году и как ими стать.

👉 Читать статью
👍7🤔2
🧑‍💻 Каналы в .NET – скрытая жемчужина для асинхронной обработки

Каналы в .NET – это асинхронные очереди в памяти, которые позволяют передавать данные быстро и без задержек. Разберём как их использовать.

Что такое каналы

Каналы — это быстрая и эффективная альтернатива очередям для перемещения данных внутри приложения. Они позволяют передавать данные между потоками без блокировок.

Где они полезны

• Фоновые задачи: например, отправка email после регистрации.

• Внутрипроцессные очереди: без необходимости поднимать Redis или Kafka.

• Обработка событий в реальном времени: без задержек и потерь данных.

➡️ Чтобы узнать про каналы подробнее посмотрите видео

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
🧪 Мутационное тестирование в .NET

Мутационное тестирование это метод тестирования, при котором код намеренно мутирует:

📌 Если тесты замечают изменения — хорошо.

📌 Если не замечают — тест бесполезен.

Как это работает в .NET

Для мутационного тестирования в .NET можно использовать Stryker.

Stryker — это библиотека для автоматического мутационного тестирования в .NET. Она анализирует тесты, создает мутации в коде и проверяет, насколько хорошо тесты обнаруживают эти изменения.

1️⃣ Берем исходный код и вносим мутации

• Инструмент автоматически меняет код, создавая мутантов.

• Например, если есть return x > 10;, он заменяет > на < или return true;.

2️⃣ Запускаем тесты на мутированном коде

• Если тест замечает изменения и падает — мутант убит.

• Если тест проходит — мутант выжил, а значит, тест неэффективен.

3️⃣ Анализируем отчет

• Сколько мутантов было убито, какие тесты не заметили изменений и какие части кода не защищены?

Мутационное тестирование — это как "стресс-тест" для тестов. Оно имитирует баги, проверяя, смогут ли тесты их поймать.

➡️ Подробнее про мутационное тестирование

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10🤩5👍3
🎮💉 Инъекция зависимостей в Unity для самых маленьких

В разработке на Unity часто возникает проблема высокой связанности кода, что затрудняет поддержку и тестирование. Инъекция зависимостей помогает сделать архитектуру гибче, упрощая управление зависимостями между компонентами.

В свежей статье разбираются подходы к DI в Unity, сложности, связанные с MonoBehaviour, и примеры улучшения структуры проекта.

➡️ Читать статью

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4😁1
📁 Оптимизация работы с данными

Большие JSON-объекты замедляют десериализацию, перегружают память и увеличивают задержки.

Что делать, чтобы JSON не тормозил приложение:

Использовать потоковую обработку JsonSerializer.DeserializeAsync, чтобы не загружать весь объект в память.

Сокращать размер JSON, удаляя ненужные поля и оптимизируя структуру данных.

Включать сжатие данных при передаче JSON через API (например, Gzip)

Рассмотреть альтернативные форматы: MessagePack или Protobuf быстрее и компактнее, чем JSON.

🖇 Полное руководство

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
🏗 🔨 Как не сломать продакшен: 8 основных паттернов распределенных систем

Разработка распределённых систем сопряжена с множеством вызовов: от управления состоянием и взаимодействия сервисов до обработки отказов и масштабирования. Чтобы упростить решение этих задач, инженеры используют проверенные временем архитектурные паттерны.

В статье рассматриваются ключевые шаблоны, помогающие строить надёжные и эффективные распределённые системы.

➡️ Читать статью

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
🌐 Тестирование API в .NET

WireMock позволяет эмулировать HTTP-запросы и ответы, создавая локальные mock-сервисы вместо реальных API.

Возможности WireMock.Net:

• Mock API-запросов и ответов – можно заранее определить, как сервер должен реагировать.

• Гибкие настройки – поддержка кастомных заголовков, тел запросов, условий обработки.

• Интеграция с .NET-тестами – можно легко использовать в xUnit, NUnit или MSTest.

• Запись и воспроизведение запросов – полезно при тестировании реальных API-ответов.

Пример мокирования API
var server = WireMockServer.Start();

// Определяем мок-ответ для запроса
server.Given(
Request.Create().WithPath("/test").UsingGet()
)
.WillRespondWith(
Response.Create()
.WithStatusCode(200)
.WithBody("{\"message\": \"Hello, WireMock!\"}")
);

// Используем API в тестах
var client = new HttpClient { BaseAddress = new Uri(server.Url) };
var response = await client.GetStringAsync("/test");
Console.WriteLine(response); // {"message": "Hello, WireMock!"}

server.Stop();


➡️ Подробнеe про мокирование API

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰8👍3
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования

🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion

#️⃣C#

Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
👍1🥱1
📊 Как себя чувствует IT-рынок в 2025 году?

Друзья, запускаем важное исследование рынка труда в IT!

Нам очень важно понять:
• Как изменились зарплаты
• Что происходит с наймом
• Есть ли сокращения или рост

🔐 Опрос полностью анонимный
⏱️ Займёт всего 3-5 минут
📈 Результаты опубликуем в подробной статье

Ваши ответы помогут составить реальную картину происходящего в индустрии.

👉 Пройти опрос
👾2👍1
🔄 Февральское обновление .NET

Microsoft выпустила обновление .NET 9.0.2, и вот самое важное, что стоит знать:

Производительность и стабильность:

• Устранены критические ошибки JIT-компилятора, которые могли вызывать сбои при работе с исключениями.

• Исправлена проблема пошаговой отладки — теперь разработчики смогут эффективно анализировать код без неожиданных пропусков.

• Оптимизирована работа метода Vector.Create, что ускоряет вычисления в высоконагруженных приложениях.

Совместимость и поддержка:

• Исправлены ошибки сборки для платформы Tizen (linux-armel).

• Обновлены ключевые образы: Alpine, Debian, Fedora для более надежного развертывания.

Безопасность и надежность:

• Обновлена работа профилировщика для избежания блокировок при мониторинге потоков.

• Исправлена ошибка в System.Reflection.Emit, которая создавала неверные PDB-файлы.

➡️ Подробности обновления

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤‍🔥22😁1👾1
🆚 Go vs C#

Выбор языка — это всегда компромисс между производительностью, удобством и экосистемой. Давайте разберёмся, чем отличаются Go и C#.

Область применения

• Go: создан Google, ориентирован на простоту, скорость и параллельность. Отлично подходит для облачных сервисов, микросервисов и высоконагруженных систем.

• C#: язык Microsoft, мощный инструмент для корпоративных решений, игр (Unity) и десктопных приложений.

Кроссплатформенность

• Go: отлично компилируется под разные платформы без зависимостей.

• C#: поддерживает кроссплатформенность через .NET Core, но требует среды выполнения.

Система типов

• Go: строгая, но минималистичная. Отсутствует наследование, но есть интерфейсы.

• C#: мощная объектно-ориентированная система с поддержкой дженериков, интерфейсов и функционального программирования.

Где какой язык лучше

Выбирайте Go, если:

Нужна максимальная производительность без лишней сложности.
Работаете с микросервисами, API, контейнерами, облачными сервисами.
Важна лёгкость развертывания без сложных зависимостей.

Выбирайте C#, если:

Разрабатываете десктопные приложения или сервисы под Windows.
Нужна мощная экосистема с продвинутыми библиотеками.
Создаёте игры на Unity.

➡️ Подробное сравнение в статье

🐸Библиотека Go разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱35👍8👾5🤔3🌚1
😳 Если бы языки программирования были девушками

Выбрать язык — всё равно что найти идеального партнера. Кто-то западает на строгую типизацию, кто-то ищет простоту и гибкость, а некоторые готовы углубиться в самые сложные алгоритмы отношений.

Мы заглянули в Тиндер разработчика и нашли там C#. Как вам? 😏

Еще больше прекрасных дам языков программирования — в нашем канале Библиотека программиста.

Свайпайте и выбирайте свой мэтч ❤️

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥9🥱9😁4👍2🤩1
⚡️ Буст продуктивности в Razor/Blazor

Microsoft представила свежие обновления для работы с Razor в Visual Studio и Visual Studio Code.

1️⃣ Извлечение в компонент одним кликом

Теперь можно выделить кусок кода в Razor и мгновенно преобразовать его в отдельный компонент. Нажимаем Ctrl + . и выбираем "Extract to Component".

2️⃣ Новый токенизатор C# на основе Roslyn

Токенизатор — это инструмент, который разбивает код на отдельные элементы: ключевые слова, идентификаторы, строки, символы. В Razor он отвечает за корректное отображение и подсветку синтаксиса, а также за работу автодополнений.

Теперь Razor использует токенизатор Roslyn, из-за чего появилась поддержка нового синтаксиса C# и улучшилась обработка директив.

➡️ Примеры с кодом в блоге .NET

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍2
🐳 Делаем конкурента DeepSeek R1-Zero на домашней пекарне: метод GRPO в Unsloth

Обычно LLM требуют мощных GPU, но теперь даже на видеокарте с ограниченной памятью можно обучать модели логического рассуждения.

💡 Фишка — новый алгоритм GRPO, который позволяет моделям развивать логическое мышление без вмешательства человека.

Подробнее в нашей статье: https://proglib.io/sh/MyBCbq9is5