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

Какие доклады попали в открытую трансляцию? Полный список с описаниями — под катом, а перед ним отметим пару вещей. По итогам двух предыдущих DotNext Дилан Битти оказался явным зрительским фаворитом, поэтому откроет DotNext выступлением о том, как работают привычные нам технологии. А буквально вчера, когда доклад уже был полностью готов и согласован, Дилан открыл для себя тонкости кодировки KOI8-R и теперь увлечённо переделывает часть презентации!

Cменит его в главном зале Андрей Александреску — и это фигура такого масштаба, что мы сами не можем удержаться от селфи с ним. А следующим будет Саша Гольдштейн, которого представлять его дотнетчикам тоже не требуется. В общем, лайн-ап подобрался звёздный.

Первый день (22 апреля)


10:30 Apps, algorithms and abstractions: decoding our digital world


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

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

Dylan Beattie
Дилан — системный архитектор и разработчик, за жизнь успевший поучаствовать во множестве проектов, от небольших вебсайтов до огромных распределенных систем; от легаси с двадцатилетней историей до самых новейших разработок. Сейчас он работает архитектором в Spotlight и занимается решением сложных задач в современных распределенных системах. Параллельно с основной работой Дилан активно участвует в комьюнити, является организатором London .NET User Group и в 2016 году участвовал на множестве конференций, включая Oredev в Швеции, NDC в Лондоне, Сиднее и Осло, Tampere Goes Agile в Финляндии и BuildStuff в Литве и Украине.



12:00 Fastware


Оптимизация — то есть ускорение кода — один из основных ингредиентов современных вычислительных технологий. Скорость света ограничена, поэтому нельзя больше разгонять частоты процессоров; с другой стороны, материя состоит из отдельных атомов, поэтому нельзя делать схемы меньше, чем они производятся сейчас. Значит, для современных задач типа самоуправляемых машин или общего искусственного интеллекта, способы ускорения придется придумывать своими мозгами.

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

Andrei Alexandrescu
Андрей Александреску — эксперт по множеству вещей, включая дизайн и реализацию программных систем, дизайн языков программирования, библиотек, всех аспектов C++ и D, машинному обучению и обработке естественных языков. Его творческий подход к решению проблем, глубокие знания и харизма сделали Андрея Александреску одним из самых желанных спикеров на конференциях.

Книги и статьи Андрея оставили свой след в истории индустрии. Он является автором таких бестселлеров, как «Modern C++ Design», «C++ Coding Standards» (в соавторстве с Гербом Саттером), «The D Programming Language», а также статьи вроде «Simplify Your Exception-Safe Code — Forever» (в соавторстве с Petru Marginean) и «Mojo: Move of Joint Objects». Полный список статьей есть по ссылке.




13:30 How containers work


В современных хайповых трендах контейнеры стоят рядом с блокчейном и машинным обучением, но тем не менее, в них до сих пор мало кто разбирается хорошо. В этом докладе контейнеры показываются такими, какие они есть на самом деле: обычными процессами, но имеющими какое-то количество изоляции, квоту на ресурсы, и всё это сверху присыпано сэндбоксингом безопасности. Вы поймете, почему контейнеры такие интересные и полезные, как неймспейсы изолируют контейнеры друг от друга, как шарить ресурсы между контейнерами, как работает троттлинг, как всё это связано с рантаймом .NET и как написать минимальное приложение на .NET Core, которое не будет тащить с собой ненужные 500 мегабайт юзерспейсных библиотек и утилит из Ubuntu.


Sasha Goldshtein

Саша Гольдштейн — CTO в компании Sela Group, региональный директор и MVP в Microsoft, автор книг в Pluralsight и O'Reilly, международный консультант и тренер. Саша — автор книг «Introducing Windows 7 for Developers» (Microsoft Press, 2009) и «Pro .NET Performance» (Apress, 2012), известный блогер и контрибьютор в OpenSource-проекты, автор множества обучающих курсов, включая .NET Debugging, .NET Performance, Android Application Development, и Modern C++. Его работа как консультанта в основном связана с распределенными архитектурами, отладкой продакшна, диагностикой производительности и разработкой мобильных приложений.




15:15 Распределённые транзакции умерли, да здравствуют распределённые транзакции!


Как «всем известно», распределённые транзакции умерли с приходом эры интернета. Книги по MTS, MSDTC, J2EE пылятся в музеях, пока программисты пишут облачные сервисы в борьбе с eventual consistent-хранилищами данных типа Cassandra и Mongo. Для финансовых транзакций остаётся бессмертный SQL.

Команде, работающей над фреймворком Orleans, не привыкать ставить под сомнение общепринятые «истины». Она уже показала, что распределённые объекты при правильном применении могут успешно использоваться для построения эффективных масштабируемых приложений, предложив убедительную альтернативу подходу Erlang/Akka к модели акторов.

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

