Привет, Хабр! Сегодня для .NET-разработчиков у нас традиционный пост по следам DotNext 2018 Moscow: делимся десятью лучшими докладами конференции (по мнению её посетителей). Под катом — их видеозаписи, а также короткие описания и ссылки на презентации.
Доклады идут по возрастанию рейтинга, и самые понравившиеся зрителям ближе к концу. Но разброс рейтинга внутри десятки небольшой, так что придирчиво сравнивать места не стоит — лучше посмотреть всё по интересующим темам! А темы тут разные — затрагиваются и архитектура, и производительность, и «как оно всё на самом деле работает внутри».
So you want to create your own .NET runtime?
Спикер: Chris Bacon
Место: 10
Первый материал из нашей подборки хорошо подходит для «разминки».
Это «hardcore for fun»-доклад про написание рантайма, в котором Крис Бейкон из Google рассказывает простыми словами о сложных вещах, к примеру, об оптимизациях внутри .NET Core. Рассказ будет интересен как минимум разбором внутренностей CLR, приёмами по отладке и секретами того, как нужно работать с различными компиляторами. Как говорит сам Крис: «Это может быть довольно бесполезным занятием и знанием, но зато отлично помогает снять завесу магии с того, чем пользуешься каждый день».
Windows 10 internals for .NET developers
Спикер: Pavel Yosifovich
Место: 9
Презентация доклада
Соавтор книги Windows Internals Павел Йосифович с головой ныряет во внутреннее устройство Windows и в простой и доступной форме рассказывает, как .NET-разработчики могут использовать компоненты системы себе во благо.
Он по полочкам раскладывает API Windows, объясняя, как изменилась система на фоне всеобщего веба, облаков и виртуализации, как изменения связаны с современным программированием и как можно выжать максимальную производительность, проведя немного времени под капотом Windows.
От монолита к микросервисам: история и практика
Спикер: Константин Густов
Место: 8
Презентация доклада
Слушать о чужой боли всегда интересно. Константин рассказывает историю одного долгого рефакторинга, которая будет полезна всем, кто либо столкнулся, либо скоро столкнётся с переходом к микросервисной архитектуре.
Очень информативный доклад с разъяснением мотивации и причин каждого принятого решения. Всё разложено по полочкам, и слушатели могут легко использовать часть лайфхаков и в своих проектах, или приводить историю Константина руководству в качестве успешного примера.
Слушатели отдельно отмечали, что в докладе много особенностей перевода старых legacy-систем на новую реальность. И что узнавать о возможных сложностях, плюсах и минусах перехода на примере такого большого проекта полезно в том числе и для самоуспокоения: всё ли мы делаем правильно?
Boosting memory management in interoperability scenarios
Спикер: Raffaele Rialdi
Место: 7
Презентация доклада
Коротко: это доклад с низкоуровневым бэкграундом о том, как правильно управлять памятью, чтобы увеличить производительность проекта. Но всё не так просто: исторически возможности .NET по работе с неуправляемой памятью были весьма ограничены и сопровождались бессмысленнымии копированиями в управляемые объекты, причем их использование было небезопасным. Но недавно появились новые API и функции, которые существенно меняют дело.
Если вы хотели узнать, что сейчас происходит с .NET, куда он движется, что нового появилось и что с этим делать — этот доклад для вас. Слушатели отмечают множество новых инструментов, о которых раньше не говорили публично, к примеру, о разумных сценариях использования Span и Pipeline, причем Рафаэль не только показывает их, но и подробно демонстрирует подходы, как новые инструменты грамотно применять на практике.
Building responsive and scalable applications
Спикер: Jeffrey Richter
Место: 6
Презентация доклада
Доклад про эффективное использование облачного железа у некоторых зрителей вызвал сожаления «хотелось чего-то похардкорнее, это всё уже знаю» — но всё равно попал в топ. Таков уж масштаб личности Джеффри Рихтера: он как никто другой умеет оптимизировать не только софт, но и мозги .NET-разработчиков, настраивая их на правильный лад.
Так что, если и вам уже известна озвученная информация, доклад всё равно есть смысл посмотреть: и ради подачи Рихтера, и чтобы лишний раз себе напомнить себе о производительности и потреблении ресурсов. Ведь даже формально зная о чём-то, можно забывать об этом в погоне за новыми технологиями.
Yield и async-await: как оно все устроено внутри и как этим воспользоваться
Спикер: Иван Дашкевич
Место: 5
Презентация доклада
Иван рассказывает про то, как ИТ-соревнование ICFP заставило его очень нестандартно подойти к использованию yield и разобрать внутреннее устройство async-await, и понять, можно ли этим вообще пользоваться на примере конкретной задачи.
Кроме разбора контеста, Иван предлагает несколько идей, как перенести решение из соревнования на реальные проекты, разработал «кооперативную многозадачность на async/await» вместо yield return, который позволяет создать высокоуровневый workflow и контроллер заданий из очереди на базе асинхронного метода.
Domain-driven design: рецепт для прагматика
Спикер: Алексей Мерсон
Место: 4
Презентация доклада
Лёгкое и доступное введение в DDD для тех, кто хочет понять, зачем это нужно, почему об этом все говорят, и как к этому подступиться. Одновременно важный и смешной доклад, который заставляет углубиться в тему или упорядочить в голове уже имеющиеся знания. Кто не знает — узнает. Кто знает — узнает лучше.
Быстрорастворимое проектирование
Спикер: Максим Аршинов
Место: 3
Презентация доклада
60 минут концентрированного разбора того, как нужно проектировать приложения с массой примеров. Слушатели отмечают глубокое погружение, четкое и простое изложение, очень сильные и детализированные примеры в каждой главе рассказа.
А помимо этого, у доклада Макса высокая применимость: практически всё из рассказа можно сразу применять на практике и получать годные результаты. Отлично идёт в паре с докладом «От монолита к микросервисам» и даёт представление о том, какими критериями определяется хороший и плохой код, и как их измерять.
Оптимизации внутри .NET Core
Спикер: Егор Богатов
Место: 2
Презентация доклада
Ультраполезный и современный, по мнению слушателей, доклад про тонкости оптимизации и генерацию SIMD из высокоуровневого кода. Хоть и простые, но совсем не тривиальные примеры из личного опыта Егора, который напрямую работает с Mono .NET Core и видит всё изнутри Microsoft. Без занудства, воды и переосмысления старых идей на новый лад.
Доклад состоит из множества любопытных микрооптимизаций, примененных в .NET Core как разработчиками, так и сообществом. Но особое внимание Егор уделяет новоиспеченному API к SIMD-инструкциям процессора, таким, как SSE и AVX. Этот API позволит вам почувствовать себя умнее, чем JIT, и вручную векторизовать свой код, не прибегая к помощи низкоуровневых языков.
Не бойтесь хардкора и ассемблера, Егора стоит слушать, смотреть и запоминать!
Кейноут: Ctrl-Alt-Del: learning to love legacy code
Спикер: Dylan Beattie
Место: 1
Презентация доклада
Мир работает на устаревшем коде. Можно сколько угодно рассуждать про преимущества F# и serverless, но в реальности часто придётся иметь дело с совсем другими вещами. И что нам делать с «кодом, который слишком страшный, чтобы его трогать, и слишком прибыльный, чтобы его просто удалить»? Контролировать (Ctrl), изменять (Alt) и удалять (Del). Это выступление завершало конференцию, так что в нём нет «.NET-хардкора» — но при этом зрителям оно понравилось даже больше хардкорных.
Постоянные зрители DotNext отлично знают Дилана Битти и ценят его умение объединить серьёзное размышление с увлекательным шоу. А тут у него ещё и очень подходящий опыт. Сначала он много лет проработал в одной компании, наблюдая, как код менялся со временем и как с ним сталкивались новички — а затем перешёл в другую компанию и сам оказался таким «новичком», которому нужно было разобраться в прорве чужого кода. Как эффективнее вкатываться в работу с кодовой базой, если «просто прочитать её» жизни не хватит?
Если эти доклады понравились, то вам понравится и на следующем DotNext (15-16 мая, Петербург): формат конференции будет тем же. А когда присутствуешь на конференции лично, можно не только услышать доклады, но и расспросить спикеров в дискуссионной зоне, поучаствовать в специальных дискуссиях, пообщаться с другими участниками.
Сейчас о DotNext 2019 Piter уже известны несколько спикеров (например, Джон Галлоуэй из .NET Foundation), а полная программа появится позже — но со временем билеты дорожают, так что выгоднее приобретать их как можно раньше. Вся актуальная информация публикуется на сайте конференции.