Конференция DotNext 2015 Moscow уже скоро! Мне посчастливилось быть в программном комитете этого замечательного мероприятия, так что я теперь в курсе закулисной деятельности: наблюдаю за общей организацией и помогаю готовить доклады. Организаторы долгими неделями трудятся с утра и до вечера, чтобы у вас была возможность на один день погрузиться в уникальную атмосферу: послушать крутые доклады, пообщаться с умными людьми, завести полезные знакомства, покушать вкусной еды, вдохновиться на великие свершения и просто хорошо провести время.
Впрочем, самым важным на конференции является не атмосфера, а контент. В этом году программа очень насыщенная: 22 докладчика (из которых 7 являются MVP) будут в 4 потока целый день рассказывать вам про .NET. Темы будут самые разные: есть доклады про новинки .NET-мира, про современные подходы и тенденции разработки ПО, про использование хороших библиотек/инструментов и про много чего ещё. Но моя любимая тема — это внутренности .NET, потроха рантайма и прочий хардкор. Мне кажется, что рано или поздно каждый сеньор разработчик приходит к осознанию того, что для разработки действительно сложных продуктов явно не помешает понимать, что же происходит под капотом наших программ. Увы, разбираться с этим самостоятельно зачастую долго и сложно: слишком уж много всего надо изучить. Поэтому с каждой следующей конференцией DotNext мы повышаем градус хардкора и пытаемся умудриться в течение одного дня загрузить в оперативную память разработчиков максимальное количество интересной и полезной информации о том, что же на самом деле делают наши приложения и как их лучше писать.
По долгу служебных обязанностей я уже послушал почти все доклады (каждый докладчик подвергается серии изнурительных прослушиваний, тренировок и тренингов с целью повышения качества материала и изложения), так что хорошо представляю, что же вас ждёт через две недели. А сегодня мне бы хотелось немного поговорить про доклады с тэгом hardcore. Если вы любите разбираться с рантаймом также, как люблю это я, то крайне рекомендую посетить шесть нижеприведённых докладов.
Я очень рад, что в этом году мы смогли заполучить такого докладчика. Саша — автор очень клёвой книжки под названием «Pro .NET Performance», автор крутых курсов на Pluralsight, блоггер (беглого взгляды на его посты хватит для осознания того, что ему есть, о чём рассказать), MVP и просто замечательный человек. В этом году он привезёт нам сразу два доклада, один из которых будет про векторизацию. Тема в .NET-мире не такая уж и раскрученная, т.?к. до недавнего времени не было нормальных возможностей для этой самой векторизации. Но теперь у нас есть .NET 4.6 и RyuJIT, которые позволяют резко поднять эффективность многих алгоритмов. Знания эти весьма полезные, так что если у вас руки ещё не дошли до того, чтобы нормально разобраться с
В Java-мире люди любят обсуждать Java Memory Model. На эту тему мне очень нравятся выступления Алексея Шипелёва и доклады Алексея Фёдорова. Я очень долго ждал, когда же в .NET-мире подобная тема начнёт популяризироваться. И наконец-то дождался! К нам придёт Карлен szKarlen Симонян и прочитает восхитительный доклад на эту тему. Неделю назад он выслал мне свои слайды, с тех пор я каждый вечер перед сном открываю их, перечитываю и радуюсь.
Могу сказать, что там много слов типа race condition, acquire/release, volatile, store buffer, data alignment, spurious wakeup, false sharing, lock-free, atomics.net и не только. Во время доклада Карлен пополнит приведённый список важных терминов популярными объяснениями, а также приведёт показательные примеры, иллюстрирующие сложность современных процессоров. Уровень детализации материала и количество увлекательных фактов зашкаливают, так что если вам доводится работать больше, чем в один поток, то посещение доклада относится к разряду обязательных.
Generic-классы активно используются практически в любом .NET-проекте. Но многие ли из вас задумываются о том, что же скрывается за волшебной конструкцией
Слушать и читать про происходящее внутри ваших программ безусловно полезно, но ещё полезнее брать собственный код и начинать самостоятельно лезть внутрь, изучая ассемблерные листинги, таблицы методов и внутренние структуры сборщика мусора. Дело это сложное, но проведённые в дебаггере ночи дают уникальный опыт, который другими путями не приобрести. Если вы уделите данному занятию должное внимание, то впоследствии начнёте намного лучше понимать происходящее и сможете вылавливать хардкорные ошибки самого рантайма за вменяемое время. Разумеется, для анализа внутренностей .NET необходим хороший и удобный инструмент. Увы, такого пока не изобрели, поэтому приходится использовать WinDbg. Я помню, как я познакомился с этой программой первый раз. Я открыл WinDbg, посмотрел на него, WinDbg посмотрел на меня, после чего каждый пошёл своей дорогой. В последствии мне пришлось вернуться в этому чудо-инструменту, но первые дни приходилось много страдать. Жаль, не было у меня человека, который бы мне всё рассказал и показал.
А вот у вас такой человек есть! На DotNext приедет Михаил Щербаков и расскажет нам, как же совладать с WinDbg и насколько крутые штуки можно делать с его помощью. Миша — постоянный спикер на разных .NET-конференциях (любит рассказывать про безопасность приложений), организатор .NET-митапов в Петербурге, автор проекта IntelliDebugger и крутой .NET-разработчик. Если во время доклада вы не осознаете все тонкости работы с WinDbg, то Мишу можно будет подкараулить в кулуарах и заставить показать рассказанное на примерах.
DLR — тема специфическая, далеко не все ей занимаются. Но если вам всё-таки доводится писать ключевое слово
Я тоже выступлю с докладом, буду рассказывать про то, как делать ваши приложения супер-быстрыми. Мне довелось выступать по данной теме на прошлом DotNext в Петербурге, а в этот раз я продолжу свою любимую тему и целый час буду травить разные весёлые истории про производительность.
Все сюжеты основаны на реальных событиях: это проблемы, с которыми сталкивался лично я, мои коллеги и программисты с просторов интернета. Буду рассказывать как про старые темы вроде бенчмарков (вот тут есть свежее видео про то, почему бенчмарки сложны), так и про новые вроде blittable-типов. Историй у меня много, но для доклада я попытался выбрать самые простые и показательные, чтобы за отведённое время пройтись по самым разным темам и познакомить вас с удивительным миром микрооптимизаций.
Резюмирую: конференция получается очень крутой и хардкорной. Если у вас есть возможность, то настоятельно рекомендую посетить DotNext 2015 Moscow, других подобных конференций вы не найдёте!
Впрочем, самым важным на конференции является не атмосфера, а контент. В этом году программа очень насыщенная: 22 докладчика (из которых 7 являются MVP) будут в 4 потока целый день рассказывать вам про .NET. Темы будут самые разные: есть доклады про новинки .NET-мира, про современные подходы и тенденции разработки ПО, про использование хороших библиотек/инструментов и про много чего ещё. Но моя любимая тема — это внутренности .NET, потроха рантайма и прочий хардкор. Мне кажется, что рано или поздно каждый сеньор разработчик приходит к осознанию того, что для разработки действительно сложных продуктов явно не помешает понимать, что же происходит под капотом наших программ. Увы, разбираться с этим самостоятельно зачастую долго и сложно: слишком уж много всего надо изучить. Поэтому с каждой следующей конференцией DotNext мы повышаем градус хардкора и пытаемся умудриться в течение одного дня загрузить в оперативную память разработчиков максимальное количество интересной и полезной информации о том, что же на самом деле делают наши приложения и как их лучше писать.
По долгу служебных обязанностей я уже послушал почти все доклады (каждый докладчик подвергается серии изнурительных прослушиваний, тренировок и тренингов с целью повышения качества материала и изложения), так что хорошо представляю, что же вас ждёт через две недели. А сегодня мне бы хотелось немного поговорить про доклады с тэгом hardcore. Если вы любите разбираться с рантаймом также, как люблю это я, то крайне рекомендую посетить шесть нижеприведённых докладов.
Саша Гольдштейн: The Vector in Your CPU: Exploiting SIMD for Superscalar Performance
Я очень рад, что в этом году мы смогли заполучить такого докладчика. Саша — автор очень клёвой книжки под названием «Pro .NET Performance», автор крутых курсов на Pluralsight, блоггер (беглого взгляды на его посты хватит для осознания того, что ему есть, о чём рассказать), MVP и просто замечательный человек. В этом году он привезёт нам сразу два доклада, один из которых будет про векторизацию. Тема в .NET-мире не такая уж и раскрученная, т.?к. до недавнего времени не было нормальных возможностей для этой самой векторизации. Но теперь у нас есть .NET 4.6 и RyuJIT, которые позволяют резко поднять эффективность многих алгоритмов. Знания эти весьма полезные, так что если у вас руки ещё не дошли до того, чтобы нормально разобраться с
System.Numerics.Vectors
, то на этом докладе вы явно узнаете много нового и полезного.Карлен Симонян: Атомарные операции и примитивы в .NET
В Java-мире люди любят обсуждать Java Memory Model. На эту тему мне очень нравятся выступления Алексея Шипелёва и доклады Алексея Фёдорова. Я очень долго ждал, когда же в .NET-мире подобная тема начнёт популяризироваться. И наконец-то дождался! К нам придёт Карлен szKarlen Симонян и прочитает восхитительный доклад на эту тему. Неделю назад он выслал мне свои слайды, с тех пор я каждый вечер перед сном открываю их, перечитываю и радуюсь.
Могу сказать, что там много слов типа race condition, acquire/release, volatile, store buffer, data alignment, spurious wakeup, false sharing, lock-free, atomics.net и не только. Во время доклада Карлен пополнит приведённый список важных терминов популярными объяснениями, а также приведёт показательные примеры, иллюстрирующие сложность современных процессоров. Уровень детализации материала и количество увлекательных фактов зашкаливают, так что если вам доводится работать больше, чем в один поток, то посещение доклада относится к разряду обязательных.
Александ Никитин: .NET Generics under the hood and a JITter bug for dessert
Generic-классы активно используются практически в любом .NET-проекте. Но многие ли из вас задумываются о том, что же скрывается за волшебной конструкцией
<T>
? Многие ли из вас ценят ту титаническую работу, которую каждодневно проделывает для нас JIT-компилятор, генерируя из удобочитаемых и лаконичных синтаксических конструкций тысячи ассемблерных инструкций? Если нет, то рекомендую сходить на доклад Александра. А ещё рекомендую почитать его блог, из него сразу становится понятно, что этот человек явно может многое рассказать про внутренности generic-классов.Михаил Щербаков: WinDbg в руках .NET разработчика
Слушать и читать про происходящее внутри ваших программ безусловно полезно, но ещё полезнее брать собственный код и начинать самостоятельно лезть внутрь, изучая ассемблерные листинги, таблицы методов и внутренние структуры сборщика мусора. Дело это сложное, но проведённые в дебаггере ночи дают уникальный опыт, который другими путями не приобрести. Если вы уделите данному занятию должное внимание, то впоследствии начнёте намного лучше понимать происходящее и сможете вылавливать хардкорные ошибки самого рантайма за вменяемое время. Разумеется, для анализа внутренностей .NET необходим хороший и удобный инструмент. Увы, такого пока не изобрели, поэтому приходится использовать WinDbg. Я помню, как я познакомился с этой программой первый раз. Я открыл WinDbg, посмотрел на него, WinDbg посмотрел на меня, после чего каждый пошёл своей дорогой. В последствии мне пришлось вернуться в этому чудо-инструменту, но первые дни приходилось много страдать. Жаль, не было у меня человека, который бы мне всё рассказал и показал.
А вот у вас такой человек есть! На DotNext приедет Михаил Щербаков и расскажет нам, как же совладать с WinDbg и насколько крутые штуки можно делать с его помощью. Миша — постоянный спикер на разных .NET-конференциях (любит рассказывать про безопасность приложений), организатор .NET-митапов в Петербурге, автор проекта IntelliDebugger и крутой .NET-разработчик. Если во время доклада вы не осознаете все тонкости работы с WinDbg, то Мишу можно будет подкараулить в кулуарах и заставить показать рассказанное на примерах.
Игорь Яковлев: Использование и устройство DLR
DLR — тема специфическая, далеко не все ей занимаются. Но если вам всё-таки доводится писать ключевое слово
dynamic
, то явно не помешает знать, что же оно означает и во что может превратиться обычное a + b
, если вы решили идти по пути динамической типизации. В этом случае вам обязательно нужно сходить на доклад Игоря: он расскажет про внутреннюю кухню данного подхода и про то, как он может вам пригодиться в жизни. А если вас за всю карьеру не посещала идея о том, что под .NET можно писать динамический код, то всё равно сходите: тема интересная и познавательная. Игорь не так давно уже рассказывал про DLR в Петербурге, а в Москву он приедет со значительно доработанной и улучшенной версией своего материала.Андрей Акиньшин: Продолжаем говорить о микрооптимизациях .NET-приложений
Я тоже выступлю с докладом, буду рассказывать про то, как делать ваши приложения супер-быстрыми. Мне довелось выступать по данной теме на прошлом DotNext в Петербурге, а в этот раз я продолжу свою любимую тему и целый час буду травить разные весёлые истории про производительность.
Все сюжеты основаны на реальных событиях: это проблемы, с которыми сталкивался лично я, мои коллеги и программисты с просторов интернета. Буду рассказывать как про старые темы вроде бенчмарков (вот тут есть свежее видео про то, почему бенчмарки сложны), так и про новые вроде blittable-типов. Историй у меня много, но для доклада я попытался выбрать самые простые и показательные, чтобы за отведённое время пройтись по самым разным темам и познакомить вас с удивительным миром микрооптимизаций.
Заключение
Резюмирую: конференция получается очень крутой и хардкорной. Если у вас есть возможность, то настоятельно рекомендую посетить DotNext 2015 Moscow, других подобных конференций вы не найдёте!