В июне в Петербурге прошла третья по счету конференция DotNext, а уже через месяц в Москве пройдет четвертая — DotNext 2015 Moscow. Видеозаписи всех докладов и круглых столов питерской конференции мы опубликовали отдельным плейлистом на YouTube. Ну а чтобы вы не теряли время попусту и сразу начинали с самого сладкого — я заморочился с различной (не очень сложной) аналитикой и разобрал для вас десяток топовых докладов, тех, которым участники конференции поставили наивысшие оценки.

Как всегда, для наших оценок мы используем российскую академическую шкалу:
  • плохо — 2 балла
  • нормально — 3 балла
  • хорошо — 4 балла
  • отлично — 5 баллов

В этом посте я коротко расскажу о докладах, занявших в нашем рейтинге места с шестого по десятое. И начнем мы, как всегда, с конца.




10 место


Михаил Самарин, Futurice — Универсальные приложения для Windows 10
Средняя оценка: 4.19



Михаил — не только бизнес-директор финской компании Futurice, но еще и трижды Microsoft MVP, и поэтому имеет право выступать на конференциях чуть ли ни от имени Microsoft. Так получилось и на этот раз — Михаил выступил с обзорным докладом о том, как с выходом новой версии .NET и Windows 10 изменилась разработка под различные девайсы.

Как и было обещано, доклад получился обзорным. Сначала Михаил рассказал про инструменты разработки — Visual Studio 2015 и различных лицензиях на нее, Microsoft Expression Blend, изменениях в VS, которые появились для удобства разработки под мобильные устройства. Дальше речь пошла о новой схеме «версионирования» Windows, универсальных приложениях и решениях, которые принимает рантайм в зависимости от платформы, на которой выполняется приложение (теперь единый солюшен на все платформы, а не по одному для каждой). После этого речь пошла про различные расширения платформы и того, как система сборки работает с ними. Ну и ближе к концу речь пошла про адаптивный UI, физические и effective пиксели (теперь рекомендуется игнорировать физическое разрешение экрана, а использовать «эффективные» пиксели).



На московском DotNext Михаил обещает сделать доклад об использовании аппаратных API, доступных на мобильных платформах. Поскольку про мобильную разработку на .NET в России практически не рассказывают, будет особенно интересно его послушать. Так что ждем анонса.




9 место


Дмитрий Иванов, JetBrains — Сказки о преждевременной оптимизации
Средняя оценка: 4.26



В последние годы Дмитрий — главный человек по производительности решарпера. Поэтому он более чем в праве порассуждать о производительности — достаточно посмотреть, насколько быстрее работает ReSharper от версии к версии (не забывайте, что перфоманс процессоров особо не растет в последние годы).

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

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

Технически доклад получился довольно сильным, было озвучено несколько интересных проблем и подходов. Лично у меня есть одно существенное замечание к докладу и связано оно с некоторым профессиональным искажением, которое я некоторое время назад стал замечать у ребят из решарпера.

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

  • профиль размазан по функциональности, поэтому оптимизировать приходится сразу сотни юзкейсов. В итоге профилировщик действительно становится практически бесполезен — профилирование сотен юзкейсов действительно съедает кучу времени. Именно поэтому лучшей тактикой тут является вложение времени в собственный апгрейд в плане изучения перфомансных паттернов
  • сфокусированность на отзывчивости UI-потока. Отсюда всякие трюки типа Interruptible Read-Write Lock
  • группировка ивентов — прием, хорошо известный со времен Java AWT, где это еще 15 лет назад было реальной проблемой

Из плюсов — обзор универсальных перфомансных вопросов:

  • GC и Memory Traffic
  • JIT и некоторые особенности его работы
  • полезные инструменты для анализа (в районе 23ей минуты)
  • создание собственных кэшей. Особенно актуально с приходом SSD.
  • локальность данных — приемы, связанные с последовательным размещением данных в памяти. Performance Boost от префетча, работы процессоров с кэш-линиями и прочие советы, актуальные и универсальные для современных процессорных архитектур



На декабрьском DotNext Дмитрий вместе с Ромой Беловым собираются сделать доклад о современных тенденциях в языках программирования, сравнят новый C# и Kotlin. Поскольку за годы работы в JetBrains эти парни накопили мощную экспертизу именно по языкам (не стоит забывать, что IDE — это половина компилятора, весь его фронт-енд), то должно получиться довольно интересно. Хотя, признаюсь честно, хайп вокруг Котлина лично меня уже немного утомил.




8 место


Dino Esposito — The Courage of Knowing Things (and not being a geek)
Средняя оценка: 4.28



Дино прекрасен. Internet of Geeks как способ развития технологий в 21ом веке. Байки про собственную бабушку. Как всегда мощно, ярко, эмоционально. Таким и должен быть Keynote.

