Конференция: DotNext 2018 Piter
Дата: 22-23 апреля 2018 года
Место: Санкт-Петербург, Гостиница «Park Inn by Radisson Пулковская»

Следующий DotNext будет меньше, чем через месяц. Над программой и докладами была проведена колоссальная работа, и, чтобы познакомить вас с ней, мы попросили рассказать об этом Романа Неволина. Роман входит в ПК DotNext, а как разработчик и спикер специализируется на работе с данными в наукоемких проектах, занимается исследованиями в области Machine Learning и разработкой собственных инструментов машинного обучения. Вы могли присутствовать на его докладах вроде «F# во славу Data Science» или «Машинное обучение на платформе .NET». Передаю слово Роману.


Доброго дня, Хабр! Меня зовут Роман, и я один из членов Программного комитета конференции DotNext. Мы в этом году, признаться, как никогда горды своей программой. У нас получилось пригласить кучу людей, которых мы давно хотели видеть на конференции, а главное — добиться баланса между разными темами, чтобы показать .NET во всем многообразии. От безопасности до Xamarin, от суровой enterprise-разработки до программирования квантовых компьютеров — мы постарались взять как можно больше тем и показать их с самых разных сторон.


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




Производительность


Performance всегда был одной из самых интересных для аудитории DotNext тем — выступления о производительности всегда собирают полные залы, поэтому мы каждый год стараемся найти новые, интересные доклады (и докладчиков!) на эту тему.


Для меня самым интересным в этой категории выглядит доклад от Андрея Александреску, известного благодаря отличным книгам и статьям на самые разные темы, а также языку программирования D, одним из авторов которого он является. В отличие от многих других докладов о производительности, этот никак не затрагивает внутренности фреймворка. Вместо этого Андрей расскажет о принципах разработки высокопроизводительных алгоритмов, продемонстрировав их на понятных примерах. Такой подход делает доклад полезным даже для тех, кто никогда не задумывался о производительности своих приложений. Но предупреждаю — алгоритмический хардкор здесь просто льется через край и к этому стоит заранее подготовиться. Как говорит один из отзывов с сайта Андрея: «All I have to say is: mind == blown».


Federico Lois смотрит на эту проблему с другой стороны: он рассказывает о тех аспектах производительности, которые непосредственно связаны с железом. Например, вы сможете узнать, как архитектура CPU влияет на разнообразные параметры производительности вашего приложения и какие изменения в это внес CoreCLR 2.1. Всё это будет продемонстрировано на примере RavenDB — высокопроизводительной NoSQL базы данных на .NET, разработкой которой занимается Федерико. Кстати, в прошлом году его доклад вошел в топ-5 лучших докладов конференции. Наверняка в этот раз будет не менее интересно.


CLR и Runtime


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


Одна из тем, которые в .NET-сообществе обсуждаются не слишком часто — это Ahead-Of-Time компиляция. И если вам интересно узнать, что это такое и зачем оно нужно, стоит послушать доклад от Елизаветы Голенок «Используем AOT-компиляцию правильно». У нее масса опыта работы с различными типами компиляции и потому она сможет понятно объяснить, нужна ли вам AOT-компиляция, как с ней жить и что она поможет вам выиграть, а заодно расскажет, что вообще-то AOT повсюду.


Еще один интересный доклад из этой категории сделает Евгений Пешков из СКБ Контур, который расскажет нам об особых исключениях в .NET. Казалось бы, что тут может быть такого нового и неизвестного? Однако существует масса исключений, с которыми мы сталкиваемся довольно редко, а лучше бы не сталкивались совсем, потому что они возникают при ошибках уровня операционной системы и рантайма, и каждое такое исключение обещает вам долгий дебаг, ковыряние в дампах памяти и вопросах на StackOverflow. Возможно, именно этот доклад когда-нибудь спасет вам время и нервы, позволив заранее узнать о причинах и последствиях таких исключений.


И последний в программе доклад о внутренностях фреймворка — «Многопоточные структуры в .NET. Как это работает?». Он раскроет перед вами особенности реализации многопоточности в .NET, показав, что лежит за стандартными конкурентными коллекциями. Если вам никогда не хватало духу разобраться, как это всё работает, доклад Дмитрия Иванова — это то, что вам нужно. У него, с одной стороны, огромный опыт работы с многопоточностью (разработка ReSharper и Rider — это вам не вебформы клепать), с другой — постоянный опыт выступлений на митипах и конференциях, который позволит перенести этот опыт в понятную форму и передать его вам.