Сергей Быков

Сергей Быков начинал проект Orleans в Microsoft Research и продолжает руководить его разработкой в open source в подразделении Xbox. До прихода в Research Сергей проработал в различных группах Microsoft, от BizTalk и Host Integration Server до встроенных операционных систем для кассовых терминалов и Bing. Удручающая ситуация со средствами разработки для облачных сервисов и распределённых систем побудила его заняться проектом Orleans с целью качественно повысить производительность труда программистов в этой сфере.




16:45 Write your own C# static code analysis tool to drive business rules


Итак, вы написали кучу кода и в течение полугода потратили много времени на изучение, понимание и его улучшение, снова и снова. Код — это нечто живое, и нет документации лучше самого кода. Поэтому мы начинаем использовать кучу инструментов, позволяющих делать ручную проверку кода и полностью понимать, что происходит с объектами определенного типа, какие части кода действительно нуждаются в зависимостях или какие API используются в каких частях кодовой базы. Это тем сложней, чем больше кода пришло к нам от сторонних разработчиков.

Платформа Roslyn дает нам возможность писать инструменты для понимания исходников с точки зрения бизнес-правил, добывать из них информацию, достаточную для идентификации паттернов использования и для применения практик безопасности.

Идея в том, чтобы повысить качество средств для анализа кода, самостоятельно создавая такие инструменты и анализаторы для Visual Studio, которые будут учитывать особенности разрабатываемого продукта.


Raffaele Rialdi
Raffaele Rialdi — Senior Software Architect, работающий в том числе как консультант, спикер и тренер. Начиная с 2003 года, он является Microsoft MVP в категории Developer Security. Его увлечение делами сообщества сделало его членом правления UGIdotNET, президентом DotNetLiguria и сооснователем Italian C++ User Group. В данный момент он работает архитектором и разработчиком бэкендов энтерпрайзных проектов с особым фокусом на генерации исходников приложений в области кроссплатформенной мобильной и IoT-разработки, на языках C# и C++.



18:15 Многопоточные структуры данных в .NET: как это работает?


В докладе речь пойдет об алгоритмах, стоящих за коллекциями в System.Collections.Concurrent. Пошагово, с примерами объясним сложные алгоритмы. Также рассмотрим дизайн API многопоточной коллекции. Ознакомимся с теорией неблокирующей синхронизации.

Важно: для понимания доклада необходимо знать основы параллельного программирования, включая Monitors, Semaphores, read-write locks, атомарные операции (Interlocked) и т.д.

Дмитрий Иванов

Техлид JetBrains Rider, разработчик ядра ReSharper: структур данных, кэшей, многопоточности. В компании JetBrains с 2011 года, до этого руководил разработкой серверных решений в Yota. Окончил матмех СПбГУ в 2006 году. Регулярный спикер DotNext.




Второй день (23 апреля)


10:30 Деревья выражений в enterprise-разработке


Для большинства разработчиков использование expression tree ограничивается лямбда-выражениями в LINQ. Зачастую мы вообще не придаем значения тому, как технология работает «под капотом».

Цель доклада — продемонстрировать продвинутые техники работы с деревьями выражений:

  • устранение дублирования кода в LINQ;
  • метапрограмирование;
  • кодогенерация;
  • транспиляция;
  • автоматизация тестирования.

После доклада вы будете знать, как пользоваться expression tree напрямую, какие подводные камни приготовила технология и как их обойти.


Максим Аршинов
Соучредитель казанской аутсорс-компании «Хайтек Груп». Кроме ведения бизнеса преподает в «Высшей школе информационных технологий и информационных систем» Казанского федерального университета и пишет на Хабре. По запросу «Как писать тесты» в Google первым результатом выйдет его статья.

Суммарный стаж в программировании и управлении разработкой — 10 лет. За это время прошел путь от программиста в казанской веб-студии до руководителя отдела качества в финансовой индустрии. Работал в организациях из Казани, Москвы, Питера и Антверпена (Бельгия).

Считает, что технологии — это не «вещь в себе», а инструменты для достижению целей. Каждая — со своей областью применения.



12:00 Взаимодействие микросервисов по HTTP/2


HTTP/2 не только ускоряет загрузку веб-страниц, но и оптимизирует взаимодействие микросервисов в распределённой системе. Наша инфраструктурная команда использовала HTTP/2 в новом сервисе и столкнулась с интересными проблемами. Вас ждет увлекательная fail story про производительность, магические константы и утечки unmanaged-памяти.

Цель доклада — поделиться опытом использования HTTP/2 для оптимизации межсервисного взаимодействия в условиях .NET framework и Windows.

