Всем привет! Недавно мы провели два офлайн-митапа по .NET. Разработчики выступили с семью докладами — от рассказа о реальной стоимости операций под капотом платформы .NET до разбора межсервисных интеграций. Митапы прошли в Томске и Нижнем Новгороде — городах, где работают Центры разработки Тинькофф.
В перерывах между выступлениями и после участники митапов общались в неформальной обстановке на кофе-брейках, обменивались опытом и рабочими кейсами. Всех, кому интересна .NET-разработка, приглашаем под кат: мы подробнее расскажем о докладах, поделимся видео с выступлениями и полезными ссылками.
Реальная стоимость операций под капотом платформы .NET
Максим Хоптяр подготовил доклад про компиляцию в .NET. Он разобрал, какие оптимизации делаются автоматически для ускорения, во что в итоге превращается та или иная строчка кода и что происходит на уровне процессора.
В докладе три части. Первая посвящена компиляции в рамках .NET и тому, что происходит под капотом с IL-кодом. Вторая — оптимизациям, которые выполняются во время компиляции. Третья — стоимости операций в тактах.
Lock-free коллекции в .NET 6
Кажется, что в многопоточном программировании все просто — достаточно заворачивать все в lock. На деле же lock похож на кувалду: простой, надежный, но очень тяжелый. И если воспользоваться им неправильно, будет больно.
Чтобы уберечь от этого коллег, Дмитрий Фирстов рассказал о внутреннем устройстве concurrent-коллекций в .NET 6. Он разобрал хитрости, которые применяются для обеспечения высокой производительности этих коллекций, и рассказал, как использовать эти хитрости в коде.
.NET-наносервисы на микроконтроллерах
Александр Бусыгин — разработчик в отделе платформенных сервисов. В докладе он рассказал про nano framework и поморгал диодами (ведь это первое, что делает человек, в руки которого попал микроконтроллер). А также показал, как построить распределенную систему на микроконтроллерах, и посчитал число Пи до 10 000 знаков после запятой.
Почему вам стоит начать вести документацию прямо сейчас
Техническая документация — та часть деятельности команды разработки, которой пренебрегают чаще всего. И она же первой попадает под нож, когда нужно снижать стоимость или увеличивать скорость разработки. При этом грамотная культура ведения документации помогает не только сэкономить время, но и сильно повысить качество продукта.
Николай Михайлычев в докладе поделился опытом своей команды по выстраиванию процесса ведения документации. И рассказал, какие проблемы удалось решить благодаря работе в этом направлении.
Микрооптимизации в .NET
По словам Кирилла Бажайкина, его доклад — отправная точка для тех, кто хотел бы узнать о микрооптимизациях в .NET больше. В докладе Кирилла есть примеры, бенчмарки и немного теории. А еще — рассуждения о том, почему не стоит заниматься микрооптимизациями, и рецепты для тех, кто все-таки решил это делать.
Неявное использование контравариантных постобработчиков в MediatR
Никита Сеньков рассказал об использовании абстракции IRequestPostProcessor для выполнения логики, применимой к нескольким типам команд. Из его доклада вы узнаете, откуда взялась такая задача и почему наивное решение не работает из коробки. А еще научитесь чинить это досадное недоразумение путем создания еще одного метода расширения для регистрации компонентов MediatR.
Межсервисные интеграции. Что может пойти не так?
При написании бизнес-приложений каждый разработчик сталкивается с необходимостью обмениваться данными между сервисами и вызывать удаленные процедуры. Такие задачи могут казаться тривиальными до тех пор, пока речь не заходит о надежности.
Как быть до конца уверенным, что данные не потеряются, а удаленные процедуры выполнятся? Команда Руслана Артамонова разрабатывает веб-приложение с большим количеством интеграций. В докладе он поделился накопленным опытом и рассказал, с какими проблемами столкнулись разработчики и как научились их избегать.
Вместо заключения
Мы часто проводим митапы. Например, сейчас проходит серия офлайн-митапов IT’s Tinkoff on the Road в разных городах России. Чтобы ничего не пропустить, подписывайтесь на наш телеграм-канал, где мы публикуем анонсы, видео, подкасты и другую полезную информацию.