В первой части доклада Дино говорил про абстрактно-философские вещи, а в середине вдруг (внезапно для многих) перешёл к вполне конкретным технологиям типа ObsoleScience. DDD и Event Sourcing как современная модель работы (сильно пересекается со всякими Rx), подходы типа CQRS и хайп вокруг микросервисов, идеально описанный вот в этом знаменитом твите:



Как справедливо заметил в комментариях кто-то из участников, доклад будет полезен тем разработчикам, которые уже осознали, что знания и инструмент — разные вещи. И использовать их надо по-разному.



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

  • кейноут должен разбудить тех, кто не выспался
  • кейноут должен настроить всех на одну волну
  • кейноут должен задать тон всей остальной конференции

Со всеми этими задачами Дино справился блестяще.

Через месяц в Москве Дино сделает два доклада про Domain Driven Design — теме, которой оно особенно интересуется в последние годы:


Читаешь анонсы — и снова на ум приходят CQRS, Event Sourcing, Rx и все вот эти вещи. Видимо, про ASP.NET он знает уже вообще всё и ему эта тема слегка поднадоела.




7 место


Круглый стол «Нужна ли Петербургу .NET User Group?»
Средняя оценка: 4.30



Круглые столы на питерском DotNext — это эксперимент. Мы знаем, что техническая публика не всегда позитивно воспринимает «болтовню», поэтому долго думали, делать ли круглые столы. Буквально в дни питерской конференции Михаил Щербаков запустил SPb .NET Community и автоматически круглый стол по вопросам коммьюнити получил вполне прикладной смысл. Как развивать? Куда двигаться? Как подбирать доклады? Как делать встречи «за недорого»?

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

  • обозначенный выше Михаил Щербаков, эксперт по безопасности в .NET (выступал на DotNext дважды — тыц и тыц, будет выступать в декабре про WinDbg — тыц), лидер питерского .NET-сообщества, проводящего ежемесячные встречи
  • Дмитрий Нестерук, спец по C++ и .NET, который три года проводил встречи предыдущей питерской дотнет-тусовки, Alt.Net, а сейчас занимается миллионом вещей от финансовой математики до евангелирования в JetBrains.
  • Виталий Баум, который проводил встречи по .NET в Москве
  • Николай Чабановский, который нынче занимается развитием StackOverflow на русском языке
  • Андрей Дмитриев, наш программный директор, который много лет посвятил образованию программистов сначала в Питере (как преподаватель СПбГУ), так и в России. Нынче Андрей — программный директор всех наших конференций, спец по организации больших и малых ивентов, подготовке спикеров и т.д. и т.п.

Среди озвученных проблем:

  • зависимость юзергруппы от лидера. Лидеру надоело — сообщество развалилось.
  • лидер группы — часто главный спикер. Как привлекать больше спикеров
  • как находить спикеров
  • что по поводу .NET-групп думает Microsoft и как они подходят к партнерству с юзергруппами
  • как подготовить спикера. Многие хотели бы попробовать, но не умеют и боятся. Как им можно помочь?
  • мало дискуссий по .NET на русском языке. Надо развивать.



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




6 место


Никита Цуканов, Promarket — Написание масштабируемых и временами распределённых систем с Akka.NET
Средняя оценка: 4.33



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

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

В доклад Никита рассказал о самой модели акторах, ее преимуществах и недостатках, а так же о фреймворке Akka.NET — порте фреймворка Akka c JVM на .NET, мощнейшей и набирающей все большую популярность реализации модели акторов. Два с половиной миллионов акторов на 1 Гб в памяти, 50 млн сообщений в секунду на одной машине, борьба с GC и прочие вкусные вещи встретятся вам в этом докладе.



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

Кстати, про Docker летом уже рассказывал aatarasoff — как они там у себя упарываются крутят Docker на продакшене. Вышло довольно любопытно.




Обзор лучших пяти докладов я сделаю в следующем посте. Ну а в комментариях мне, как всегда, было бы очень интересно услышать ваше мнение по поводу перечисленных выше докладов — что понравилось, что не понравилось, и о чем хотите услышать через месяц на DotNext 2015 Moscow.

Ссылки




UPD: и приходите в понедельник на очередную встречу питерского .NET Community! На этот раз в гостях у yu5k3 и компании выступить DreamWalker с большим докладом «Распространённые ошибки оценки производительности .NET-приложений». Подробности и регистрация тут.

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


  1. tsafin
    12.11.2015 12:52
    +1

    [Хороший твиттер экаунт @PHP_CEO! Подписался, спасибо!]


    1. 23derevo
      12.11.2015 12:57

      в презентациях Дино всегда много интересных рефералов :)