Доклад будет интересен любителям детективных историй про производительность; разработчикам микросервисов под .NET; людям, которые занимаются нагрузочным тестированием HTTP-сервисов.

Ключевые слова: .NET, C#, HTTP/2, WinDbg, microservice architecture, long polling, load testing.


Евгений Жиров
C# разработчик в инфраструктурной команде СКБ Контур. Занимается разработкой и поддержкой общих библиотек, системы распределенных трассировок, другими высокопроизводительными сервисами.

Интересуется созданием надежных и масштабируемых HTTP-сервисов, написанием производительного кода, C# и .NET, робототехникой и IoT. Евгению нравится делиться знаниями с другими, поэтому он прокачивает навык публичных выступлений и преподает несколько курсов для студентов в УрФУ.



13:30 Advanced .NET debugging techniques from a real world investigation


Вы же знаете, как это больно: вот вы зарелизили новую версию, и сервис начал вести себя очень странно, и кроме вас некому это починить. Но где и как начать?

Criteo обслуживает 150 миллиардов запросов в день, разбросанных на 4000 фронтовых сервера. Являясь частью команды перформансников в Criteo, докладчики очень хорошо разбираются в том, как расследовать критические проблемы в такого рода средах.

В этом докладе мы рассмотрим инсайты, ошибки, ложные следы, которые бывают в реальности.

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

  • Использование метрик для обнаружения ошибки;
  • Что мы можем или не можем получить из профилировщика, на основании чего можно делать хорошие предположения;
  • Погружение в структуры данных CLR с помощью декомпилятора, WinDBG и SOS, для проверки предположений;
  • Автоматический анализ дампов памяти с помощью ClrMD, и то, как писать свои собственные инструменты, когда WinDBG оказывается несостоятельным.



Christophe Nasarre / Criteo

Christophe Nasarre 25+ лет работал над разработкой и поставкой софта для стека Microsoft, был техническим редактором в MSPress, Addison-Wesley и других издательствах с 1996 года, участвуя в написании таких книг, как «CLR via C#» и последних редакция «Windows Internals».

Обычно он рассказывает об инструментах и полезных идеях о .NET и Windows и ведет свой блог. У него есть опыт докладов как внутри Microsoft, так и на публичных событиях вроде Microsoft TechDays.

Kevin Gosse / Criteo

Kevin Gosse использует технологии Microsoft .NET в течение 10 лет, он занимался разработкой серверов, клиентов и мобильных приложений. Сейчас в Criteo он занимается вопросами масштабирования, отладки и оптимизации.



15:15 Scratched Metal


Микрооптимизации в движке хранения RavenDB vNext критичны для достижения 50К+ запросов на запись в секунду на среднестатистическом сервере. В этом докладе мы рассмотрим использование новых интринсик, добавленных в CoreCLR 2.1 в контексте реальных примеров узких мест на критическом пути выполнения. Будут затронуты довольно хардкорные темы вроде архитектуры процессоров и её влияния на поведение кэшей (коэффициент промахов-попаданий, пойзонинг), префетчинг и т.п. Доклад предназначен для инженеров, занимающихся микрооптимизациями в высокопроизводительных приложениях.

Federico Lois
Federico — сооснователь R&D-компании Corvalius и аналитической компании Coidealike. Он работал над производительностью алгоритмов в течение последних десяти лет, включая как обычные процессоры, так и специализированное железо вроде GPU. Он имеет опыт в различных сферах, начиная от практики повышения производительности банковских приложений, вплоть до оптимизации движков баз данных.



16:50 Building microservices with .NET Core and Docker


.NET Core — это «новый» способ сборки .NET-приложений, хорошо работает с облаками и контейнерами. В докладе посмотрим, как можно использовать эти технологии для сборки приложений, базирующихся на контейнизированных микросервисах. 20% слайдов и 80% кода.

Edwin van Wijk
Эдвин работает в IT с 1999, сейчас — solution architect в Info Support. Microsoft MVP в категории Visual Studio and Development Technologies.



18:25 Перспективные технологии космонавтики


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

Виталий Егоров

Специалист по связям с общественностью российской частной космической компании Dauria Aerospace. Блогер Zelenyikot, популяризатор космонавтики в интернете, основатель сообществ «Открытый космос» в соцсетях суммарным количеством более 1 млн подписчиков. В 2013 году сумел обнаружить на поверхности Марса посадочный модуль советской автоматической межпланетной станции «Марс-3». Инициатор проекта создания лунного микроспутника для съемки мест посадок «Аполлонов» и «Луноходов».



В конце ещё раз напомним ссылку на открытую трансляцию. А если так получилось, что как раз самые интересные вам доклады DotNext проходят не в первом зале, то всё ещё можно купить доступ к полной трансляции.

Комментарии (0)