Библиотека шарписта | 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
🧠 virtual, override, new, overload в C#

Работаете с наследованием в C#? Тогда вы обязаны понимать, как работают virtual, override, new и overload. Разложим по полочкам:

virtual — можно переопределить

Метод можно переопределить в классе-наследнике. Без него — нельзя.
class Animal {
public virtual void Speak() {
Console.WriteLine("Animal speaks");
}
}


override — переопределение родительского метода.

class Dog : Animal {
public override void Speak() {
Console.WriteLine("Woof");
}
}


new — перетирание метода базового класса

Это не переопределение, а маскировка: новый метод с тем же именем.
class Cat : Animal {
public new void Speak() {
Console.WriteLine("Meow");
}
}


overload — перегрузка метода

Метод с таким же именем, но разными параметрами. Никак не связан с наследованием.
class Printer {
public void Print(string text) { ... }
public void Print(int number) { ... } // overload
}


🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥11👍3🥱3😁1👾1
🤔 Зачем вообще понимать, как работает ML?

Сейчас многие просто запускают модельку в sklearn — и радуются точности 0.92.

Вроде всё работает… но почему?
А когда сломается — что делать?


Машинное обучение — это система, которую можно понять.

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

👉 Мы сделали курс, чтобы в это было реально въехать:

— без сложных формул;
— с интуитивными объяснениями;
— от простого к сложному.

Если хочешь перейти от «гуглю код» к «понимаю, как это работает» — ты по адресу!

Стартуем в сентябре — бронируй место на курсе уже сейчас
🥱32
🤩 Вайб-кодинг: новая эра в программировании или модная ошибка

Мы
подготовили 5 карточек, которые расскажут, как вайб-кодинг меняет разработку, какие плюсы и минусы он имеет, а также что думают об этом сами специалисты.

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

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5😢4👾21🥱1
⚙️ Как управлять памятью с помощью Span и Memory

Span<T> — это структура данных, которая предоставляет доступ к диапазону элементов в памяти. Это меньше чем массив, потому что Span<T> является сегментом памяти, а не целым массивом.

Memory<T> — очень похож на Span, но с возможностью работать с данными в куче. Он может быть использован в асинхронных операциях и может сохраняться как переменная.

Работа с памятью без копий данных

Span и Memory позволяют работать с данными, не создавая новых копий.
public static void ProcessData()
{
// Создаем массив данных
int[] data = new int[100];

// Создаем Span, который ссылается на часть массива
Span<int> span = new Span<int>(data);

// Модифицируем данные через Span
span[0] = 42;
span[1] = 84;

// Выводим измененные данные
Console.WriteLine(data[0]); // 42
Console.WriteLine(data[1]); // 84
}


Использование Memory в асинхронных операциях

Если вам нужно передать данные в асинхронную задачу, используйте Memory, так как Span не может быть использован вне методов.
public async Task ProcessMemoryAsync()
{
byte[] data = new byte[100];
Memory<byte> memory = new Memory<byte>(data);

// Передаем данные в асинхронный метод
await SomeAsyncOperation(memory);
}

public async Task SomeAsyncOperation(Memory<byte> memory)
{
// Работа с Memory
memory.Span[0] = 1;
await Task.Delay(100); // асинхронная операция
}


Использование Memory с большими объемами данных

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

Span и Memory — это настоящие маги производительности в C#. Они позволяют работать с памятью быстро, избавляя от необходимости копировать данные и снижая нагрузку на сборщик мусора

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍183
🤖 Когда под рукой нет фронта

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

Промпт:
Вы — эксперт Frontend-разработчик с опытом создания пользовательских интерфейсов для .NET приложений. Ваша задача — создавать чистый, эффективный и поддерживаемый код фронтенда на React, Angular или Vue, который легко интегрируется с .NET бэкендом через указанные API-эндпоинты. Каждый ответ должен включать:
1. Полноценно рабочий компонент с комментариями по ключевым решениям.
2. Обоснование выбора архитектурных подходов, методик маршрутизации и управления состоянием.
3. Использование лучших практик современных фреймворков.

Предоставляю список эндпоинтов (укажите формат: URL, методы, схема данных). Создавайте код, учитывая эти эндпоинты и специфику взаимодействия с API.


API есть — интерфейс будет.

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7😁1
🫣 Боитесь математики в ML?

Думаете, для этого нужно вспоминать университетские интегралы и решать сложные уравнения?

У нас хорошая новость: машинное обучение — это в первую очередь инженерная практика, а не математическая олимпиада. Здесь важнее понимать суть, а не выводить формулы.

Именно на таком подходе — через логику, интуицию и наглядные примеры — и построен наш курс «ML для старта в Data Science», где мы объясняем всё на пальцах, без боли и зубрёжки.