Отладка и тестирование


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


Начну с доклада Сергея Щегриковича с интригующим названием «Главный секрет отладки». Прям так и хочется поверить, что стоит только его послушать — и всё, баги пофиксятся сами собой, а вопрос «да почему же падает этот чертов эксепшн» больше никогда не будет мучить вас. Так вот, как человек, который этот доклад уже слышал, вынужден вас разочаровать — баги сами собой не пофиксились. Зато я получил Универсальный Алгоритм Поиска Ошибок, понял, в каких случаях стоит громко кричать: «Это не мой баг!» (спойлер — ни в каких), да и в целом неплохо систематизировал свои знания. По моему мнению, обратить внимание на доклад стоит решительно всем — одним понравится алгоритм отладки, другим — масса жизненных примеров, и уж точно никто не останется разочарован манерой повествования: доклад слушается как набор детективных историй, с выводами и моралью.


В то время как Сергей рассказывает о вещах универсальных, доклад «Advanced .NET debugging techniques from a real world investigation» от Christophe Nasarre и Kevin Gosse говорит о вещах куда более приземленных — правильных метриках, помогающих заметить аномалии, удобных инструментах для отладки и о разнообразных ситуациях, когда это может вам помочь. Всё это показывается на большом количестве реальных примеров и чуть ли не половина доклада — это практическая демонстрация правильного использования тех или иных инструментов. Рекомендуется послушать всем, кто еще не до конца освоился во всем многообразии инструментов для отладки или просто хочет посмотреть, как эти инструменты помогают решать каждодневные проблемы.


И всё это работает прекрасно, но не для облачных приложений. В облаке свои проблемы, баги и способы отладки. И потому про отладку облачных приложений расскажет Maarten Balliauw в докладе «What is going on? Application diagnostics on Azure». За час буквально с нуля вы разберетесь, как получать и интерпретировать различную информацию о вашем приложении, висящем в Azure, какие проблемы с этим могут возникнуть и как находить ошибки даже раньше, чем они возникнут. Кстати, многие вещи, о которых рассказывает Мартен, подходят не только для Azure — инструменты вроде структурированного логирования и AppInsights хороши для любых приложений. Поэтому есть смысл заглянуть, даже если вы не планируете отправлять ваш код в облако.


Последний доклад в секции подходит к проблеме с другой стороны. Чем ловить баги с помощью логов, метрик и дампов, куда лучше выявить их автотестами, правда? И доклад Юлии Ковалевой «Безбажная пиццерия» именно об этом — о тестах и тестировании кода. Юлия расскажет о том, как они делали систему Dodo IS безбажной, внедряя property-based подход и правильные практики тестирования кода. Почему важно дружить с тестировщиками и как писать тесты, где кода будет меньше, а покрытие — больше? В общем, это неплохой повод посмотреть на автотесты с позиции профессионального тестировщика и подтянуть свои навыки тестирования кода.


Безопасность


За .NET Security на DotNext в этом году отвечает автор двух отличных книг по этой теме и создатель криптобиблиотеки Inferno, Stan Drapkin. Стэн приедет к нам с докладом «Pitfalls of high-level cryptography», который он сам позиционирует как логическое продолжение докладов на эту тему с прошлых конференций (в частности, доклада от Владимира Кочеткова с DotNext Moscow 2015) — там рассказывали о криптографии на низком уровне, а этот доклад призван показать, что на высоком уровне тоже не всё так просто. И, должен сказать, у Стэна получилось. В своем докладе он показал, как должна выглядеть правильная высокоуровневая библиотека, работающая с криптографией, как этим высокоуровневым API необходимо пользоваться, дабы не попасть ни в одну из подводных ям и в каких ситуациях стоит использовать (или не использовать) те или иные методы криптографии. Ко всему прочему, доклад просто и приятно слушается, даже для далекого от темы криптографии человека. В общем, рекомендую послушать доклад всем, кто хоть сколько-нибудь интересуется темой security — оно того стоит.


Напоминаем, что билеты на DotNext можно приобрести на официальном сайте.

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