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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
🔥 Хороший ML-разработчик не начинает с нейросетей

На собеседовании по ML System Design кандидату дают задачу «предсказать отток», а он сразу лезет в нейросети. Красиво, модно, дорого.

Но профи думает иначе:

💭 Логрегрессия? Градиентный бустинг?
💭 А сколько у нас данных и времени?
💭 Что с интерпретируемостью?

Потому что не выбрать адекватную модель — это уже ошибка.

Нейросети — это круто. Но без понимания классического ML вы просто «подключаете модельку», а не строите решения.

➡️ На курсе разберём:

— линейные модели, деревья, PCA, кластеризацию
— метрики, переобучение, bias vs variance
— инженерные подводные камни, которые идут сразу после fit()

🎁 Скидка 10 000₽ по промокоду Earlybird, только до 27 июля.

А ещё — подарок для первых 10 участников: специальный лонгрид по теме курса, чтобы вы могли начать погружение в материал уже сегодня.

🔗 Успей записаться — и начни карьеру в Data Science уже через 3 месяца!
👍21
🧑‍💻 Как отменить асинхронную операцию с помощью CancellationToken

Одной из ключевых особенностей асинхронного программирования в C# является возможность отменить долгие или зависшие операции, используя CancellationToken.

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

Для создания токена отмены используется объект типа CancellationTokenSource, который предоставляет токен для отмены, а также метод Cancel(), который сигнализирует об отмене.

Пример отмены с помощью токена. Вызываем функцию и передаём в неё токен:
using System;
using System.Threading;
using System.Threading.Tasks;

class Program
{
static async Task Main(string[] args)
{
// Создаем объект CancellationTokenSource
var cancellationTokenSource = new CancellationTokenSource();

// Получаем токен отмены
var cancellationToken = cancellationTokenSource.Token;

// Запускаем асинхронную задачу
var task = LongRunningOperation(cancellationToken);

// Через 3 секунды отменяем операцию
await Task.Delay(3000);
cancellationTokenSource.Cancel();

try
{
// Ожидаем завершения операции
await task;
}
catch (OperationCanceledException)
{
Console.WriteLine("Операция была отменена.");
}
}
}


Сама функция:
// Асинхронная операция, которая может быть отменена
static async Task LongRunningOperation(CancellationToken cancellationToken)
{
Console.WriteLine("Операция началась.");

for (int i = 0; i < 10; i++)
{
// Проверка на отмену операции
if (cancellationToken.IsCancellationRequested)
{
Console.WriteLine("Операция отменена.");
throw new OperationCanceledException();
}

// Имитация работы
Console.WriteLine($"Шаг {i + 1}...");
await Task.Delay(1000); // Задержка в 1 секунду
}

Console.WriteLine("Операция завершена.");
}
}


При отмене операции метод выбрасывает исключение OperationCanceledException, которое можно ловить и обрабатывать соответствующим образом.

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍98😁3🥱1
🤨 Нужен ли async в каждом методе

Асинхронное программирование стало неотъемлемой частью разработки на C#. Но появляется вопрос: нужно ли использовать асинхронность в каждом методе?

Когда стоит использовать async

— Асинхронность идеально подходит для работы с медленными операциями, такими как запросы к базе данных, сетевые операции или чтение/запись файлов.

— Асинхронный код позволяет серверам и приложениям обрабатывать значительно больше запросов без блокировки.

— Применяя async/await, мы освобождаем потоки от ожидания завершения I/O операций.

Но за плюсами спрятались и минусы

— Асинхронные методы всегда требуют дополнительных накладных расходов, таких как создание задач, контекст переключения и управление потоками.

— Применение асинхронности везде может привести к проблемам с синхронизацией данных и контекстом выполнения.

— Если приложение не работает с большим количеством асинхронных операций, добавление async/await в каждый метод не даст значительного прироста производительности.

💬 Как вам асинхронность? Даёшь в каждый метод или лучше дважды подумать?

🐸Библиотека шарписта #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
9
💻 Удалённая разработка в Rider

Не всегда нужно хранить код у себя на пк. Хранение и выполнение кода на удалённых хостах и контейнерах давно стало реальностью.

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

Подключение к серверу через SSH

Настроить SSH-подключение в Rider — проще, чем вы думаете. Всё, что нужно — это пару кликов в настройках IDE.

1. Откройте File → Settings → Tools → Deployment.

2. Выберите Add Remote Server и в качестве типа соединения выберите SSH.

