Лучшие доклады конференции DotNext 2015 Piter. Часть 1 (Видео внутри)

    В июне в Петербурге прошла третья по счету конференция 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-приложений». Подробности и регистрация тут.
    • +10
    • 8,9k
    • 2
    JUG.ru Group 1 075,46
    Конференции для взрослых. Java, .NET, JS и др. 18+
    Поделиться публикацией
    Комментарии 2
    • +1
      [Хороший твиттер экаунт @PHP_CEO! Подписался, спасибо!]
      • 0
        в презентациях Дино всегда много интересных рефералов :)

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое