Нікси на .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- а, і CICD сервера. Останнім часом 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.

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