Итак, кто же будет 9 декабря на DotNext 2016 Moscow? Смотрите под катом.
Главная проблема в поиске гуру-разработчиков заключается не в том, что многие из живут за рубежом. Сложность в том, что очень многие не хотят ехать в Россию. Шутка ли, у нас война, тирания и прочее: именно так им представляются Москва и Петербург. Однако лед можно растопить, и в этом нам помогают наши MVP-спикеры, которые, раз приехав на DotNext, остаются с нами надолго и часто рекомендуют коллегам приехать к нам.
Далеко за примерами ходить не нужно: Dino Esposito, Sasha Goldshtein и Андрей Акиньшин участвуют в DotNext уже не в первый и не во второй раз. Однако в этот раз программа интересна не ветеранами, а «новичками», среди которых:
- Rachel Reese / Jet.com
- Alex Thissen / Xpirit
- Filip W / Sonova
- Jesse Liberty / Liberty Associates, Inc.
Кроме того, у нас есть категория спикеров, у которых нет звания MVP. Почему? Потому что сотрудники Microsoft не могут получить такой статус. И здесь у нас есть прибавление: доклад Егора Богатова из команды Xamarin.
Что ж, новых гостей представили, давайте теперь посмотрим, о чем будем с ними беседовать. Начнем с того, что полегче, с кейноутов:
Dino Esposito – .NET Core: State of the art – своего рода продолжение доклада с питерского DotNext, дополненное и переосмысленное после полугода с момента релиза .NET Core 1.0:
Jesse Liberty, Liberty Associates, Inc.
What's new in C# 7?
Обзорный доклад последних особенностей C#6 и 7: оператор проверки на null, инициализаторы автоматически реализуемых свойств, поддержка выражений nameof, интерполяция строк и многих другие.
Джесси не только расскажет о том, что это такое, но и покажет примеры реализации в демках, которые покажут прикладную ценность новых фич.
Кроме кейноутеров, с большим обзором изменений в мире .NET выступит Alex Thissen из Xpirit, который расскажет о множестве платформ .NET, множестве компиляторов и рантаймов так, чтобы слушатели могли двигаться в ногу с Micosoft, дикими темпами двигающей свой продукт.
А что получат те, кто ждал хардкора?
Наверное, наш самый мозголомный .NET-докладчик и по совместительству лучший спикер DotNext 2016 Piter, Sasha Goldshtein, выступит с двумя докладами:
Squeezing the Hardware to Make Performance Juice: хардкорнее некуда, доклад построен вокруг получения максимума производительности из современного железа: речь пойдет о векторизации, параллельных вычислениях и архитектурах наборов команд процессоров последнего поколения. Чтобы понять, что из себя представляют доклады Саши, предлагаю вам посмотреть его доклад с совсем недавнего DotNext 2016 Piter (доклад публикуется в открытом доступе впервые, кстати):
Традиционно, второй доклад «WinDbg Superpowers for .NET Developers» будет посвящен DevTools: поговорим про скрипты и расширения WinDbg, позволяющие автоматизировать рутинные задачи; обсудим неизвестные расширения, которые позволяют выполнять реконструкцию x64стека, выводить выполняемые ASP.NET запросы и гонять LINQ-подобные запросы к объектам из .NET heap’а; кроме того, поговорим о тех фичах, которые следует использовать в коде, чтобы сильно упростить процесс дебаггинга.
Андрей DreamWalker Акиньшин из JetBrains продолжит доклад об арифметике .NET. В качестве тизера к докладу, Андрей прислал одну задачку – решения пишите прямо в комментариях и призывайте автора, чтобы он оценил ваш ответ :)
Что выведет следующий код:
var x = new List<double>();
x.Add(1e16);
x.AddRange(Enumerable.Repeat(1.0, 100));
Console.WriteLine("{0:N}", x.Sum());
Если при вычислении суммы возникают какие-нибудь проблемы, то можете ли вы предложить варианты их решения?
А для тех, кому показалось мало, милости просим посмотреть видеозапись доклада с Питерского DotNext:
Часто ли вы видите девушек-докладчиков в России (у нас-то на DotNext они есть, спасибо Юле Цисык:))?
А девушек-докладчиков MVP? Я увижу впервые!
Хотя если говорить о докладе Rachel Reese, нет никакого смысла делать акцент на том, что перед нами девушка: доклад будет посвящен построению реактивных сервисов в функциональном стиле. Одно слово: ждем!
Завершает наше MVP-шествие Filip W, который в своем докладе о C# Scripting расскажет о том, как и для чего можно применить C#-скриптинг в совершенно неожиданных местах: например, расширение приложений при помощи C#-скриптинга, встраивание REPL в приложение или браузер, или улучшенная сборка web-приложений и деплой в Azure.
Впрочем, что мы все об MVP, да об MVP? Довольно-таки долго мы пытались вытащить на DotNext ребят из StackOverflow (более 3-ех конференций, кажется) – все-таки у них и хайлоад, и перфоманс, да и разработчики их любят. И в этот раз с двумя докладами к спикерской команде присоединился Marco Cecconi из Лондонского офиса SO:
- об архитектуре, методологиях и coding principles StackOverflow
- о производительности обработки миллионов запросов и работе тегов SO.
Ну и какой же DotNext без С++?
В этот раз о работе с C++ кодом расскажет Егор Богатов в своем докладе «C++ через C#»: речь пойдет о том, как сгенерировать врапперы на C# для большого проекта на С++, в кратчайшие сроки полностью повторив объектную модель оригинального кода… при этом сделать это все кроссплатформенным с помощью Xamarin.
В общем, как видите, новых лиц полно, а спикеры – все, как на подбор эксперты мирового уровня. Такого DotNext у нас правда не было. Если хотите посмотреть, кто еще из спикеров подтвердил участие, милости просим на наш сайт: там уже есть и программа, и все условия регистрации.
P.S. Если вдруг кто посчитал MVP в посте, то их получилось 7, а не 8, как в заголовке. Ответ прост: 8 MVP – это Михаил yu5k3 Щербаков, член нашего Программного комитета и лидер SPB .NET Community, недавно получивший статуэтку MVP, с чем мы его от всей души поздравляем. Мы пока не получили заявку на доклад от Михаила, однако надежды не теряем:)
Комментарии (25)
Shablonarium
17.08.2016 23:56+1«Оператор проверки на null» — это вот правда нужно?
DreamWalker
18.08.2016 02:04+2Это очень клёвая фича. Представьте, что у вас есть некое свойство
A
, у которого есть свойствоB
, у которого есть свойствоC
, у которого есть свойствоD
, у которого вы хотите вызвать методFoo
. Но вот проблема: по пути к методуFoo
одно из свойствA
,B
,C
,D
может оказаться равнымnull
. Раньше приходилось писать:
if (A != null && A.B != null && A.B.C != null && A.B.C.D != null) A.B.C.D.Foo();
В C#6 вы можете написать просто
A?.B?.C?.D?.Foo();
Материал для дополнительного чтения:
Shablonarium
18.08.2016 18:58Я имел ввиду — кому-то еще нужно об этом отдельно рассказывать? И притом на конференции за большие деньги?
real_ales
18.08.2016 21:30У Джесси это будет кейноутный доклад, который по замыслу не должен быть тяжелым и технически сложным. Хардкора у нас в технических слотах хватает. :)
Ну а если мой коммент соберет 10 лайков, то я попрошу Джесси не рассказывать про оператор проверки на null" на кейноуте :)
А если серьезно, то есть много девелоперов, которые не особо следят за прогрессом и им это может быть полезно.
timiskhakov
19.08.2016 13:13Представьте, что у вас есть некое свойство A, у которого есть свойство B, у которого есть свойство C, у которого есть свойство D, у которого вы хотите вызвать метод Foo.
Минутку, а как же закон Деметры?DreamWalker
19.08.2016 13:19+1Увы, законы реальной жизни оказываются сильнее, такой код систематически появляется в совершенно разных проектах.
Но даже если бы не появлялся, то
A?.Foo();
всё равно выглядит лаконичнее, чем какое-нибудь
if (A != null) { A.Foo(); }
PsyHaSTe
19.08.2016 13:22+1Закон Деметры слабее нежелания писать врапперы на врапперы на врапперы, только чтобы делегировать методы в какие-то внутренние сущности.
jbaruch
18.08.2016 06:06+1О! Груви!!!
DreamWalker
18.08.2016 08:42+1Если фича хорошая, то она часто появляется сразу в нескольких хороших языках программирования. А null propagation operator — хорошая фича, поэтому мы можем её наблюдать не только в C#6 и Kotlin, но ещё и в Groovy. =)
jbaruch
18.08.2016 08:59+1Ну, вот про «сразу в нескольких» это ты хорошо пошутил, если учесть что в Груви они появилась десять лет назад, а в С# и в Котлине сейчас. Есть инноваторы, и есть последователи, и не надо их в одну кучу мешать.
DreamWalker
18.08.2016 09:29+1Да не пытаюсь я Груви обидеть, не волнуйся так. =) Чудный язык, в нём очень давно появилось много разного и хорошего, с этим никто не спорит. Я просто хотел сказать, что это абсолютно нормально, когда хорошие фичи переходят из одних языков в другие.
jbaruch
18.08.2016 18:27это абсолютно нормально, когда хорошие фичи переходят из одних языков в другие
Всячески согласен и приветствую.
PsyHaSTe
19.08.2016 00:44Чет на задачки никто не отвечает. Попробую я
Скрытый текстТ.к. у нас плавающая точка, то все суммы будут округляться до самого числа, в результате ответ будет 1e16. В принципе, если поменять местами AddRange и Add эта проблема может решиться.PsyHaSTe
19.08.2016 01:28А вообще печально, рассказывать собираются про C# 6.0 ( который по-моему все уже знают), а вот про C# 7.0 мало чего слышно. Да, на гитхабе время от времени обновляют страничку «Strong interest» (хотя изменений в ней не видно, но дата последнего редактирования меняется), хотя там тоже по сути ничего супер инновационного нет (кроме match expression). Заинтересовали было non-null reference types, но и там молчок, непонятно, идея будет реализована или нет. Я понимаю, что от спикеров инсайдерскую информацию не требуют, но это реально то, что интересно. А рассказывать про ?., про который 2 года назад уже все обсудили не так уж сильно хочется.
Nagg
19.08.2016 01:42+2По фичам 7ого шарпа можно просто отслеживать эту доку https://github.com/dotnet/roslyn/blob/master/docs/Language%20Feature%20Status.md весь процесс разработки и обсуждения розлина давольно открытый для сообщества.
DreamWalker
19.08.2016 08:47+2@PsyHaSTe, направление мысли правильное. А можно что-нибудь сделать без модификации входных данных? Другими словами, нужно написать собственную функцию
Sum
, которая для любого набора чисел выдаст «хорошую» сумму.PsyHaSTe
19.08.2016 12:51Можно просто в обратном порядке массив пройти. Либо просто внутри Sum сначала сортировку сделать, если мы не делаем предположения о порядке элементов.
DreamWalker
19.08.2016 12:59+1Нет, предположения о порядке мы не делаем. Нам просто приходит набор double-чисел, нужно вернуть сумму.
Сортировка — мысль интересная, но не очень хорошая в плане производительности, сумма будет работать долго.
Можно ли что-нибудь придумать для произвольных входных данных, чтобы работало заO(N)
?PsyHaSTe
19.08.2016 13:21У меня с теорией алгортимов вообще беда, так что я вряд ли что-то толковое предложу. Можно только логически порассуждать. Например, что детерменированно без потерь мы можем складывать только целые числа, либо отсортированные даблы. Сортировку за O(N) провести мы не можем, оперировать с даблами как с лонгами — это особая С++ магия, в которую я не очень умею.
DreamWalker
19.08.2016 13:54Тогда приходите на нашу замечательную конференцию, в своём докладе я буду рассказывать о том, как же решать эту и многие другие проблемы без всякой C++ магии. =)
gotch
На Alex Thissen / Xpirit у вас двойная надежда?
ARG89
Не сразу понял, о чем речь. Пофиксил, спасибо!
gotch
:-) А представляете, если бы их было восемь, какая ответственность бы легла на Алекса.
Зато теперь Андрей из JetBrains занял достойное место.