.NET: The Good Parts — от CLR до сообщества

в 13:57, , рубрики: .net, C#, Блог компании JUG.ru Group, высокая производительность, Программирование

Хотите повстречаться с Джоном Гэллоуэем (исполнительным директором .NET Foundation), Павлом Йосифовичем (автором легендарной «Windows Internals» и новых курсов на Pluralsight)? Или может быть, с Алексом Тиссеном — 12-кратным MVP в категории Visual Studio? Или пройти тренинг у Конрада Кокоса (автора «Pro .NET Memory Management»)? Теперь у вас есть такая возможность.

15-16 мая в Санкт-Петербурге состоится крупнейшая конференция для .NET-разработчиков — DotNext 2019 Piter. Под катом будет структурный обзор программы докладов и пара слов о тренинге.

Однажды Дуглас Крокфорд написал книгу «JavaScript: The Good Parts» и этим положил начало множеству трудов, посвященных тому, чтобы подсветить самое лучшее во множестве технологий. В этом хабрапосте мы поговорим о четырёх лучших разделах знания об экосистеме .NET, актуальных в 2019 году.

.NET: The Good Parts — от CLR до сообщества - 1

Как вы знаете, работа по подбору докладов начинается более чем за полгода. Вот наша гусеница:

.NET: The Good Parts — от CLR до сообщества - 2

По мере продвижения вдоль этого пути клеточки на странице программы конференции понемногу заполняются. Сегодня уже 26 апреля, осталось всего 19 дней до начала конференции, и это — финишная прямая. Докладчики полируют доклады до блеска, организаторы готовятся к конференции, участники приобретают билеты.

.NET: The Good Parts — от CLR до сообщества - 3 Интересный факт: члены Программного комитета успевают не только работать на основной работе и делать конфeренцию — они изобретают собственные доклады и пишут книги. Андрей Акиньшин DreamWalker из JetBrains, человек, которого не нужно представлять, параллельно с подготовкой конференции успел дописать книгу «Pro .NET Benchmarking», с чем мы его горячо поздравляем!

Основные темы

Структура конференции не статична. Она меняется из года в год, отражая самые важные тенденции в мире .NET-разработки. Можно научиться самым полезным на данный момент вещам и пообщаться с самыми востребованными спикерами.

Весной 2019 года список основных тем получается такой:

  • Trends — крутые обзорные доклады о состоянии .NET-разработки в целом;
  • Architecture — всё о хорошей архитектуре;
  • Best practices — хорошие практики в различных областях разработки;
  • Internals — внутренности различных технологий, от компиляторов до библиотек.

Давайте разберёмся с каждой категорией по отдельности.

В этом хабропосте рассказано не про все доклады! Скорее, это некий быстрый обзор. Вы сами можете посмотреть на полную программу DotNext 2019 Piter. Всячески советую это сделать, ведь сколько ни говори «халва» — во рту сладко не станет!

.NET: The Good Parts — от CLR до сообщества - 4

Всё, что под капотом — это тот самый хардкор, только ради которого многие вообще и приходят на конференции.

.NET: The Good Parts — от CLR до сообщества - 5 Павел Йосифович известен как автор «Windows Internals», «WPF Cookbook», «Mastering Windows C++ App Development» и шести курсов на Pluralsight. Если вам вдруг интересен ещё и C++, про него он тоже рассказывает. Кроме того, он является известным разработчиком, тренером и спикером, но в этой роли мы его практически не видели — он почти никогда не бывает в России. Большая гордость и удача, что Павел второй раз приезжает на DotNext. В предыдущий раз ему очень понравилось. В своём новом докладе «Building your own profiling and diagnosis tools with Event Tracing for Windows», он расскажет о том, как поставить себе на службу ETW, и расскажет множество практических подробностей.

.NET: The Good Parts — от CLR до сообщества - 6 Christophe Nasarre — это удивительный человек, который кроме 25+ лет работы с технологиями Microsoft успел побывать техническим ревьюером в MSPress, Addison-Wesley и других издательствах ещё с 1996 года, работая над книгами вроде «CLR via C#» и последними редакциями «Windows Internals». Вместе с Kevin Gosse они сделают мощный доклад «Debugging asynchronous scenarios in .NET». Нет ничего проще, чем отладить асинхронный код — когда про это рассказывают два профессионала WinDbg и других инструментов.

