Здравствуй! В мае прошла наша большая .NET-конференция, где нашлось место и хардкору, и трендам, и архитектуре, и просто хорошим практикам.
А теперь делимся лучшими докладами (по оценкам зрителей конференции), из которых вы:
- узнаете, почему (скорее всего) пишете функциональный код, даже не подозревая об этом;
- погрузитесь в асинхронное программирование;
- услышите в доступной форме про уязвимости десериализаторов;
- получите комплексную информацию о кардинальных изменениях, которые принёс C# 8 с non-nullable reference types;
- захотите купить Raspberry Pi;
- узнаете о «настоящей» стоимости кода.
Есть нюанс: в этот раз возникла особая ситуация с докладом-лидером. Во-первых, он посвящён не .NET, а во-вторых, его видеозаписью мы поделиться не можем (по условиям спикера). Чтобы компенсировать это, мы добавили в пост 11-е место — так что под катом вы всё равно сможете увидеть видеозаписи 10 отличных докладов про .NET-разработку. Поехали!
Все доклады идут по возрастанию рейтинга, но различия между оценками крайне минимальны — даже на десятом месте доклад получил больше 4,1 балла, что случается не каждую конференцию. К тому же порядок отчасти зависит от того, по какой именно формуле считать (учитывать ли количество отзывов). В общем, главное, что плохих выступлений здесь нет — можно смело смотреть всё.
Debugging asynchronous scenarios in .NET
Спикер: Kevin Gosse, Christophe Nasarre
Место: 11
«Даже если бы не было ни одного доклада кроме этого, конфа бы уже прошла не зря», — пишут слушатели этого парного выступления про отладку асинхронного кода.
Два фанатика (в хорошем смысле) технологий на практических примерах рассказывают о том, как в async/await что угодно может пойти не так, даже если вы думаете, что знаете об этом всё — и вместе разбирают основные шаблоны, которые могут работать неверно.
I don't feel so well… Integrating health checks in your .NET Core solutions
Спикер: Alex Thissen
Место: 10
Презентация доклада
«Смузи»-доклад о health endpoints в ASP.NET Core 2.2: как их встроить, какими они бывают, что происходит с внешними зависимостями, вроде баз данных и HTTP-endpoint, а также том, как всё это использовать на кластере контейнизированного софта.
Доклад Тисена отличается приближенностью примеров к продакшену, а его решения-примеры заходят «глубже» примеров MSDN и могут легко применяться в реальных проектах.
Deserialization vulns: past, present, and future
Спикер: Михаил Щербаков
Место: 9
Cпециалисты по безопасности – всегда товар штучный. А таких, чтобы и глубоко, и актуально, и зал не уснул – так и вовсе днём с огнём. Михаил раскладывает по полочкам тему уязвимостей в десериализаторах и делится best practices, как писать десериализацию безопасно.
Из доклада вы узнаете о самых главных видах атак на процесс десериализации, уязвимых .NET сериализаторах, том, какие инструменты можно использовать для поиска уязвимостей и какие payload’ы известны для .NET-приложений.
Работа инструментов, кстати, проиллюстрирована на примерах уязвимостей, найденных Михаилом в продуктах Microsoft за время его участия в bug bounty.
Async programming in .NET: Best practices
Спикер: Дмитрий Иванов
Место: 8
Доклад Дмитрия — о наболевшем: появление async/await в C# привело к пересмотру того, как программисты начали писать простой и корректный параллельный код — асинхронного программирование не только не исправило множество проблем с потоками, но и привнесли многие. И дедлоки и рейсы никуда не пропали после появления async, но определять их стало гораздо сложнее.
Дмитрий рассказывает о правильных и неправильных паттернах написания асинхронного кода и тонкостях работы с async/await, о которых вы могли и не знать.
Многопоточность в .NET: когда производительности не хватает
Спикер: Евгений Пешков
Место: 7
Презентация доклада
В первый раз Евгений выступал на DotNext в 2017 году и сразу попал на первые строчки рейтингов: пусть ведутся споры о полезности изучения кишочков, но для инфраструктурной команды Контура, где работает Евгений, хардкор — это жизнь, а жизнь — это хардкор.
В докладе он рассказывает об особенностях работы с многопоточностью в .NET, изящно объединив теорию с практическими кейсами, которые решала команда Жени. Вы услышите об ошибках и проблемах использования многопоточности, и увидите примеры того, когда стандартные средства библиотеки .NET приводят к просадкам производительности (и пути решения этого).
How to get a grip on your microservices system using a service mesh
Спикер: Edwin van Wijk
Место: 6
Презентация доклада
Серьезный доклад от лидера рейтингов DotNext о том, как правильно строить инфраструктуру для микросервисов. В его рассказе — реализация меш для микросервисов, роутинг, circuit-breaker-ы и другие немаловажные аспекты.
Эдвин познакомит с тем, как реализовать интеллектуальную маршрутизацию, отказоустойчивость, провести A/B-тестирование и мониторинг микросервисной инфраструктуры, а также обезопасить её. Для этого он использует Istio — open source решение, с которым вы также познакомитесь с помощью доклада.
Кейноут: The cost of code
Спикер: Dylan Beattie
Место: 5
Закрывал программу кейноут от Дилана Битти, который, как фокусник доставал из шляпы кусочки мозаики в виде мемов, кода, новостей, фактов. А потом, когда меньше всего ожидаешь — оп! Магия! Пазл складывается в Большую Философскую Мысль.
В этом докладе Дилан Битти по-новому смотрит на стоимость кода, который программисты ежедневно отправляют в продакшн. Какова реальная стоимость кодовой базы для организаций, общества, окружающей среды? Как мы можем помочь нашим командам и пользователям понять эти затраты? И что мы можем сделать для их сокращения? Хороший «разгрузочный» рассказ, который поможет передохнуть между хардкорными докладами.
Raspberry PI and .NET Core on Linux: the fast track to IoT
Спикер: Raffaele Rialdi
Место: 4
Презентация доклада
Обычно после таких докладов продажи «Малинки» начинают расти. Риалди очень доступно, на живых примерах рассказывает, как новые возможности .NET Core для Linux и ARM помогают быстро и легко создать IoT-приложение.
Фокус доклада — на вопросах, связанных с обработкой данных в реальном времени, проектировании архитектуры и обработки процессов, а в качестве реального примера зрители увидят реализацию встроенного кодека H264 для потоковой передачи видео из ASP.NET Core-приложения в браузеры.
Что нового в C# 8
Спикер: Дмитрий Нестерук
Место: 3
Комплексный рассказ о всех кардинальных и интересных особенностях нового, и довольно эпохального релиза C#. Одна из основных особенностей C# 8 — появление non-nullable reference types (недействительных типов ссылок), которые значительно меняют парадигму C#. Рассказ Дмитрия, в том числе, о том, как их можно и почему нужно использовать в своих разработках.
Многие смогут использовать доклад в качестве «входного билета» в новый релиз, так как каждое изменение объясняется на живых примерах и описанием всевозможных граблей.
Почему ваша архитектура функциональная и как с этим жить
Спикер: Роман Неволин
Место: 2
Лёгкий и цельный доклад Романа с традиционными шутками и троллингом со стороны докладчика о расцвете функциональной парадигмы в C# и тех преимуществах (и опять же граблях), о которых должен знать каждый «соучастник».
Кроме того, Роман рассказывает, почему даже если на вашей футболке написано «OOP only and forever», вы, вероятно, ежедневно пишете функциональный код, хотя даже не знаете об этом — и как это понимание поможет вам улучшить код.
Правильно написанные животные
Спикер: Сергей Абдульманов
Место: 1
Рейтинг: 4,67
А самым высоко оцененным слушателями докладом стал рассказ milfgard о биологических принципах кибернетики — том, как птицы действуют по простейшим скриптам, змеи «собрали» набор высокоточных сенсоров, и «взломе» охотничьих собак.
И хотя этот доклад останется эксклюзивом для тех, кто посетил конференцию лично, частично узнать его содержимое можно: Сергей ранее опубликовал на Хабре два поста, во многом пересекающиеся с его выступлением. Это разбор технологического строения змеи и рассказ о жизни сайгаков. Приятного чтения!
Что дальше
Если доклады из поста вам интересны, стоит обратить внимание ещё на две вещи. Во-первых, на YouTube мы выложили полный плейлист: доклад Абдульманова вы не найдёте и в нём, но там есть целых 27 других.
А во-вторых, уже анонсирован следующий DotNext: он пройдёт в Москве 6-7 ноября. Сейчас на его сайте уже доступны описания восьми докладов. Как видите по этому посту, иногда некоторые видеозаписи так и не попадают в интернет, оставаясь эксклюзивом. Так что, если в программе видите что-то интересное вам, самый надёжный метод — посетить это лично!
Автор: phillennium