Всем привет, готов очередной анализ.
Сегодня мы будем смотреть репортаж не от JPoint, а от DotNext! Автор отчета – Андрей DreamWalker Акиньшина, а его выступление посвящено деталям реализации арифметики с плавающей запятой в .
NET: Слайды можно найти Здесь .
Disclaimer: о реализации арифметики рассказывает только сам отчет, а не сама статья.
Сюжет Здесь я должен сказать, что мне не очень нравятся головоломки.
Они требуют знания неясных уголков спецификации, что в реальной жизни обычно бесполезно.
Просто представьте, что вы поддерживаете код, написанный любителем головоломок.
Заметьте, что заставить человека самому подумать о чем-то важном, прежде чем говорить ему «как сделать правильно», в целом хорошо, он гораздо лучше запомнит результат. Но начать с сути — то есть выбрать знания, которые нужно передать людям, и проиллюстрировать их парадоксальной проблемой с простыми условиями — сложно.
Головоломкам зачастую проще взять те вещи, которые не очень критично запомнить, но никто не знает, и сделать из них чистое развлечение.
В общем, внимательный читатель легко проследит мою нелюбовь к жанру в этой статье.
Сюжетные ходы и актерская игра
Нет ли здесь противоречия: ассистенты выходят на сцену, чтобы создать иллюзию соревнования, но понятно, что ответы и линии перехода между заданиями известны заранее.Например, в 12:00-12:20 Юля утверждает, что приведение к целому — неправильная операция, и нужно использовать округление, и сразу появляется следующая задача, как раз на округление.
В таких ситуациях я бы изменил порядок задач так, чтобы тема, которая якобы «пришла в голову» помощнику, возникла не сразу, а чуть позже.
Для большей правдоподобности ассистенты иногда могли договариваться друг с другом.
Я тоже считаю неудачным камео Андрея Дмитриева (39:00).
Понятно, зачем нужен этот пародий: для рекламы очередного ДотНекста и очередного отчета.
Но раз уж мы говорим, что время вышло, хотя проблемы еще есть, то пусть все выглядит так, как будто это правда.
Во-первых, говорите «с краю», а не говорите, что у нас есть еще несколько минут на вопросы.
Во-вторых, выделите две-три дополнительные задачи с ответами и пролистайте слайды с ними в момент прерывания.
Потом, глядишь, люди заинтересуются, вдруг эффект Зейгарник сработает, презентацию скачают, все будет хорошо.
И я остался в недоумении: что это вообще такое? Интеграл подробнее.
Не только как, но и почему
Местами мне не хватило понимания, что именно курили разработчики спецификации.Почему они сделали именно это? Это помогло бы не только лучше запоминать, но и отделять важные задачи от случайной ерунды.
Давайте посмотрим, например, на ранее упомянутое округление (начало в 12:20):
Откуда взялось округление до ближайшего четного числа? Почему он включен по умолчанию? Когда необходим режим «вдали от нуля»? Возможно, я один все пропустил, а нормальные люди давно знают, но я впервые в жизни задумался над этим вопросом, готовя этот анализ.
Оказывается, режим называется «округление банка» и придуман в основном для случаев, когда нужно сложить деньги центами/копейками в дробной части.
Поскольку существует всего 100 различных значений центов, в случайном наборе денежных сумм довольно часто будет появляться хвост в размере ровно 50 центов.
Если мы округлим их все от нуля, мы накопим систематическую ошибку, а если округлим их все в сторону ближайшего четного числа, то ошибки округления в среднем приблизятся к нулю.
При этом каждое конкретное число округляется детерминированно, а не в случайном направлении (то есть такой подход).
Поскольку подсчет денег с использованием чисел с плавающей запятой и двойных чисел не следует производить по многим причинам, настройки по умолчанию кажутся нелогичными.
Но по крайней мере понятно, что за ними стоит. И если кто-нибудь знает другой реалистичный сценарий использования банковского округления, поделитесь, пожалуйста.
Я думаю, что раскрыть логику спецификации и рассказать ее аудитории — это полезно и хорошо.
Гораздо удобнее запоминать не только факты, но и их причины.
Кто теперь вспомнит таблицу истинности операций из Упражнения 8 (начало 17:23), хотя она была в презентации?
Это вообще важно знать? Если бы мы поняли варианты использования, которые имели в виду разработчики, восстановить его было бы проще.
Актуальность Упражнения 10, наоборот, не подлежит сомнению (начало в 21:18):
Андрей рассказывает, в каких ситуациях можно столкнуться с проблемой OverflowException, и заканчивает рассказ оптимистичным пожеланием быть осторожнее.
Все сразу поняли, как быть осторожнее? Подробности здесь будут полезны.
Как работает поплавок
Конечно, в университете у нас были фрагменты курсов, а то и целые курсы, посвященные представлению данных.И конечно, нам рассказали о числах с плавающей запятой, но без практики многое забывается.
В некоторых задачах Андрей затрагивает фундаментальные свойства типов float и double и вытекающие из них проблемы, но не акцентирует на этом до конца внимание аудитории.
Самый яркий пример — задача об ассоциативности (упражнение 14, начало в 31:30):
Учитывая, что не все в зале ответили правильно, материал первого и второго курса стоит освежить в памяти.
При этом важно, чтобы числа распределялись неравномерно: чем дальше от нуля, тем больше промежутки между ними.
Давайте посмотрим на два соседних числа с плавающей запятой максимального порядка (double имеет то же значение, только рисует больше):
С точки зрения рассматриваемого формата между ними ничего нет. Более того, в реальном мире первое число равно 1,7014122*10. 38 , второй — 1,701412*10 38 , а разница между ними 0,0000002*10 38 .
Это, будем осторожны, офигительная штука.
К числу максимального порядка невозможно прибавить единицу, тысячу или даже миллиард. Зная эту механику, легко понять, как нарушается правило ассоциативности: сумма нескольких малых чисел может быть больше расстояния между двумя соседними большими числами, при этом каждое маленькое число в отдельности будет просто уничтожено, если начать складывать с помощью большое количество.
выводы
В общем, каждая головоломка — это увлекательная история, которая дает ведущему должное за внимание аудитории, и эту заслугу можно использовать, чтобы извлечь какую-то мораль хотя бы из части головоломок (она на самом деле есть!).Я уверен, что от этого доклад выиграет. Слайды Слайды сделаны качественно, поэтому не буду придираться к мелочам, а укажу решения, достойные подражания.
Последовательное появление элементов слайда
В отчете много слайдов с большим количеством информации.Увидеть и понять все на экране сразу сложно, но у Андрея все элементы появляются по очереди.
Таким образом, зритель ни в коем случае не упускает из виду, куда ему нужно смотреть и о чем говорит говорящий.
Это упрощает понимание больших диаграмм, фрагментов кода и списков.
Делай как Андрей.
Единообразие
Хоть в презентации почти нет смешных картинок, кроме Гомера Симпсона (которого, в принципе, можно было бы поискать и в лучшем разрешении) и интеграла, это не делает ее менее смешной.Математика сама по себе интересна.
При этом каждое упражнение оформлено одинаково, решение выделено одинаково, пояснение отмечено в заголовке слайда – зритель быстро привыкает и ничто не отвлекает его от решения головоломок.
Если у вас презентация с множеством маленьких историй, имеет смысл придерживаться подобного оформления, как в этом случае.
Регулярные обзоры Если вы хотите оставить отзыв о своем выступлении, я буду рад вам его предоставить.
Что для этого нужно?
- Ссылка на видеозапись выступления.
- Ссылки на слайды.
- Заявка от автора.
Мы не будем ничего обсуждать без согласия самого спикера.
Обещаю, что обратная связь будет конструктивной и вежливой, а также будет освещать положительные моменты, а не только то, что необходимо улучшить.
Теги: #.
NET #презентация #анализ #dotnext 2016
-
Autodesk Переходит На Мобильные Телефоны
19 Oct, 24 -
Плохая Привычка
19 Oct, 24 -
Умпутун Против Бобука
19 Oct, 24 -
Кстати
19 Oct, 24