.NET: The Good Parts — от CLR до сообщества - 7 Андрей Карпов работает в компании JetBrains, где занимается поддержкой языка C# в продуктах ReSharper и Rider. До JetBrains занимался низкоуровневым программированием, исследованием ядра Windows и так далее. Язык C# продолжает интенсивно развиваться. Готовящаяся к выходу новая версия добавляет поддержку асинхронных итераторов. Что это такое? Для чего это нужно? Как это работает? Научиться пользоваться async streams уже сейчас можно, посетив доклад «Yield at me, 'cause I'm awaiting».

.NET: The Good Parts — от CLR до сообщества - 8 Никита Цуканов имеет поразительный опыт работы. Он начинал в Навителе с разработки под WinCE/Mobile на C/C++, делал VPN-сервис с кросс-платформенным клиентом на GTK#, торговую площадки Promarket, мейнтейнил Mono для Nokia N900, делал инструментарий для чип-тюнинга автомобилей, мобильный мессенджер с End2End-шифрованием, и ещё кучу вещей. Его доклад «Кросс-платформенное объектно-ориентированное взаимодействие C# и C++» представит решение для двухстороннего прозрачного взаимодействия между C++ и C# на уровне интерфейсов, которые могут реализовывать как классы C#, так и классы C++. Иначе говоря, можно забыть ужасы C++/CLI и рассмотреть альтернативу.

.NET: The Good Parts — от CLR до сообщества - 9 Евгений Пешков epeshk занимается общей инфраструктурой в компании Контур, разрабатывает облачную платформу хостинга приложений. Интересуется внутренним устройством .NET и Windows и использует эти знания на практике. В новом докладе «Многопоточность в .NET: когда производительности не хватает» мы посмотрим на ошибки и проблемы использования многопоточности в .NET. Рассмотрим несколько примеров, когда использование средств из стандартной библиотеки .NET привело к просадкам производительности, и поговорим о решениях, заточенных под конкретные задачи и лишённых этих недостатков.

.NET: The Good Parts — от CLR до сообщества - 10

Многие скептически относятся к докладам о далёком будущем, когда космические корабли бороздят просторы .NET. К счастью, у нас всё гораздо интересней, ведь доклады ведут хорошо известные и уважаемые в сообществе люди, которых стоит послушать. Зачастую в формах обратной связи люди просят, чтобы приехал кто-то конкретный — и программный комитет старается реализовать эти желания.

Например, Dino Esposito проведёт сразу два доклада — «ASP.NET Core 3.0: State of the art» и «ASP.NET Blazor programming 101». Во-первых, это просто очень популярные темы. Во-вторых, Дино — это человек, написавший более 20 книг, под 1000 статей, сделал 500+ докладов на конференциях и так далее и тому подобное — один из наиболее востребованных англоязычных .NET-спикеров. И в-третьих, Дино прочно вошёл в историю DotNext, делая доклад каждый год, начиная с 2014 года, включая открывающий кейноут первого московского DotNext. Очевидно, что рассказывать о ASP.NET Core 3.0 должен именно он.

Дмитрий Нестерук mezastel, которого в питерском .NET-сообществе многие уже знают, расскажет о новинках в C# 8. Кстати, в далёком 2014 году Дмитрий сделал самый первый доклад самого первого питерского DotNext — и вот он снова с нами! А ещё Nico Vermeir расскажет о будущем десктопной разработки, а Wesley Cabus напротив — о chaos testing. В общем, это те темы, которые сейчас активно обсуждают в сообществе, и именно поэтому они попали в программу.

Отдельно хочется сказать о Джоне Гэллоуэе. Джон — исполнительный директор .NET Foundation, технический евангелист в Microsoft, соавтор книги «Professional ASP.NET MVC» и всем известных туториалов вроде MVC Music Store, известный докладчик и подкастер. Многие уже знают о .NET Foundation, но не понимают точно, что оно представляет из себя на самом деле и зачем вообще об этом знать. Джон раскроет все эти вопросы и расскажет, как можно в этом поучаствовать.

