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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
Что добавить к C, чтобы получился C# (спойлер: не решётку)
Anonymous Quiz
7%
Кетчуп
5%
Фрукты
78%
Сахар
10%
Воду
⚡️ Будь как этот гений с картинки — предлагай свои условия работодателю, а не наоборот!

Кто нужен?
Senior ML-Engineer с опытом работы более 6 месяцев в FAANG компаниях. Требование: разработать кросс-платформенное приложение-трекер зарплат с AI-распознаванием вакансий по резюме.


Но если вы пока джун — я бы предложил:

- Full-time контракт: 180к/мес после курса + опцион на карьеру в топ-компаниях
- Либо фикс за проект: стань ML-инженером за 39к вместо 44к с промокодом LASTCALL

🔗 Старт 9 сентября
😁14😢1
👨‍💻 Дайджест недели

Собрали интересные новости в одной подборке.

Copilot Coding Agent теперь интегрирован в .NET

Microsoft представила Copilot Coding Agent для .NET, который помогает разработчикам писать код быстрее и качественнее прямо в Visual Studio и VS Code.

WinToUSB 10.0

В новой версии WinToUSB 10.0 акцент сделан на стабильность и скорость. Программа теперь лучше справляется с различными USB-устройствами и обеспечивает корректную установку Windows без лишних ошибок.

Обновление альтернативного файлового менеджера для Windows

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

Microsoft опубликовали исходники BASIC

Microsoft выложили в открытый доступ оригинальный код BASIC для процессора MOS 6502, использовавшийся в ранних домашних компьютерах 1980-х годов. Первый коммит датируется 27 июля 1978 года.

Строим банк с нуля

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
2
В .NET Core приложении под нагрузкой замечены частые аллокации при работе с большими массивами, что вызывает давление на GC. Какой подход наиболее правильный?

👾 — Хранить массивы в static переменной, чтобы GC их не удалял
👍 — Использовать ArrayPool<T>.Shared для аренды и возврата массивов
🥰 — Создавать новые массивы на каждый запрос, чтобы избежать race conditions
⚡️ — Принудительно вызывать GC.Collect() после каждой партии запросов

Библиотека задач по C#
👍79🌚61
Иногда реально ощущение, что нас держат в Матрице.

Большинство сидит, читает статьи про ML, смотрит ролики «как это работает» — и всё.

Сегодня последний день промокода Lastcall (−5000 ₽).
Уже завтра стартует первый вебинар по Машинному обучению — полный набор для выхода из Матрицы.

Кто готов вырваться из симуляции и ворваться в сезон найма?

👾 — я уже в команде Нео
👍 — хочу красную таблетку
🤔 — пока думаю, но интересно

👉 Забронируй место сейчас
🦆 Подборка вакансий для шарпистов

.Net Developer (Middle or Senior) — от 200 000 до 300 000 ₽, удалёнка

Senior / Middle C# developer — удалёнка

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

Senior .NET Developer — удалёнка

C#/.NET Developer — до 260 000 ₽, удалёнка

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

➡️ Еще больше топовых вакансий — в нашем канале С# Jobs
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻 Как писать меньше кода

Каждая лишняя строка кода — это деньги.
Больше кода → больше багов → больше инцидентов → больше часов инженеров.
Pattern matching и switch expressions помогают уменьшить кодовую базу, ускорить ревью и снизить стоимость поддержки.

Pattern Matching: меньше проверок, меньше каста

Используем property pattern: проверка + извлечение объекта в одну строку.
if (customer is { IsActive: true, Orders.Count: > 0 })
{
Process(customer);
}


Компактные решения вместо длинных switch

Переписываем switch на expression switch:
var message = status switch
{
Status.Active => "Active",
Status.Inactive => "Inactive",
Status.Suspended => "Contact support",
_ => "Unknown"
};


Композиция правил: читаем как таблицу

Современные паттерны позволяют описывать правила декларативно.
Пример проверки транзакции:
var decision = (txn.Amount, user.Role, txn.Country) switch
{
(> 10_000, "Guest", not "US") => "Flag",
(<= 10_000, "Admin", _) => "Approve",
_ => "Review"
};


Это не синтаксический сахар, а инструмент управления сложностью.

🐸Библиотека шарписта

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥2
⏹️Новая специализация, о которой почти никто не знает: проще вход, ниже конкуренция, выше чеки

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

▶️Освоив Revit API, вы сможете быстро войти в нишу, где каждый навык напрямую конвертируется в деньги.

На курсе «Программирование в Autodesk Revit» от EdTech-платформы STEMPS вы научитесь:

➡️Писать плагины и инструменты на C# для инженеров
➡️Автоматизировать рутинные процессы и проверки моделей
➡️Создавать востребованный софт для архитектурных и проектных бюро

👤Автор курса — Дмитрий Смирнов, CTO DynamicLabs, STEMPS, Atomtech, Plancy. Разрабатывал системы автоматизации и SaaS-системы для компаний на 700+ сотрудников.

🗓 Старт курса — 23 сентября.

📍Студенты получат документ о повышении квалификации.

🔥Успейте записаться на курс со скидкой 10%:
https://stemps.ru/
Please open Telegram to view this post
VIEW IN TELEGRAM