Ozon Tech Community .NET Meetup

Backend
C#
Видео
01.04.2026
Поделиться

Вы узнаете: как бороться с primitive obsession на уровне типов, как сервисам переживать нагрузку без каскадных отказов и что на самом деле делает JIT с вашим кодом. Мы подкрепили всё реальными инженерными примерами, без вводных тем и без теории ради теории.

Спикеры и темы докладов

вводная

02:20 - 06:09

Приветственное слово — Антон Воронцов, руководитель группы разработки «Хранение» 4, Ozon

06:19 - 49:32

Строго-типизированные ID — как не путать тёплое с мягким — Дмитрий Орлов, руководитель группы разработки «Хранение» 3, Ozon

Primitive obsession — это такой вид ошибок, когда вместо OrderId вы передадите ItemId, потому что они оба имеют тип long, и вы узнаете об этом слишком поздно. Разберём, как решать эту проблему, используя свои простые решения, source generator-ы или готовые пакеты. Как решать её, если у вас старый проект и рефакторить весь код вы не готовы.

докладд

49:43 - 1:34:45 

Как мы справляемся с нагрузкой: от Rate Limiter к Load Shedding — Александр Зубаков, ведущий разработчик информационных систем, Ozon

Доклад посвящён реализации механизма load shedding в микросервисной архитектуре и его применению для защиты сервисов от перегрузки и каскадных отказов. Рассмотрим, чем load shedding отличается от классического rate limiting и почему ограничение по in-flight запросам и response time позволяет эффективнее управлять нагрузкой. Спикер разберёт архитектуру решения на .NET, особенности работы с HTTP и gRPC, а также практические проблемы реализации — от очередей запросов до async-local контекста. Доклад будет полезен инженерам, которые проектируют или эксплуатируют высоконагруженные сервисы.

саша

1:35:55 - 2:19:33

Зачем нужен escape analysis в JIT? Какие проблемы он решает? — Дмитрий Егоров, независимый эксперт

Не так давно в .NET появилась JIT-оптимизация — escape analysis и последующий stack allocation. Теперь компилятор умеет раскладывать классы на регистры. В ходе доклада разберёмся, как это работает и где это полезно; проведём черту между тем, когда компилятор может спасти нас от аллокации, а когда только мы сами можем помочь себе. Также рассмотрим, какие ограничения есть у текущей реализации escape analysis и посмотрим, как escape analysis «дружит» с inline. А ещё немного посмотрим исходный код runtime, а также asm, который делает компилятор.

дима егоров

Фотографии с мероприятия

Фотографии можно найти по ссылке