.NET: The Good Parts — от CLR до сообщества - 11

Архитектура — это о том, как организовать ваши системы, какие выбрать элементы и как они должны себя вести и взаимодействовать. Как из маленьких подсистем собирать крупные. Как выбрать правильный архитектурный стиль, который будет направлять разработку, как его описать и донести и так далее.

Архитектурные доклады проходят особо жёсткую проверку программного комитета. Если в таком докладе идёт речь практиках, выработанных в каком-то проекте — это должен быть действительно успешный технологичный проект. Докладчик должен не просто знать тему, но ещё и доходчиво объяснять даже самые сложные абстрактные вещи за минимальное время (час на доклад). В общем, это должна быть информация, которой можно доверять, а не что-то взятое с потолка. Ключевое отличие от, например, категории «Тренды» в том, что архитектурные эффекты скажутся не сегодня и не завтра, и именно чтобы посмотреть на проверенные временем принципы, мы и посещаем такие доклады.

Здесь нужно упомянуть, например, доклад Вагифа Абилова VagifAbilov. Вагиф работает в норвежской компании Miles и его опыт программирования насчитывает около трёх десятилетий. Сейчас он занимается разработками систем на F# и C#, часто выступает на конференциях, принимает участие в опенсорс-проектах и поддерживает Simple.OData.Client. Его доклад «Жизнь после бизнес-объектов (исповедь ветерана ООП)» должен заинтересовать всех, кто увлекается доменным моделированием и F#. Несколько лет назад, устав от мутирующих структур данных, синхронизации потоков и громоздкости бизнес-объектов, команда Вагифа перешла на использование F#. В этом докладе пойдет речь и об ожиданиях от такого перехода, и о новом подходе к доменному моделированию, который они освоили. Отдельно послушаем про бизнес-объекты — точнее, про их отсутствие — и о том, чем их можно успешно заменить. Поскольку такие темы часто вызывают споры, мы решили начать дискуссию прямо во время доклада Вагифа, сделав его интерактивным и пригласив другого популярного спикера — Максима Аршинова marshinov.

Если ваш проект — не дремучее легаси, то, скорее всего, он имеет в основе какую-нибудь модную архитектурную концепцию. CQRS, например. Или DDD. А может, Actor Model? Впрочем, без разницы — все они так или иначе связаны с миром функционального программирования. Про это всё нам расскажет Роман Неволин nevoroman в докладе с говорящим названием «Почему ваша архитектура функциональная и как с этим жить».

Чтобы вы не подумали, что это какой-то слёт функциональщиков и F#-истов, нужно упомянуть доклады, развивающие обсуждение классической дилеммы микросервисов и монолитов. Sean Farmar из Particular Software (разработчики NServiceBus) в докладе «Successfully decomposing your monolith» покажет не только, как распилить монолит, но и как использовать принципы DDD и SOA при моделировании простого вертикального среза. Тему DDD продолжит Константин Густов в докладе «DDD в микросервисах: сложность против сложности».

.NET: The Good Parts — от CLR до сообщества - 12

Лучшие практики — это способ сформулировать успешный практический опыт. Если существует оптимальный способ достижения цели, то возможно, его можно применить и в других местах. Термин «best practice» придумал в 1914 году Фредерик Уинслоу Тейлор — американский инженер, основоположник научной организации труда и менеджмента. «Среди всего многообразия методов и инструментов, используемых в каждый момент каждого процесса, всегда есть один метод и инструмент, который работает быстрее и лучше остальных». С тех пор прошло более сотни лет, человечество совершило ещё одно величайшее открытие — конференции по программированию, лучший способ обнаружения лучших практик!

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

