В июне в Петербурге прошла третья по счету конференция DotNext, а уже через месяц в Москве пройдет четвертая — DotNext 2015 Moscow. Видеозаписи всех докладов и круглых столов питерской конференции мы опубликовали отдельным плейлистом на YouTube. Ну а чтобы вы не теряли время попусту и сразу начинали с самого сладкого — я заморочился с различной (не очень сложной) аналитикой и разобрал для вас десяток топовых докладов, тех, которым участники конференции поставили наивысшие оценки.
Как всегда, для наших оценок мы используем российскую академическую шкалу:
В этом посте я коротко расскажу о докладах, занявших в нашем рейтинге места с шестого по десятое. И начнем мы, как всегда, с конца.
Михаил Самарин, 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 в России практически не рассказывают, будет особенно интересно его послушать. Так что ждем анонса.
Дмитрий Иванов, JetBrains — Сказки о преждевременной оптимизации
Средняя оценка: 4.26
В последние годы Дмитрий — главный человек по производительности решарпера. Поэтому он более чем в праве порассуждать о производительности — достаточно посмотреть, насколько быстрее работает ReSharper от версии к версии (не забывайте, что перфоманс процессоров особо не растет в последние годы).
Первый из сильных тезисов доклада: если ваше приложение существует довольно давнои вы не идиоты, то в вашем приложении нет узких мест. По крайней мере тех, которые видно с помощью профилировщика — иначе эти места давно уже были бы исправлены. Соответственно, в опытных командах на больших проектах профиль как правило, размазан по всему приложению, и оптимизации с помощью профилировщика дает буквально 1-2 процента прироста производительности в хорошем случае.
Отсюда следует второй сильный (но и довольно спорный по своей формулировке тезис): профилирование — это трата вашего времени и денег, поскольку оно не прибавляет функциональной ценности вашему продукту. Поэтому имеет смысл писать код так, чтобы профилировать не приходилось. А для этого нужны некоторые знания, которыми Дмитрий и поделился в процессе доклада.
Технически доклад получился довольно сильным, было озвучено несколько интересных проблем и подходов. Лично у меня есть одно существенное замечание к докладу и связано оно с некоторым профессиональным искажением, которое я некоторое время назад стал замечать у ребят из решарпера.
Как известно, ReSharper — один из самых больших и сложных дотнет-проектов. С точки зрения перфоманса у него есть одно очень важное свойство: это клиентское дектопное приложение с большим количеством функциональности. Поэтому появляется ряд чисто клиентских проблем:
Из плюсов — обзор универсальных перфомансных вопросов:
На декабрьском DotNext Дмитрий вместе с Ромой Беловым собираются сделать доклад о современных тенденциях в языках программирования, сравнят новый C# и Kotlin. Поскольку за годы работы в JetBrains эти парни накопили мощную экспертизу именно по языкам (не стоит забывать, что IDE — это половина компилятора, весь его фронт-енд), то должно получиться довольно интересно. Хотя, признаюсь честно, хайп вокруг Котлина лично меня уже немного утомил.
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 он знает уже вообще всё и ему эта тема слегка поднадоела.
Круглый стол «Нужна ли Петербургу .NET User Group?»
Средняя оценка: 4.30
Круглые столы на питерском DotNext — это эксперимент. Мы знаем, что техническая публика не всегда позитивно воспринимает «болтовню», поэтому долго думали, делать ли круглые столы. Буквально в дни питерской конференции Михаил Щербаков запустил SPb .NET Community и автоматически круглый стол по вопросам коммьюнити получил вполне прикладной смысл. Как развивать? Куда двигаться? Как подбирать доклады? Как делать встречи «за недорого»?
Я сам уже почти четыре года занимаюсь вопросами Community и User Group, поэтому с интересом взялся модерировать дискуссию. В качестве экспертов у нас участвовали:
Среди озвученных проблем:
Кто интересуется организацией мероприятий — публичных или внутрикорпоративных — обязательно посмотрите. Кроме того, обязательно посмотрите и те, кто еще не выступал публично, но думает начать.
Никита Цуканов, 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 балла
- нормально — 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 от версии к версии (не забывайте, что перфоманс процессоров особо не растет в последние годы).
Первый из сильных тезисов доклада: если ваше приложение существует довольно давно
Отсюда следует второй сильный (но и довольно спорный по своей формулировке тезис): профилирование — это трата вашего времени и денег, поскольку оно не прибавляет функциональной ценности вашему продукту. Поэтому имеет смысл писать код так, чтобы профилировать не приходилось. А для этого нужны некоторые знания, которыми Дмитрий и поделился в процессе доклада.
Технически доклад получился довольно сильным, было озвучено несколько интересных проблем и подходов. Лично у меня есть одно существенное замечание к докладу и связано оно с некоторым профессиональным искажением, которое я некоторое время назад стал замечать у ребят из решарпера.
Как известно, 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 и хайп вокруг микросервисов, идеально описанный вот в этом знаменитом твите:
WE SPENT 18 MONTHS MIGRATING FROM A MONOLITH TO MICROSERVICES
RESULT:
- GITHUB GETS PAID FOR MORE PRIVATE REPOS
- FIND/REPLACE IS HARDER
— PHP CEO (@PHP_CEO) 30 мая 2015
Как справедливо заметил в комментариях кто-то из участников, доклад будет полезен тем разработчикам, которые уже осознали, что знания и инструмент — разные вещи. И использовать их надо по-разному.
Как всегда, некоторые участники отметили, что #МногоВоды и #ХочетсяБольшеКонкретики. Парни, это кейноут! Привыкайте, что после кейноута у вас будет целый день конкретики. У открывающих кейноутов есть вполне понятная функциональность с точки зрения динамики конференции и вполне конкретные требования:
- кейноут должен разбудить тех, кто не выспался
- кейноут должен настроить всех на одну волну
- кейноут должен задать тон всей остальной конференции
Со всеми этими задачами Дино справился блестяще.
Через месяц в Москве Дино сделает два доклада про Domain Driven Design — теме, которой оно особенно интересуется в последние годы:
- DDD: Where’s the Value and What’s in It for Me?
- Hands-on Experience: What It Means to Design a Domain Model
Читаешь анонсы — и снова на ум приходят 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 — как они там у себя
Обзор лучших пяти докладов я сделаю в следующем посте. Ну а в комментариях мне, как всегда, было бы очень интересно услышать ваше мнение по поводу перечисленных выше докладов — что понравилось, что не понравилось, и о чем хотите услышать через месяц на DotNext 2015 Moscow.
Ссылки
- материалы DotNext 2015 Piter — видео и презентации
- DotNext 2015 Piter на YouTube
- грядущая DotNext 2015 Moscow
UPD: и приходите в понедельник на очередную встречу питерского .NET Community! На этот раз в гостях у yu5k3 и компании выступить DreamWalker с большим докладом «Распространённые ошибки оценки производительности .NET-приложений». Подробности и регистрация тут.
tsafin
[Хороший твиттер экаунт @PHP_CEO! Подписался, спасибо!]
23derevo
в презентациях Дино всегда много интересных рефералов :)