Главная » Хабрахабр » Джеффри Рихтер, Павел Йосифович, Грег Янг и все-все-все. Хардкор и архитектура на DotNext 2018 Moscow

Джеффри Рихтер, Павел Йосифович, Грег Янг и все-все-все. Хардкор и архитектура на DotNext 2018 Moscow

Совсем скоро, 22-23 ноября пройдёт следующий московский DotNext. Программа стала более определенной, поэтому хотелось бы поделиться несколькими наблюдениями про хардкорные и архитектурные доклады.

Это те люди, которые сами по себе могли бы заполнить отдельную конференцию. Во-первых, есть часть докладчиков «без категории». Их имена вы знаете: Джеффри Рихтер, Павел Йосифович и Грег Янг.

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

Он известен как автор «Windows Internals», «WPF Cookbook», «Mastering Windows C++ App Development» и пяти курсов на Pluralsight. Справа — книги Павла Йосифовича. Кроме того, он является известным разработчиком, тренером и спикером, но в этой роли мы его почти не видели — он почти никогда не бывает в России. Если вам вдруг интересен ещё и C++, то Павел недавно выложил видео на YouTube про модель памяти C++. Это большая удача и победа, что всё получилось и он действительно приедет. И вот, Павел — у нас на DotNext. NET developers», он расскажет об интересных внутренних фичах Windows 10, как эти фичи влияют на . В своём новом докладе, «Windows 10 internals for . NET-разработчиков и как их можно с пользой поставить себе на службу.

Мы уже делали с ним подробное интервью для Хабра, если действительно хочется узнать, о чём думает человек, задающий направление развития Azure, — вам туда. Слева — книга Джеффри Рихтера. Обретя популярность ещё в начале 90-х благодаря книге о программировании Windows 3. Джеффри — серийный создатель классических книг. Следующая большая книга, «Programming Applications for Microsoft Windows» стала классикой, позже издавалась как «Windows via C/C++» и выдержала несколько изданий. 1, он не остановился. Люди до сих пор спрашивают, когда будет следующее переиздание «CLR via C#» (если вас это тоже интересует — приходите на конференцию и спросите сами!). То же случилось и с «CLR via C#». Очень советуем сходить на его «Building responsive and scalable applications», доклад про эффективное использование облачного железа — от человека, который знает об этом всё.
Сейчас он Partner Software Architect в Microsoft, работающий по направлению Distributed Cloud Apps & Storage и тащит за собой в светлое будущее всю платформу.

Он «всего лишь» изобретатель термина CQRS, один из самых известных и знаковых деятелей в этом направлении. Что касается Грега Янга, у него нет каких-то особо громких книг. Если хочется посмотреть, что рассказывает Грег,— он моментально ищется на YouTube, он когда-то писал на CodeBetter, и если посмотреть на амазоне книги по CQRS, то именно ему доверили написать введение к книге «Exploring CQRS and Event Sourcing» за авторством директора Splunk.
Как вы уже, наверное, догадываетесь, в CQRS всё совершенно не так просто и понятно, как кажется с первого взгляда, и Грег — тот самый человек, с которым можно всё это обсудить.

Видеозапись доклада Грега Янга «How to get productive in a project in 24h»

DotNext зарекомендовал себя как конференция, на которой раз за разом появляются ведущие спикеры, раскрывающие сложнейшие специальные вопросы. Есть несколько тем, которые превращают почти любой доклад в хардкор, например, обеспечение максимального перформанса и детали реализации сложных технологий.
Мы уже поговорили о Джеффри Рихтере и Павле Йосифовиче. Но это не всё! Давайте посмотрим, что для нас приготовили Raffaele Rialdi, Chris Bacon и Егор Гришечко.