Кого бы вам хотелось видеть докладчиком в этой категории? Начнём с Alex Thissen. Он занимается программированием с конца 90-х годов, поработал ведущим разработчиком в разных компаниях (от маленьких стартапов до огромных энтерпрайзов) и теперь учит прикладных разработчиков использовать технологии Microsoft, архитекторов — дизайнить и строить современные распределённые приложения, а в свободное время разрабатывает игры. Его доклад «I don't feel so well… Integrating health checks in your .NET Core solutions» как и положено, попадает в категорию «смузи» и рассказывает о вполне конкретной вещи: health endpoints в ASP.NET Core 2.2. Как их встроить, какими они вообще бывают, что там происходит с внешними зависимостями вроде баз данных и HTTP-эндпоинтов. Ну и наконец, как это всё использовать на кластере контейнеризованного софта.

А вот у Дмитрия Иванова из JetBrains доклад уже потяжелей. «Async programming in .NET: Best practices» — это рассказ о наболевшем. Дедлоки и рейсы с появлением async/await никуда не пропали — они закопались глубже и их стало труднее диагностировать. Про правильные и неправильные паттерны написания асинхронного кода расскажет вам не кто-нибудь, а техлид JetBrains Rider и разработчик ядра ReSharper (структур данных, кэшей, многопоточности).

Если коротко упомянуть остальных спикеров, то сюда точно попадает архитектор компании Info Support Edwin van Wijk с «How to get a grip on your microservices system using a service mesh» — рассказом о том, как реализовать меш для своих микросервисов и построить основные вещи вроде роутинга, circuit-breaker-ов и так далее. Про то, как упростить жизнь, спрятавшись за API Gateway, но не писать велосипедов, нам поведает Roberto Freato в докладе «API gateway made easy with Ocelot and containers», а Matthias Koch, разработчик современной системы сборки NUKE, именно о нём и будет рассказывать.

.NET: The Good Parts — от CLR до сообщества - 13

17 мая, сразу после основной программы конференции, пройдёт тренинг Konrad Kokosa. Он продлится с 10 до 18 часов дня.

Это тренинг, от которого может получить пользу почти каждый .NET-разработчик. Он начинается с базовых понятий о рантайме .NET и дальше проходится по куче аспектов управления памятью. И опытный разработчик, и новичок смогут получить от тренинга многое. Даже очень продвинутому разработчику есть чему там поучиться!

.NET: The Good Parts — от CLR до сообщества - 14Конрад — автор книги «Pro .NET Memory Management». Более дюжины лет он продолжает работать над производительностью и архитектурными проблемами в .NET-мире, включая ускорение работы веб-приложений. Перформанс и диагностика .NET-приложений — вот специализация его тренингов. Конрад получил MVP в категории Visual Studio and Development Tools и является сооснователем https://dotnetos.org.

Цель в том, чтобы в результате тренинга участники получили куда более глубокое представление об автоматическом управлении памятью в рантайме .NET (и во Framework, и в Core). Это позволит писать код, учитывающий работу с памятью, и диагностировать различные связанные с этим проблемы. Более того, здесь мы познакомимся не только с непосредственным применением вещей, но и с тем, как и почему они были реализованы именно таким образом, а не каким-то другим. Например, коснёмся деталей реализации сборщика мусора. Это позволит легко решать широкий спектр других вопросов, которые выходят за рамки тем тренинга.

Следующие шаги

Напоминаю, что конференция DotNext 2019 Piter пройдёт 15-16 мая в Санкт-Петербурге. Ознакомиться с программой можно на официальном сайте.

Там же можно приобрести билеты.

Заметьте, что билеты бывают разных типов — например, предусмотрены скидки для студентов, аспирантов и преподавателей. Есть специальные онлайн-билеты для тех, кто почему-то не сможет приехать вживую (очевидно, такие участники платной онлайн-трансляции тоже получат все видеозаписи с конференции).

Важно, что с 1-ого мая будет повышение цен на билеты. Начиная с Early Bird в декабре 2018 года, они понемногу росли. До начала конференции осталось меньше месяца, и первого мая цены станут окончательными. Если вы твёрдо решили пойти, то не имеет смысла тянуть, брать нужно сейчас.

Удачных наступающих майских праздников, и встретимся на DotNext 2019 Piter!

Автор: olegchir

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js