Telegram Web
Практикум, который снимет боль про микросервисы, о которой все молчат.

Sync vs Async: что убьёт ваш проект, а что спасёт?

15 октября, 19:00 — практический вебинар для разработчиков, архитекторов и девопсеров от OTUS. Работаем вместе с Олегом Голенищевым, Senior .NET-разработчиком Directum, преподавателем Microsoft.

Приходи, если хочешь:
✍️Понимать, где Sync — мастхэв, а где Async — единственный шанс выжить
✍️Получить FANG-уровня чек-лист по интеграции (и бонус — шаблоны конфигов Spring Boot для Kafka и RabbitMQ)
✍️Забрать 7% скидку на любой курс OTUS (именно так, просто за регистрацию)
✍️Не попасть в “клуб тех, кто строил микросервисы по учебнику, а теперь переписывает всё с нуля”

Запишись, чтобы не чинить то, что можно не ломать.
Запись, подарки и скидка — только для своих. Лови шанс — кликай на регистрацию: https://tglink.io/a0d055ccd13e

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: 2W5zFJ4TwVr
1
🔍 Как работать с массивами в C# без тормозов и без unsafe-кода

В C# каждое обращение к элементу массива проверяется на выход за границы. Это безопасно, но медленно. Разработчики часто решают проблему через unsafe-код с указателями — быстро, но опасно: один неверный индекс, и приложение крашится или получает дыру в безопасности.

Есть третий путь — Span<T>

Span — это структура, которая хранит указатель на данные и их длину. Фишка в том, что это ref struct — она живёт только в стеке и не может попасть в кучу. Благодаря этому компилятор гарантирует: данные переживут span, а значит проверки границ можно убрать.

Например, в быстрой сортровке вместо передачи массива с индексами low/high передаёте span. Код короче, переполнение невозможно, а рекурсивные вызовы работают через срезы:
// Было: опасно, (low + high) может переполниться
void Quicksort(int[] array, int low, int high) {
int mid = (low + high) / 2; // 💥 overflow!
// ...
Quicksort(array, low, pivot - 1);
Quicksort(array, pivot + 1, high);
}

// Стало: безопасно и выразительно
void Quicksort(Span<int> span) {
if (span.Length <= 1) return;

int pivot = Partition(span);
Quicksort(span[..pivot]); // левая часть
Quicksort(span[(pivot + 1)..]); // правая часть
}


Раньше для передачи части массива в функцию приходилось либо копировать данные, либо таскать массив + offset + length. Span решает это элегантно: создаёте срез array[10..20], передаёте дальше — никакого копирования, полная безопасность типов.

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

#il_люминатор
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1611😁1
🪚 Швейцарский нож для коллекций коллекций

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

Одна строка вместо циклов и временных списков:
var all = batches.SelectMany(b => b).ToList();


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

• Батчи сообщений из Kafka/RabbitMQ → один список для обработки
• Постраничные данные из API → единая коллекция
• Результаты параллельных задач → склеить всё вместе

SelectMany сохраняет порядок. Если у вас [1,2], [3,4], [5,6] — получите [1,2,3,4,5,6]. Критично для событий, логов, приоритетных очередей.

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

#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102🥱2
👨‍💻 Windows 10 больше не получит обновлений

Сегодня Microsoft выпустила последнее обновление для Windows 10. Дальше — тишина: новых патчей безопасности не будет. Через пару недель система станет мишенью для вирусов и хакерских атак.

Есть несколько способов продлить жизнь десятке — от года до нескольких лет.

• Официальная программа ESU — до октября 2026
Microsoft запустила программу расширенных обновлений. Бесплатно, но только на год. Чтобы подключиться:

1. Войдите в учётную запись Microsoft
2. Смените регион на США (для пользователей из России и Беларуси)
3. Проверьте статус через команду в PowerShell
4. Зарегистрируйтесь через Центр обновлений

После активации система получит доступ к патчам безопасности ещё на год.

• LTSC-версия — до января 2027

Корпоративная сборка Windows 10 LTSC (21H2) не получает новых функций, но апдейты безопасности идут до начала 2027 года. Подходит тем, кому нужна стабильность без лишних обновлений.

• TSforge — до 2028 года

Скрипт через PowerShell, который продлевает поддержку ещё на три года. Нужно сменить регион на страну ЕС, запустить команду и активировать ESU через меню. Проверить результат можно через команду в системе.

• 0patch Agent — постоянная защита


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

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