3. Введите IP-адрес удалённого сервера, пользовательские данные и путь к приватному ключу (или пароль).

4. Нажмите Test Connection и, если всё в порядке, готово — подключение установлено!

🧑‍💻 Работа с проектами на удалённом сервере

Когда подключение установлено, вы получаете доступ к файловой системе удалённого сервера. Это значит, что вы можете:

• Перемещать файлы между локальной машиной и сервером

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

• Открывать логи, работать с конфигурационными файлами и запускать процессы прямо из Rider.

Один из самых полезных инструментов при удалённой разработке — это отладка через SSH.

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

Чтобы начать удалённую отладку:

1. Запустите приложение на удалённом сервере

2. Выберите Run → Edit Configurations и создайте конфигурацию для Remote Debugging.

3. Подключитесь к удалённому процессу через SSH и начинайте отладку прямо из Rider.

Если вы ещё не настроили SSH в Rider, самое время попробовать.

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍7
😤 Устал листать туториалы, которые не складываются в картину

У тебя в голове уже есть логрегрессии, деревья, метрики и какая-то PCA, но системного понимания всё нет?

Пора с этим разобраться!

Наш курс по классическому ML:

— научит выбирать адекватные модели под задачу
— разложит метрики, переобучение и bias по полочкам
— покажет, что скрывается за fit/predict, и что с этим делать

🔔 До 27 июля по промокоду Earlybird минус 10.000₽

P.S. Первые 10 участников получат эксклюзивный лонгрид, чтобы начать изучать тему ещё до старта курса.

👉 Поменяй свою жизнь: старт карьеры в AI — успей до закрытия набора!
⚡️ Ошибки в резюме

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

В карточках объяснили какие ошибки могут быть при описании пет-проектов.

➡️ Узнайте, как правильно оформить пет-проекты в резюме

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🔥2
Первоначальное имя языка C# было …
Anonymous Quiz
21%
С-2
31%
С++++
18%
СOOL
30%
Obj-C
😁36👏3👾3
🤔 «Начни сразу с нейросетей — зачем тебе логрегрессия?»

Это один из худших советов для начинающего ML-разработчика. Зрелость — это понимать, где простого достаточно, а не тянуть трансформеры на любую задачу из-за хайпа.

Классика ML — это не допотопная теория, а база (bias/variance, деревья, метрики), без которой не понять Deep Learning.

⚡️ Хотите освоить этот фундамент на реальных задачах? Приходите на наш курс по классическому ML. Только хардкор, только продовые задачи!

📆 Старт — 12 августа.

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

🎁 Последний день промокода Earlybird на скидку 10.000₽.

👉 Не упустите шанс!
📰 Дайджест недели

Собрали для вас самые важные новости минувшей недели.

Тестирование HTTP-API с Alba

В статье рассматривается использование библиотеки Alba для тестирования HTTP-API в .NET в контексте фреймворка Wolverine.

Стратегии миграции БД

В статье рассматриваются самые эффективные стратегии, которые помогут избежать рисков и минимизировать возможные проблемы.

Как выбрать подходящий режим GitHub Copilot

Обновление MCP C# SDK

🐸Библиотека шарписта #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Что произойдёт при попытке изменить значение readonly поля вне конструктора?

👾 — Будет выброшено исключение во время выполнения
👍 — Компилятор выдаст ошибку
🥰 — Значение изменится, но только для текущего экземпляра
⚡️ — Поле сбросится в значение по умолчанию

Библиотека задач по C#
👍155🌚2🎉1👾1
👉 Подборка вакансий для шарпистов

C# / .NET Core Backend Developer — от 140 000 ₽, удалёнка.

Senior C# Developer (HFT) — до 1 000 000 ₽, удалённо.

Senior .NET Developer — до 250 000 ₽.

C# разработчик — от 240 000  ₽, удалённо.

C#/.NET‑разработчик — от 240 000  ₽, удалёнка.

Бустер — Удалённо (в любом городе мира).

➡️ Еще больше топовых вакансий — в нашем канале С# Jobs
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Последний шанс залутать курсы Proglib Academy с выгодой 40% и пожизненным доступом.

До 1 августа действует скидка на курсы по математике для Data Science, алгоритмам и структурам данных, обновлённому Python, frontend-разработке с нуля, основам IT для непрограммистов, базовым моделям ML, а также архитектурам и шаблонам проектирования.

Выбираем и забираем 👈

P.S. Акция не распространяется на курсы «AI-агенты для DS-специалистов» и «ML для старта в Data Science».
🥱3