Регистрируйтесь, пока есть свободные места 😉
1😁2
🤨 Разработчики бывают разные

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

Наш подписчик поделился историей:
У нас в команде был разработчик с явно слабым уровнем: путался в архитектуре, писал нестабильный код, не мог самостоятельно разобраться в чужом коде. Зато он старался, учился, слушал замечания, вписывался в командные процессы.

Потом пришёл другой — опытный, уверенный, местами даже впечатляющий. Быстро понимал задачу, показывал нестандартные решения, но при этом он постоянно спорил с тем, как устроена архитектура, игнорировал договорённости команды, воспринимал ревью как придирки, предлагал «как надо» на каждом шагу.

В итоге один тянул вниз, а второй — разрывал команду изнутри.

Какой тип разработчика на самом деле опаснее?


Админ думает, что токсику не место в командной разработке. Большие проекты это зачастую стресс, а если в этом стрессе кто-то будет подливать масла, то взорвутся все.

💬 А теперь вопрос: кого бы вы оставили, если нужно выбрать одного?

🐸Библиотека шарписта #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔42👍1
Proglib Academy — это место, где вы превращаете теорию в практику. Здесь ваши знания становятся проектами для портфолио, а вы — более уверенным специалистом.

Выберите курс, который поможет сделать следующий шаг ⬇️

🚀 Для тех, кто начинает путь в IT:

Основы IT для непрограммистов
Программирование на Python (обновлённый)
Frontend-разработчик с нуля: HTML, CSS, JavaScript

🧠 Для будущих и настоящих Data Scientist'ов:

ML для старта в Data Science (начинается в сентябре)
Базовые модели ML и приложения
Математика для Data Science
AI-агенты для DS-специалистов (скоро второй поток)

🛠️ Для опытных разработчиков, готовых к росту:

Алгоритмы и структуры данных
Архитектуры и шаблоны проектирования

Независимо от вашей цели, у нас есть курс, который поможет её достичь. Переходите в Proglib Academy, выбирайте свой путь и инвестируйте в навыки, которые всегда будут в цене!
3👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🧑‍💻 Локальные рефакторинги без мыши

Обычно, чтобы обернуть код в try/catch или using, многие тянутся к мыши: выделить → ПКМ → Refactor → Surround With… и только потом выбрать нужный шаблон.

Есть быстрый путь:

1. Выделите фрагмент кода

2. Нажмите Ctrl+K, затем Ctrl+S

3. Выберите сниппет для обёртки

4. Готово — без единого клика

Пример:
// Было:
DoSomething();

// Стало:
try
{
DoSomething();
}
catch (Exception ex)
{
// log or handle
}


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

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍183
This media is not supported in your browser
VIEW IN TELEGRAM
💰 Сколько ты стоишь как разработчик

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

Рынок меняется, технологии обновляются, а ваша цена на него — нет.

После прочтения нашей статьи вы сможете уверенно озвучить сумму, за которую вас действительно готовы нанимать.

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

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱6😁1🤔1
🧐 Зоопарк моделей в ML: с чего начать?

Открываешь статью по машинному обучению — и в тебя летят слова: трансформеры, бустинги, SVM, регрессии.

Кажется, придётся учить всё это, иначе в ML не пустят.

Хорошая новость: 90% задач можно закрыть 2–3 классическими методами. Разберёшь их — уже сможешь собирать работающие проекты. А хайповые названия подождут.

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

👉 Успей попасть на курс «ML для старта в Data Science»
2😁1
🆕 Новостной дайджест

Уделите пару минут этой подборке и будете в теме прошедших дней.

Visual Studio 2015: завершение поддержки

14 октября 2025 г. Microsoft прекращает поддержку всех редакций VS 2015 и связанных компонентов. Обновлений безопасности больше не будет.

Dependabot для NuGet стал быстрее и умнее

Новый движок на нативном .NET ускорил обновления на 65 %, повысил успешность с 82 % до 94 % и научился корректно работать с транзитивными зависимостями.

Оценка качества AI-агентов в .NET

В библиотеке Microsoft.Extensions.AI.Evaluation появились новые инструменты: метрики для проверки понимания намерений, фокуса на задаче и корректности вызова инструментов

Обновления .NET 8.0 и .NET 9.0

Обновлён рантайм, SDK, контейнерные образы и пакеты для Linux. Изменений в безопасности .NET нет.

Промпты от Microsoft

Microsoft собрала пять готовых промптов к Copilot, которые помогут быстрее разбираться в чужом коде, писать модульные тесты, переводить синхронный код на async/await, находить уязвимости и генерировать тестовые данные.

🐸Библиотека шарписта #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3