Никсы на .NET Developer Days 2018

5 ноября 2018

.NET Developer Days — ежегодная конференция, которая уже не первый год собирает под крышей Warsaw Expo XXI порядка тысячи специалистов в области .NET-разработки.  Девелоперы приезжают сюда за технологическими новинками и самой актуальной информацией от именитых профессионалов вроде Донавана Брауна, Саши Гольдштейн, Нила Форда и многих других. Эксперты NIX Solutions по .Net разработке тоже посетили мероприятие в этом году, и спешат поделиться своими впечатлениями.

img_20180918_083254-1

Конференция шла три дня. Первый день был отведен под шестичасовые мастер-классы на тему Making .NET Applications Faster. Во второй и третий день можно было послушать доклады на самые актуальные темы: облачные сервисы и инфраструктура, современные архитектурные подходы, развертывание приложений, машинное обучение, оптимизация и т.п. В первый день мы решили посетить мастер-класс Саши Гольдштейна, посвященный производительности в приложениях.

Саша начал свой семинар с представления инструментов, полезных для измерения производительности и профилирования .NET приложений: например, библиотека BenchmarkDotNet, позволяющая делать замеры производительности кода, и многофункциональная утилита PerfView. Также мы освежили в памяти базовые принципы устройства и работы центрального процессора, которые пригодились при разборе почти всех последующих тем.

Потом мы разбирались в таких проблемах, как cache missing, cache invalidation, branch misprediction, и ситуациях, в которых можно снизить частоту таких событий, увеличив производительность. Докладчик всё время шутил о том,  как круто применять это при переумножении матриц (он недавно занялся разработкой AI в Google, поэтому умножение матриц для него стало обычным делом).

Кроме того, Саша рассказывал о векторизации и о том, как на современных процессорах можно «бесплатно» распараллелить разного вида операции при помощи типов из пространства имен System.Numerics.Vectors, включая арифметические и криптографические операции, операции сравнения строк и литералов, приведения типов и многие другие.

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

img_20180918_085644

Открыл конференцию Скотт Хантер — человек, который принимает активное участие в разработке .NET Core, .NET Framework и многих других ключевых продуктов Microsoft. Он рассказал, на каком этапе развития .NET находится сегодня, что ждет нас в будущем и какие нововведения можно попробовать уже сейчас в версии .NET Core 2.2. Самыми интригующими технологиями мы считаем возможность разработки десктопных приложений на .Net Core, которая должна появиться в третьей версии, и возможность использовать .Net в браузере через Webassembly и новый фреймворк Blazor. Не обошлось и без технических проблем. В какой-то момент экран заполнили черные полосы, которые организаторы долго не могли убрать. В ответ на это Скотт шутя сказал: “Come on people, just reboot it! We are living in a world when something does not work, you just reboot it!”. В целом докладчик отлично справился со своей задачей и дал достойный старт конференции.

Остальные доклады первого дня были посвящены не менее актуальным темам. Была пара докладов об Azure DevOps (в недавнем прошлом Visual Studio Team Services), платформе, которая совместила в себе функционал issue-tracker-а, и CI\CD сервера. В последнее время Microsoft вносит значительные обновления в этот продукт, делая его все более удобным и функциональным.

На докладах о Docker разбирались вопросы архитектуры приложений, работающих на контейнерах, примеры миграции legacy-проектов на архитектуру такого рода. Нам понравился доклад о развертывании экземпляров MS SQL Server с использованием контейнеров. Это позволяет сильно упростить и ускорить CI/CD процессы, связанные с БД. В докладе было описано несколько вариантов использования Docker-образов:

• без сохранения данных между запусками — больше всего подходит для использования в автотестах;

• с сохранением данных между запусками — для локального использования и использования на dev/qa/staging окружениях;

• и миграция изменений схемы БД из образа на production окружение.

В других докладах спикеры осветили темы многопоточности, Azure и архитектурных подходов при разработке ПО. Заключительный доклад первого дня сделал Донаван Браун. Он рассказал, как Microsoft совершенствовалась при разработке Azure DevOps, как менялись их процессы в разработке, видение продукта и собственное отношение к нему. Через использование сторонних продуктов при разработке команда пришла к тому, что стала своим первым заказчиком, и начала вести разработку, используя инструмент, который они создают для себя и своих пользователей.

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

На второй день было много докладов, связанных с AI. Представители Microsoft рассказывали о своих инструментах: Cortana, Azure Cognitive Services, ML.NET, Azure Machine Learning Studio. Мы также послушали доклад представителя Google Кэвина Нельсона, который противопоставил наработки своей компании достижениям Microsoft. Обе компании достигли впечатляющих результатов в области AI, предоставив понятный REST API для использования готовых решений в реализации своих бизнес-задач.

Финальный доклад второго дня и всей конференции прочитал Тим Хоккебэй, визионер в области AI и человек, применяющий свои наработки для решения реальных задач “to make a world a better place”. Он рассказал об успехах компании в области компьютерного зрения, но упомянул, что на данном этапе для реализации всех своих идей им все еще не хватает вычислительных мощностей.

Это была замечательная конференция, которая показала нам куда движется мир IT-технологий, какие достижения в области нейронных сетей уже на счету таких гигантов как Microsoft и Google. Было приятно узнать, что в погоне за новыми достижениями компании не забывают об оптимизации приложений и помнят, что более мощный компьютер не решает проблем некачественного приложения. Нил Форд очень увлекательно рассказывал про возможности применения Feature Toggle в проекте и как это помогает разработчикам получать самые свежие изменения от других членов команд.  А уже вечером Донаван Браун объяснял применение этой технологии в Azure DevOps. Было интересно услышать, как внедрение Feature Toggle изменило процесс разработки и сам продукт Microsoft.

А еще круто, что за всем многообразием докладов и новых возможностей организаторы не забыли про отдых, живую музыку и вкусное пиво.