#async_news
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍3
🤓 Пока Python стал π-thon, ты можешь стать Data Scientist'ом

В Proglib.academy стартует экспресс-курс «Математика для Data Science»: 10 живых вебинаров, практика на Python и спикеры из ВШЭ, Яндекс Практикума и Wildberries, которые всё разложат по полочкам.

В программе:
🔹 матан, линал, теория вероятностей;
🔹 3 практических проекта + викторина с розыгрышем TG Premium;
🔹 поддержка преподавателей и чат с единомышленниками;

🎁 Оплати курс до 19 октября — получи курс по базовой математике в подарок.
🗓️ Старт — 6 ноября

👉 Записаться на курс
😁21
🔍 50 фраз, из-за которых ваше резюме C#-разработчика летит в корзину

На первый взгляд может показаться, что фраза «пишу чистый код на C#» звучит убедительно и профессионально — но на практике рекрутеры и ATS-системы давно привыкли к таким штампам и игнорируют их как пустые слова.

Помните: каждая строчка в резюме должна отвечать на вопрос «и что?». Если после вашей фразы можно задать этот вопрос — значит, она недостаточно конкретна.

➡️ В статье про все клише, которые стоит убрать из резюме

🐸 Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱4👍3
👨‍💻 Версии версионирования

💬 Какую систему нумерации версий предпочитаете и встречали ли экзотические варианты? Делитесь опытом👇

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

#схема
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍132🔥2🥱1
🧐 Хочешь в Data Science, но не знаешь, с чего начать?

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

Всего пару минут — и ты поймёшь, куда двигаться дальше.


👉 Пройти тест
😁2🤔1
🖥 Как убить производительность базы данных

Когда вы пишете SELECT * FROM users WHERE email = '[email protected]' без индекса на поле email, база данных выполняет Full Table Scan — последовательно проверяет каждую строку таблицы.

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

Производительность деградирует нелинейно. С ростом данных время выполнения запроса растёт экспоненциально. Запрос, который работал за 10мс на тестовой базе, в продакшене может выполняться минутами.

Как решить проблему

• Добавить индекс

Самое очевидное решение — создать индекс на нужное поле:
CREATE INDEX idx_users_email ON users(email);


• Составные индексы

Если фильтруете по нескольким полям, используйте составной индекс. Порядок полей важен — самое селективное поле должно быть первым:
CREATE INDEX idx_users_status_created ON users(status, created_at);


• Функциональные индексы

Для запросов с функциями создавайте индексы на выражения:
CREATE INDEX idx_users_email_lower ON users(LOWER(email));


• Партиционирование

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

• Денормализация и кэширование

Иногда проще продублировать данные или закэшировать результаты частых запросов в Redis/Memcached, чем постоянно гонять тяжёлые запросы по базе.

Индексы — не бесплатны. Они занимают место на диске и замедляют INSERT/UPDATE/DELETE операции. Не нужно индексировать всё подряд — создавайте индексы осознанно.

Это уже не «Hello World» писать. Для таких решений нужно знать не только язык. Подтянуть архитектуру можно на нашем интенсиве. До конца октября со скидкой!

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

#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
👍106🥱1
🎓 Как вайб-кодинг меняет рынок IT-образования

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

➡️ Узнать как ИИ меняет обучение

🐸 Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🎲 Мы не только учим, но и играем!

На экспресс-курсе «Математика для Data Science» — викторина с призом TG-Premium 🎁
Проверь знания, прокачай математику и забери приз.

‼️ Оплатишь до 19 октября — получишь базовый курс в подарок.

👉 Записаться на курс
1
⚡️ Microsoft выпустили .NET 10 rc2

Microsoft опубликовала второй и финальный релиз-кандидат .NET 10. Это значит, что платформа практически готова к официальному выходу, а вы уже сейчас можете протестить её.

Что обновили

— .NET MAUI: разрешения для микрофона, SafeAreaEdges, улучшенная генерация из XAML, Android API 36.1, биндинги Xcode 26.

—Entity Framework Core: фиксы для JSON, миграции без единой транзакции, ExecutionStrategy для retry-логики, предупреждения анализатора при конкатенации строк в raw SQL.

—Остальные компоненты получили только багфиксы.

➡️ Установить .NET rc2

#async_news
Please open Telegram to view this post
VIEW IN TELEGRAM
👍133
2025/10/17 05:51:46
Back to Top
HTML Embed Code: