Программа DotNext: архитектура, Мигель де Икаса, традиции коренных народов Севера

@

О чём .NET-разработчикам уже скоро расскажут на онлайн-конференции DotNext?

Будут привычные категории докладов:

  • о «кишочках» платформы .NET, причём зачастую от спикеров, которые эти кишочки и делают
  • об архитектуре (от DDD до Clean Architecture)
  • об актуальных трендах (пора как следует разбираться в C# 9.0 и .NET 5)

А что-то в этот раз отличается:

  • помимо докладов, будет сразу несколько воркшопов (они хорошо подходят онлайн-формату)
  • впервые выступят несколько интереснейших спикеров, чья работа важна для всей экосистемы .NET: Мигель де Икаса (создатель Mono, Xamarin и GNOME), Маони Стивенс (мейнтейнер .NET GC), Мадс Торгерсен (lead designer языка C#) и другие
  • в одном из докладов рассмотрят не только паттерны распределённых систем, но и традиции малочисленных народов Севера (окей, это не главное на .NET-конференции, но сложно было промолчать)

Подробная программа с описаниями всех докладов — под катом.

Оглавление

  • Вне категории
  • Воркшопы
  • Архитектура
  • Internals («кишочки»)
  • Тренды
  • Best practices
  • Заключение

Вне категории

Мигель де Икаса создал Mono и Xamarin и стал значимой фигурой в OSS-сообществе, когда Microsoft ещё был «закрытой» компанией — а теперь он работает там и влияет на мир опенсорса уже изнутри Microsoft. Такому человеку можно задать множество вопросов — например, как выглядела история Mono/Xamarin и как они сейчас вписываются в текущий Microsoft?

Вот и зададим: на DotNext Мигель ответит на столько вопросов от нас и от зрителей, на сколько можно успеть ответить за час.

Воркшопы

Онлайн-формат хорошо подходит для демонстрации экрана спикера: зрителям удобно смотреть это на своих экранах. И на новом DotNext будет целый ряд выступлений, где не просто разговоры и слайды, а работа с кодом и можно научиться чему-то конкретному. По продолжительности каждый воркшоп обычно занимает сразу два временных слота (то есть как два доклада).

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

Чем ценен спикер: Бьорн-Эйнар Бьартнес имеет за плечами большой опыт разработчика и архитектора систем для .NET, в настоящее время — один из ключевых архитекторов программных систем, разрабатываемых Норвежской вещательной компанией (NRK). Одним из критериев успеха его работы является бесперебойное круглосуточное вещание, поэтому накопленный им опыт несомненно окажется интересным для наших участников.
Чем хороша тема: Задача устойчивости к ошибкам является одной из ключевых при создании сложных систем, включающих интеграцию с внешними источниками информации. Несмотря на то, что каждая система сбоит по-своему, существуют методы, позволяющие систематизировать сбои и задержки коммуникации и настроить свою систему так, чтобы она продолжала работать эффективно и предсказуемо в условиях ошибок и задержек. Мы решили, что формат воркшопа — наиболее эффективный способ быстро овладеть такими методами.
Кому будет полезно: разработчикам бэкенда и систем интеграции.
Почему здесь и сейчас: Особенностью этого воркшопа является прохождение ряда практических задач и использование средств симуляции (Simmy) и обработки (Polly) внешних сбоев. Все это собрано вместе с возможностью освоить за пару часов.

Чем ценен спикер: Максим является признанным экспертом в области построения архитектур для приложений любого размера. Он много пишет на Хабре (marshinov) и выступает на конференциях.
Чем хороша тема: понятная, расширяемая и стабильная архитектура является залогом долгого и успешного развития больших приложений.
Кому будет полезно: людям, которым надоело слушать доклады про архитектуру приложений, и они хотят на собственном опыте получить практические знания, опираясь на советы опытного куратора.
Почему здесь и сейчас: автор собрал, систематизировал и опробовал на практике большое число подходов к проектированию архитектуры.

Говорят, что отладка кода — это как быть героем криминальной драмы, где ты убийца и детектив одновременно. Хотя чаще всего детективы расследуют убийства, совершённые другими. Но идеальных преступлений не бывает, преступник всегда допускает ту или иную ошибку. Так же обстоят дела и при исследовании слепков памяти (memory dumps) на предмет утечек и других проблем — так или иначе, всегда можно докопаться до сути.

В этом воркшопе мы пройдемся по самым распространённым проблемам с памятью и на практике попробуем найти, что не так в нескольких примерах. Чёрт не так страшен, как его малюют: исследования memory dumps трудоёмки и могут занять много времени, но зачастую они незаменимы.

Чем ценен спикер: принимал участие в разработке низкоуровневых фич NoSQL СУБД RavenDB, в связи с чем имеет большой опыт работы с утечками памяти.
Кому будет полезно: всем, кто не знает/не понимает, как работать с утечками памяти, ведь когда падают системы в продакшене — время идет не на минуты, а на секунды.
Почему здесь и сейчас: чем быстрее вы найдете и решите проблему, тем менее недоволен будет ваш пользователь.

Во время воркшопа мы смоделируем и соберем приложения, используя тактические схемы DDD с CQRS и многовариантное хранение. Мы начнем с моделирования, чтобы узнать, как новую систему можно представить в цикле команд, событий и моделей чтения. Затем, во время упражнений по внедрению, мы создадим набор полезных абстракций и инструментов, которые вы сможете развивать дальше и использовать в своих проектах.

Чем ценен спикер: Алексей — Developer Advocate в Event Store, автор книги Hands-on Domain-Driven Design with .NET Core, и разбирается в теме как никто другой
Чем хороша тема: Event Sourcing все хотят, но никто не умеет
Кому будет полезно: Архитекторам и разработчикам, которые хотят узнать на практике, как готовить Event Sourcing

Архитектура

«Domain-driven design: Cамое важное», Владимир Хориков

Владимир намерен показать самые важные, на его взгляд, части DDD с примерами на C#. Цель — дать обзор основных вещей из DDD, чтобы зритель смог быстро начать ориентироваться в них и применять на практике.

Чем хороша тема: Domain-driven design — это всегда актуально, а вопросов в этой теме всегда больше, чем ответов. Особенно когда речь заходит об изоляции доменной логики. Насколько её нужно изолировать? И насколько её в принципе возможно изолировать? Чем придётся пожертвовать? Владимир раскроет эти и другие вопросы в своём докладе.
Чем ценен спикер: известный эксперт, автор блога enterprisecraftsmanship.com и курсов по DDD на Pluralsight
Кому будет полезно: Всем, кто хочет глубже разобраться в теме DDD

В докладе рассмотрим модель акторов с использованием Akka.NET, самым популярным в .NET фреймворком с распределённой моделью акторов. Поговорим о том, какие проблемы это хорошо решает, когда стоит использовать и каких дополнительных затрат требует внедрение и использование инструмента вроде Akka.NET.

Чем ценен спикер: Без особого преувеличения Аарона Станнарда можно назвать главным по Akka на платформе .NET. Уже несколько лет Аарон и созданная им фирма Petabridge занимаются разработкой, поддержкой и популяризацией Акки, число скачиваний NuGet-пакетов которой недавно превысило два миллиона.
Кому будет полезно: архитекторам и разработчикам систем с высокими требованиями к быстродействию и масштабированию, но поскольку в докладе будут изложены основные идеи модели акторов, его можно рекомендовать и просто для расширения кругозора.
Почему здесь и сейчас: Аарон Станнард является одним из главных мировых экспертов по модели акторов, будучи при этом замечательным спикером.

«Akka or Orleans? Ask their architects!», Aaron Stannard, Сергей Быков

Что же выбрать — Akka.NET или Microsoft Orleans? С ответом точно помогут главные архитекторы этих фреймворков.

Аарон Станнард и Сергей Быков поговорят о месте модели акторов в современной разработке и критериях выбора фреймворка модели акторов, удовлетворяющего требованиям вашего проекта, и, конечно же, выяснят, в каком случае вам подойдет Akka.NET, а когда — Microsoft Orleans.

Кому будет полезно: Всем, кто думает над выбором актор-фреймворка или давно хотел узнать их отличия, слабые и сильные стороны.

«DDD, любовь, F#», Артём Акуляков

В мире ООП у нас есть множество паттернов и дизайн-практик. Но в функциональном мире не так много информации про дизайн и архитектуру. Это создаёт у сообщества впечатление, что приложение в функциональной парадигме — некая «лапша» из чистых функций, и написание сложных бизнес-приложений на функциональном языке, например F#, невозможно. К счастью, это заблуждение.

F# прекрасно подходит для написания больших и скучных бизнес-приложений, особенно при совместном использовании с DDD. В докладе Артём хочет рассказать и показать, как выглядит функциональный дизайн, как на F# реализуется DDD. Что получается в такой комбинации хорошо, что не очень, и какие уроки С# разработчик может из этого всего извлечь, чтобы улучшить свои приложения уже сейчас.

Чем ценен спикер: Автор имеет богатый опыт реализации сложной бизнес-логики как на C#, так и на F#, что дает ему возможность объективно сравнить эти два подхода.
Чем хороша тема: Domain-Driven Design давно и прочно ассоциируется с ООП. Казалось бы, при чем здесь F#? Но на самом деле функциональный язык может позволить сделать доменный слой даже чище и стабильнее, чем в парадигме ООП. Доклад будет о том, как это возможно и в каких случаях оправданно, а также какие подводные камни встречаются на этом пути.
Кому будет полезно: Разработчики и архитекторы, практикующие или интересующиеся Domain-Driven Design.

Есть множество статей о Data-oriented design, но они сосредоточены на применении в играх, а вот о применении в бизнес-приложениях практически не пишут. Этот доклад призван изменить ситуацию: тут речь пойдёт именно о бизнес-приложениях.

Чем хороша тема: Про Data-oriented design ещё не было докладов на DotNext. Тема низкоуровневых оптимизаций нравится нашей аудитории, и этот доклад — хорошая попытка систематизированно посмотреть на проблему.
Кому будет полезно: Разработчикам, желающим ознакомиться с подходом к дизайну систем на основе данных, обрабатываемых приложением. И, как результат, применять практики из доклада для проектирования высокопроизводительных приложений.
Почему здесь и сейчас: Для .NET мало материалов о таком способе проектирования приложений.

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

Чем хороша тема: Несмотря на многолетнее засилие микросервисов вокруг нас, вопросов по их использованию меньше не становится
Кому будет полезно: Людям, желающим изучить или систематизировать знания о шаблонах проектирования микросервисов в лёгкой и весёлой форме
Почему здесь и сейчас: Доклад даст слушателям не только ценные IT-знания, но и познакомит с удивительными обычаями коренных народов Севера

С выхода книги Дяди Боба «Clean Architecture» прошло уже много времени. Кто-то читал эту книгу или статью о чистой архитектуре, кто-то посмотрел видео или доклад. Проблема в том, что все эти материалы идейные: вот как нужно делать, и у вас все будет хорошо. При этом у авторов обычно нет практического опыта создания больших проектов по данной архитектуре и их запуска в продакшн. В книге описаны только общие принципы, примеры в материалах слишком простые, и на практике все равно остаётся много вопросов. Например, какие создать модули, что положить в каждый из них и как настроить связи между модулями.

Два года назад при участии Андрея началась работа над двумя новыми корпоративными приложениями на C# (API, backend), в которых применяли принципы, описанные в книге. Андрей готов поделиться этим опытом. Что будет в докладе:

— Что принципиально нового в чистой архитектуре?
— Чем чистая архитектура отличается от других: луковой, «порты и адаптеры», vertical slice?
— Какие слои получаются в реальном приложении?
— Как настроить ссылки между слоями и поддерживать их в актуальном состоянии по ходу проекта?

Internals

«What's new in the .NET 5 GC?», Maoni Stephens

От кого узнавать новости и подробности о сборщике мусора, как не от человека, от которого они зависят? Маони Стивенс — главный мейнтейнер .NET GC, и она готова как рассказывать по заготовленной программе, так и отвечать на любые вопросы по работе с памятью и GC. Это будет доклад и в то же время — Q&A-сессия.

Первые 30 минут Маони рассмотрит нововведения в .NET 5 GC: как и каким аспектам помогают улучшения производительности, а также какие бывают улучшения диагностики и как их использовать.

А затем перейдёт к ответам на ваши вопросы.

Выступление можно смело советовать всем, кто интересуется устройством и перформансом GC.

Иногда возникают ситуации, когда код написан хорошо и стабильно. И кода этого очень много: переписывать будет крайне тяжело. А ещё в этом коде есть проблема: он выделяет очень много памяти. Память выделяется и освобождается ввиду возросшей нагрузки, и как результат, GC молотит на полную катушку.

На примере библиотеки SMBLibrary мы попробуем свести выделения памяти к минимуму, используя ряд выработанных техник, и увидим, насколько тяжелыми могут быть простейшие операции.

Чем ценен спикер: Станислав является экспертом в области низкоуровневых оптимизаций и подкапотного устройства .NET. А его практический опыт в теме zero-allocation даёт уверенность в пользе изложенного материала.
Чем хороша тема: Разработчики не так часто оптимизируют программы, устраняя обильное выделение памяти и облегчая жизнь GC. Причиной этого является слабая освещённость и проработанность рекомендуемых практик. Данный доклад призван изменить это положение дел. На примере настоящей сложной библиотеки автор рассматривает эффективные способы, как сократить выделения памяти и увеличить скорость работы приложения.
Кому будет полезно: Людям, любящим оптимизировать производительность, разбираться с низкоуровневым устройством рантайма и строго следить за выделяемой памятью

Мы слабо представляли, как работает JIT-компилятор в .NET Framework, узнать о нем хоть немного можно было только из некоторых книг и блогов. С релизом .NET Core и полным открытым кодом JIT стал открытой книгой, каждый может попробовать что-нибудь в нем улучшить или поправить.

В этом докладе Егор расскажет, что на самом деле это не так сложно и не требуется научная степень в ракетостроении. Вы узнаете про полный цикл, который проходит ваш код на C# от момента запуска до выполнения на процессоре с фокусом на происходящее внутри JIT. Будет информация про его промежуточный язык, фазы оптимизации и даже такие компиляторные вещи, как SSA и Value Numbering.

Чем ценен спикер: разработчик из команды Mono, много контрибьютил в JIT
Чем хороша тема: внутренности JIT-компилятора — это одна из сложных, неизведанных областей, которая при этом очень важна для быстродействия конечного кода. И всегда интересно узнать, как же оно устроено внутри.
Кому будет полезно: всем кому интересны внутренности и как устроена платформа.

.NET-приложение — это «всего лишь» CIL-байткод, который исполняется с помощью рантайма. А рантайм — это «всего лишь» программа, способная справиться с этой задачей. Так получилось, что сейчас рантаймы .NET Framework/.NET Core написаны на C++. Но что, если бы мы могли написать рантайм .NET как… .NET-приложение? Это вообще законно? Запахло ли фильмом «Начало» и бесконечной рекурсией?

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

Чем ценен спикер: написал книгу по внутренностям GC, делает доклады по тонкостям работы .NET
Чем хороша тема: внутренности рантайма — это то, что интересно и всегда просят
Кому будет полезно: всем, кому интересно, как устроен .NET изнутри
Почему здесь и сейчас: один из немногих людей, кто готов писать свой рантайм .NET и рассказывать про это

Тренды

Рассмотрим, какие у C# 9.0 есть новые фичи, касающиеся immutability, pattern matching и типа Record, а также посмотрим ещё ряд некоторых вещей, над которыми идёт работа для следующих релизов.

Чем ценен спикер: один из главных авторов С#
Кому будет полезно: на Мадса стоит идти всем, кто интересуется устройством C#

«Source Generators в действии», Андрей Дятлов

В докладе вы узнаете не только о том, что скрывается за термином «Source Generators» и как это использовать, но и о том, как предоставить пользователю вашего генератора необходимую гибкость конфигурации и понятные сообщения о возникающих проблемах.

Чем ценен спикер: Андрей уже несколько лет работает в компании JetBrains в команде ReSharper. Кто, как не он, знает, как лучше анализировать код и автоматизировать рутинные задачи.
Чем хороша тема: Source generators — важная составляющая Roslyn.
Кому будет полезно: Вы не знаете, как избавиться от рутинных действий в коде? Или уже использовали Fody и PostSharp или старый добрый T4? Андрей расскажет, что полезного можно сделать с помощью source generators, как решить более элегантно часть задач, которые вы решали ранее другим способом, и какие достоинства/недостатки будут у нового решения от MS.
Почему здесь и сейчас: Андрей не просто расскажет о том, что такое Source Generators, но и объяснит, какие проблемы могут возникнуть на пути их использования, стоит ли их бояться, на что стоит обратить внимание при проектировании своего кодогенератора.

«Nullability in C#», Jared Parsons

C# 9 продолжает борьбу с «ошибкой на миллиард долларов», начатую в C# 8 с помощью nullable reference. Нововведения в nullable reference types опираются на фидбек от разработчиков, начавших использовать их в своих проектах. В докладе речь пойдёт и о nullable reference types (особенно над работой, проделанной в C# 9), и о прогрессе в null-аннотировании .NET SDK, и о подходах к добавлению null-аннотаций в уже существующие кодовые базы.

Чем ценен спикер: Один из разработчиков компилятора C#
Кому будет полезно: Всем, кому интересна тема nullability и что нового там произошло за год

В этом докладе мы глубоко погрузимся в модель безопасности Blazor, разберём, какие компоненты вовлечены, и рассмотрим, как прикрутить к нему аутентифик.

Чем ценен спикер: Очень глубоко раскопал тему и сделал доклад по вопросам, которые обычно не освещаются по теме Blazor
Чем хороша тема: Blazor — это новинка от Microsoft для разработки фронтенда в браузере и не только
Кому будет полезно: Всем, кто начал (или собирается начать) использовать Blazor и планирует разобраться в его особенностях аутентификации и авторизации.
Почему здесь и сейчас: Не просто введение в Blazor, как большинство докладов о нём, а решение одной из проблем, с которой столкнётся каждый, кому нужна аутентификация

.NET 5 — будущее .NET-разработки на любой платформе. Для начала пройдёмся по всем главным улучшениям в рантайме и библиотеках, а затем заберёмся поглубже в некоторые интересные новые фичи. Много труда было вложено в производительность, благодаря чему .NET-разработчики получат улучшения «бесплатно», просто переведя своё приложение на новую версию рантайма. Другая интересная область — System.Text.Json API, которая может похвастаться производительностью, простотой миграции с Json.NET, и хорошо интегрируется с новыми языковыми фичами C# 9.

Мы также заберёмся в новые диагностические инструменты. Наконец, Windows-разработчики оценят новые фичи в отношении interoperability, которые резко упрощают вызов Windows APIs.

Best practices

JetBrains Space — инструмент для командной работы над софтом, включающий чаты, git-хостинг, автоматизацию и многое другое. В частности, у него есть HTTP API для интеграции со сторонними приложениями. И этот API громадный!

В докладе рассмотрим, как сделать .NET SDK для Space и как сделать этот гигантский API более удобоваримым. Посмотрим на использование кодогенерации и различных языковых фич C#.

Чем ценен спикер: Мартен Баллиау имеет богатый опыт программной разработки и часто им делится на международных конференциях. Доклады Мартена всегда насыщены техническими подробностями, и он всегда готов ответить на самые сложные вопросы.
Чем хороша тема: В последние годы среда .NET претерпела, наверное, самые значительные структурные изменения за всю свою историю, превратившись из среды программирования для Windows в единый мир программных разработок для всех популярных операционных систем. Новый статус .NET заставляет пересмотреть требования к написанию SDK для программных продуктов.
Кому будет полезно: всем .NET-разработчикам, но в первую очередь создателям программных библиотек.

«Портирование 11-летнего Windows приложения на Linux», Рустам Салимзибаров, Алексей Поздеев

Рустам и Алексей расскажут о том, как 11-летнее enterprise-приложение для систем видеонаблюдения Macroscop было портировано на Linux.
Доклад будет полезен всем, кто мечтает портировать свое .NET-приложение на .NET Core.

Чем ценен спикер: У докладчиков богатый опыт портирования большого проекта при живых кастомерах
Чем хороша тема: Задача портирования старых приложений стала достаточно остро после прекращения развития .NET Framework
Кому будет полезно: Разработчикам, сидящим на старом фреймворке и желающим узнать подводные камни перед миграцией на новый фреймворк
Почему здесь и сейчас: Большой проект, много заказчиков, большая нагрузка, несколько неудачных попыток портирования в прошлом

Чем ценен спикер: у Михаила опыт разработки одного из самых больших .NET-проектов (ReSharper/Rider); традиционно готовит глубокие доклады; эксперт в MSBuild
Чем хороша тема: спикер будет рассказывать о реальном опыте оптимизации процесса сборки огромного проекта и о многих неочевидных трудностях, с которыми они столкнулись
Кому будет полезно: Разработчикам, чьи проекты собираются и тестируются больше 30 минут

После небольшого введения в язык системы будет продемонстрировано, как использовать MSBuild для «подкручивания ручек» в процессе сборки, некоторые из которых могут быть недоступны через UI вашей IDE, и пройдёмся по некоторым популярным кастомизациям. Мы также рассмотрим, как диагностировать проблемы и к каким инструментам обращаться, когда со сборкой что-то оказывается не так.

Чем ценен спикер: глубоко изучает MSBuild, один из немногих, кто копает в сторону этой темы
Чем хороша тема: разработчикам полезно знать, как собирается их код
Кому будет полезно: тем, кто готов залезть в файлы проектов и понять, зачем это может потребоваться

Доклад покажет, как легко сделать свою систему мониторинга для измерения загрузки CPU и обнаружения паттернов аллокации памяти. Запомните: измерение — первый и обязательный шаг перед оптимизацией кода!

Чем ценен спикер: Кристоф имеет богатый опыт работы с поиском низкоуровневых проблем, проблем производительности, не считая его богатый опыт в качестве ревьювера книг MSPress, Addison-Wesley и других издательств. В списке его ревью есть такие важные книги, как «CLR via C#» и «Windows Internals».
Чем хороша тема: Внутренности .NET и производительность — те самые слова, которые встречаются почти в каждом отзыве после конференции. Хотим больше докладов про внутренности и производительность.
Кому будет полезно: Тому, кому интересна производительность.
Почему здесь и сейчас: Кристоф всегда собирает, анализирует новые материалы исключительно для нашей конференции.

Заключение

Ну что, обнаружились ли в списке выше интересные вам доклады?

Если да, то напомним даты (2–5 декабря), а заодно напомним, что конференция прослушиванием докладов не ограничивается: она интереснее, если задавать вопросы спикерам в Zoom-сессиях, общаться с другими зрителями в чатах.

На сайте DotNext вся возможная информация о конференции и билеты.

Данные о правообладателе фото и видеоматериалов взяты с сайта «Хабрахабр», подробнее в Правилах сервиса
Анализ
×
Мигель де Икаса
Последняя должность: Программист, инженер, ИT-евангелист, предприниматель
Торгерсен Мадс
Бьорн Эйнар
Аршинов Максим
Филиппов Михаил
Microsoft
Сфера деятельности:Связь и ИТ
202