NET-рантайм? Ну что, давайте зайдём с козырей, вы когда-нибудь хотели написать свой . У Chris Bacon получилось сделать экспериментальный проект DotNetAnywhere, действительно совместимый рантайм с поддержкой таких вещей, как многопоточность, PInvoke, сборка мусора и так далее. А получилось? NET прямо в браузере с помощью технологии WebAssembly. Именно этот его проект использовался для построения фреймворка Blazor, который позволяет запускать . В общем, на этом DotNext будет «So you want to create your own . (Кстати, доклад про Blazor делал Никита Цуканов, видеозапись есть на YouTube). NET runtime?» — весьма гиковский и необычный доклад про написание рантайма.

Если вы бывали на DotNext, то должно быть, уже знакомы с Рафаэлем Риальди и темами, на которых он специализируется. Перейдём к более практичным темам. Если нет — сейчас самое время ознакомиться!

Видеозаписи докладов Рафаэля с DotNext 2018 Piter и DotNext 2017 Moscow

Вы могли заметить, что появились новые API Span<T> и Memory<T>, и теперь можно иметь доступ к неуправляемой памяти, не занимаясь бессмысленными копированиями в управляемые объекты. В этот раз Рафаэль приедет с новым докладом «Boosting memory management in interoperability scenarios». Рафаэль по ходу доклада собирается забуриться в эти API, показать детали на практически интересных примерах вроде IoT, и что всем этим может заниматься простой смертный в повседневной деятельности.

Многие даже не знают о том, что эти типы существуют, а большинство из тех, кто знает об их существовании, не понимает, зачем они. Недавно в свежих версиях языка появились ValueTask, task-like типы и IValueTaskSource. Егор Гришечко в докладе «ValueTask: что, зачем и почему» расскажет, что это за новые средства, для чего они и когда их использование обосновано, а когда нет.

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

  • Konrad Kokosa
  • Егор Богатов
  • Евгений Пешков
  • Alexandre Mutel

NET-рантайм. Мы уже видели доклад про собственный . Нужно ли нам будет патчить ужасный файл размером два мегабайта генерённого C++ кода? А что насчёт собственного GC? В . К счастью, нет. 1 добавили новую фичу под названием Local GC, позволяющую полностью заменить стандартный сборщик мусора чем-то самописным или наоборот — использовать стандартный сборщик вне обычной среды . NET Core 2. В докладе «Make your custom . NET. Интересно и полезно это будет в основном тем, кому хочется глубже разобраться с управлением памятью и поведением GC. NET GC — «whys» and «hows»» Konrad Kokosa познакомит нас с тем, как всё это делается. Скорее, это крутой вдохновляющий доклад, расширяющий представление о границах возможного. Основная суть доклада не столько в том, что вот вы пришли домой с конференции и сразу перевели прод на самописное нечто. GC все меньше кажется непонятной вещью в себе и всё больше ложится в руку как удобный и послушный инструмент.
Вы не обязаны этого делать, но теперь есть возможность экспериментировать.

В последнее время во многих рантаймах стало популярным давать пользователю доступ до генерации SIMD-инструкций процессора, таких как SSE и AVX. Но GC — это только начало. Не обошла эта мода и . Например, в JS добавили (и убрали) SIMD.js, в Java этим занимается проект Panama и так далее. Нам дали суперсилы, но они таковы, что недостаточно их иметь — нужно ещё уметь ими пользоваться, и это сложно. NET. С другой стороны, если ты пишешь действительно максимально перформансное приложение и экономишь каждый такт, то можно встретиться с тупостью даже наиболее совершенных компиляторов. С одной стороны, контроль на таком уровне требует огромной мотивации и квалификации: чтобы написать векторный код, который превзойдёт по перформансу скалярный, нужно напрячься не только с вещами вроде выравнивания, но и следить за конкретными наборами инструкций, думать о результате генерации и вещах, которые происходят, если сойти с быстрого пути. Даже такая сравнительно изученная проблема, как аллокация регистров, является NP-полной (раз, два), требуя вмешательства человека, и непохоже, чтобы ситуация с SIMD была чем-то лучше.

NET Core», в котором расскажет, как генерить SIMD из высокоуровневого кода. В этом году Егор Богатов приезжает с новым докладом «Оптимизации внутри . Сейчас хочется сказать, что Егор работает в Microsoft, специализируется на Mono и . С Егором мы скоро выпустим развёрнутое интервью на Хабре. Держите парочку предыдущих записей: NET Core, и на DotNext выступает с докладом не в первый раз.

Видеозаписи докладов Егора с DotNext 2017 Moscow и DotNext 2016 Moscow

Недавняя история с только что вышедшей Assassin's Creed Odyssey это подтверждает: разработчикам пришлось в минимальных системных требованиях указать процессоры с поддержкой AVX/SSE 4. Егор очень интересуется созданием компьютерных и мобильных игр, в которых как раз можно все эти оптимизации применять. 1, даже несмотря на уменьшение клиентской базы (это процессоры Intel 2nd gen: Intel Core i5-2400 и выше, которые раньше назывались Sandy Bridge и которые есть далеко не у всех).

Это второй спикер, с которым у нас будет развёрнутое интервью для Хабра. Если пример самой продаваемой игры вас не убедил, то точно убедит Alexandre Mutel. (Кстати, они недавно открыли на чтение код С# части). Он работает в Unity Technologies, компании, создающей один из самых популярных игровых движков, Unity. Поэтому они изобрели специальный «burst» compiler: он превращает ограниченное подмножество C# в оптимизированный нативный код с помощью LLVM, что позволяет добиваться производительности, сравнимой с C++, а иногда даже быстрее. Alexandre точно знает, что существует такой критичный код, с которым обычный C# всё-таки не справляется. Какое подмножество C# имеет смысл для написания сверхбыстрого кода? Как сгенерировать код лучше, чем RyuJIT? NET IL to highly optimized native code by using LLVM» — вы точно не захотите пропустить это!
Эти и другие вопросы будут рассмотрены на докладе «Behind the burst compiler, converting .

Судя по всему, на эту роль отлично подходит «Системные метрики: собираем подводные камни». Хотелось бы закончить описание этой категории чем-нибудь таким, из чего можно мгновенно извлечь непосредственную пользу. Евгений Пешков из компании Контур расскажет, как одолеть метрики: чем они между собой различаются, что делать с перформансными проблемами в Process и PerformanceCounter, как вообще внутри устроены Performance Counters и что из этого следует и так далее.

NET», на конференции DotNext Piter 2018 занял второе место. Предыдущий доклад Евгения, «Особые исключения в . В нём рассматриваются особенности каждого типа исключений, например, StackOverflowException, ThreadAbortException, AccessViolationException и OutOfMemoryException, которые возникают при ошибках на уровне операционной системы или рантайма.

Видеозапись «Особые исключения в .NET»

На самом деле, в программе достаточно и других категорий. После наших анонсов иногда может создаться впечатление, что DotNext — это какой-то сплошной хардкор для низкоуровневых разработчиков. Выбирая, на какой доклад дальше идти, обращайте на них внимание. Внимательно взгляните на программу — рядом с большинством докладов есть тэги. Но взгляните, сколько есть общечеловеческих тем, которые можно применить прямо сейчас! Хардкор — это тэги про перформанс и детали работы компилятора, рядом с ними стоит говорящий значок с «козой».

То, что одним кажется гениальной идеей, для других звучит как полный бред и наоборот. Между тем, найти отличные доклады, посвященные «хорошим практикам» и «архитектуре» — очень сложная штука. И что, что это может значить? У докладчика в компании сделали определённую архитектуру систему, а у нас — по другому? К счастью, существует набор тем, которые можно обсуждать не только из соображений вкусовщины.

Во-первых, это области, в которых очевидно творится беда. Каждый раз, когда вы летите на самолёте, хотите послушать коллекцию музыки, и один известный российский облачный сервис говорит — это хорошо, что вы закачали себе коллекцию на встроенный диск и перешли в оффлайн-режим, но нельзя ли проверить лицензию? До проверки лицензии десять километров по вертикали. На следующий раз вы качаете всё во Hi-Res на встроенный диск и собираетесь слушать приложением-плеером. И где-то посредине полёта честно купленный плеер спрашивает — всё хорошо, но я забыл проверить лицензию и докачать кой-чего. Докачаешь через десять километров по вертикали. С точки зрения разработчика это выглядит ещё более адово, ведь многие привычные фреймворки совершенно не подразумевают отсутствия сетевого соединения. В каких-то случаях приходится писать много уродливых вещей типа дублирующего кода для непосредственного и кэширующего чтения. Теперь множим всё это на кроссплатформу и остаемся у разбитого корыта. Или это так кажется вначале? Напишите в комментариях. На DotNext же будет замечательный доклад на эту тему, «Creating airplane mode proof Xamarin applications» от Gerald Versluis, которого вы можете знать по многочисленным выступлениям и блогпостам и парочке книг. Несмотря на название, этот доклад будет интересен даже тем людям, которые не знакомы с Xamarin.

Одна из неугасающих битв — TDD vs TestLast. Есть вечные темы, точного ответа на которые пока не найдено, но с каждым годом понимание сильно растёт. Мы даже сделали специальную конференцию про тестирование, Heisenbug. Начнем с того, что много у кого есть проблемы с тестированием вообще, на уровне процессов — в мире deadline driven development особо не развернёшься. Несмотря на всю гениальность, оно так и не захватило мир, чему способствует ряд факторов. У программистов всё ещё сложней — TDD придумали где-то в 99 году как часть Extreme Programming. У этого подхода тоже есть как преимущества (гораздо проще вписывается в дедлайны), так и ряд очевидных недостатков. В обычной жизни получается даже не Test-First, а самое настоящее Test-Last. Она была написана в 2014 году. Помните нещадно хайпанувшую статью «TDD is Dead» от создателя Ruby on Rails? А как вы сами относитесь к этому вопросу? Прошло 4 года, и маятник не остался на месте. Александр подробно остановится на всех этих подходах и рассмотрит их применимость на конкретных достаточно сложных примерах. На DotNext будет «Test Last, Test First, TDD: когда применять тот или иной подход» — доклад с говорящим названием от Александра Кугушева.

Да, мы не любим об этом говорить, но иногда глупейшие вещи приводят к крушению даже самых прочных, построенных навечно проектов. С этим докладом перекликается ещё один — «Pragmatic unit testing» Владимира Хорикова, специалист другого вида, эксперт по спасению огромных энтерпрайзных легаси-проектов. Все мы знаем кучу практик, но на длинной дистанции не все практики одинаково полезны. Один из технических факторов долгосрочного успеха технологических компаний — правильные юнит-тесты. Кстати, у Владимира есть отличный блог в котором он разбирает самые интересные архитектурные задачи. Это доклад не для новичков — он для тех, кто умеет писать тесты и хочет вывести своё понимание на новый уровень. Чтиво крайне рекомендуемое как начинающим джуниорам для просветления, так и прожжённым сеньорам для систематизации.

Игорь — это человек, который, как представитель компании Контур, побывал почти на всех наших последних конференциях. В разделе про хорошие практики хочется отметить ещё один доклад — «Как выжить под нагрузкой: отказоустойчивый сервер, умный клиент» Игоря Луканина. К интервью с Игорем можно было не готовиться специально — мы задавали ему любые вопросы, и он отвечал практически на всё. Мы с phillennium неоднократно брали у него интервью и быстро заметили, что он способен дать глубокий и точный ответ на огромное количество практических вопросов. И вот оно свершилось. Кроме самого главного вопроса: когда ты придёшь к нам на конференцию как докладчик? Нет никаких сомнений, что именно так и будет, и это дорогого стоит. В описании доклада сказано просто: «Вы узнаете из доклада, как создавать такие микросервисы и проводить нагрузочное тестирование, чтобы убедиться, что они выдерживают нагрузку». NET'а в России. В конце концов, инфраструктура Контура — это, наверное, самый крупный продакшн . В любом случае, вы всегда сможете задать дополнительные вопросы Игорю в дискуссионной зоне.

И вот наконец наша последняя на сегодня категория — архитектура. Многие из нас помнят статью Джоэля Спольского «Don’t Let Architecture Astronauts Scare You». Если не читали — посмотрите, с тех пор особо ничего не изменилось. «Помните, что любители архитектуры обычно решают проблемы, которые они думают, что можно решить. Совсем не те, которые решать полезно» — напоминает нам Спольский. Наши «архитектурные» доклады подбираются на общих основаниях: они должны иметь конкретную практическую полезность, конкретную целевую аудиторию, внятным образом доносить мысли всего за сорок минут, отведённых на доклад. Несмотря на внешнюю простоту таких требований, проходят их далеко не все заявки.

Грега Янга мы уже обсудили в самом начале статьи. Итак, кто у нас на этот раз? Это докладчик «вне категорий», на которого стоит сходить уже просто потому, что это Грег.

Вагиф — известный докладчик и член программного комитета DotNext. Вагиф Абилов (VagifAbilov) приедет с докладом «Жизнь акторов в кластере: зачем, когда и как». В этот раз будет мощный доклад про акторную модель, Akka и границы их применимости. Кстати говоря, к докладу участника ПК предъявляются особо высокие требования — это должен быть пример того, как рассказывать хорошие архитектурные доклады. Понятно, что можно рассказать больше, но это сложно сделать без спойлеров. Будем обсуждать масштабирование и основные шаблоны кластерных решений. Все решения не являются каким-то полётом мысли астронавта, а проверены на опыте Норвежской вещательной корпорации (NRK).
Просто приходите на доклад и узнайте всё это самостоятельно.

Вагиф не сразу был членом ПК, а начал как спикер на предыдущих DotNext.

Три видеозаписи предыдущих докладов

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

Сделает обзор типовых задач и подходов, разберет плюсы и минусы. В докладе «Быстрорастворимое проектирование» Максим Аршинов расскажет о критериях хорошего кода и плохого кода, как и чем его измерять. Максим — как вы уже догадались, известный хаброавтор @marshinov. В конце даст рекомендации и best practices по проектированию веб-приложений. То есть это доклад человека, побывавшего в проблеме «с обеих сторон баррикады»: и со стороны обучения новым технологиям, и со стороны использования в реальном бизнесе. Он соучредитель казанской аутсорс-компании «Хайтек Груп» и кроме ведения бизнеса преподает в Высшей школе информационных технологий.

Вы можете знать Максима по предыдущему выступлению на DotNext в Питере

Алексей Мерсон с докладом «Domain-driven design: рецепт для прагматика» раскроет нам суть DDD. Ну и наконец, последний доклад в сегодняшнем обзоре. Кто знает — узнает лучше. Точней, кто не знает — узнает. Богатый личный опыт позволяет рассказывать Алексею сложные вещи простым и понятным языком.

Вы уже могли видеть одно из его выступлений на встрече сообщества SpbDotNet

Билеты всё ещё можно приобрести на официальном сайте конференции. Напоминаем, что DotNext 2018 Moscow пройдет уже совсем скоро — 22-23 ноября в Конгресс-парке «Рэдиссон Ройал Москва».

А еще у наших друзей DevZen Podcast недавно вышел выпуск с ПК DotNext, можно послушать на досуге.


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

Получаем музыку Вк через сторонний API

В этот раз дело начиналось после закрытия методов audio в методе execute. Я решил посмотреть, как получают музыку сайты, которые предоставляют возможность ее скачать. Меня заинтересовал сайт vrit.me. Я залез во вкладку network и увидел интересный запрос: То есть, можно ...

Все, что нужно знать о стрессе и сильных эмоциях

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