Как мы читаем код
Дата: 24.12.2012 | Комментариев: 0 | Просмотров: 2974
В рамках исследований движений глаза Майк Хансен и Эрик Холк провели любопытный эксперимент. Используя айтрекер Tobii TX300 частотой 300 Гц, они сравнили поведение глаз опытного и начинающего программистов при чтении кода программы Python, вывод которой являлся вопросом поставленной задачи.В результате съемки данных для В«новичкаВ» было получено следующее видео.
Видеозапись В«бывалогоВ» (Эрика).
По полученным записям исследовали сделали ряд выводов. В частности, было замечено, как взгляд профессионала проворачивает все действия программы. Вначале В«бывалыйВ» читает всю программу, и лишь затем начинает процесс её выполнения. Программа состояла из двух вызовов функции between, за которыми следует вызов common, и большую часть времени В«опытныйВ» провел, перебрасывая взгляд между вызовами и определениями функций.
По сути, опытный программист проводил определенного рода компиляцию: вначале проводится осмысление всех функций, затем действие, выполняемое функцией, запоминается, чтобы быстрее получить её выход. Интерпретация первого вызова заняла около 24 секунд, второй был сметен за 10.
Также было замечено, что правильные имена помогают соориентироваться и прокручивать действия в голове быстрее. Читая программу, В«бывалыйВ» проассоциировал действие функции с её именем, предварительно убедившись в соответствии эквивалента в голове действию функции. При решении задачи использовался эквивалент, а не сама функция.
В то время, как на скорость выполнения задачи у В«опытныхВ» влияют названия, В«новичкиВ» не демонстрируют значительных различий в продолжительности выполнения при изменении ассоциируемости имен переменных. Хорошо видно, как около 1:30 В«новичокВ» узнала знакомый ей алгоритм, после чего она собирает внимание на нужных числах, не отвлекаясь на проход случайных строчек, доходит до common и оставляет лишнюю запятую.
Целью исследования является помощь исследовательскому сообществу психологии и программирования, которому недостает моделей процессов, происходящих в мозге программиста. Майк хочет создать вычислительную познавательную модель программиста, которая будет в состоянии В«читатьВ» код так же, как это делал бы живой человек. Такая модель могла бы помочь проводить анализ базы кода, что позволило бы заменить или дополнить такие показатели, как количество строк кода или цикломатическая сложность.
Майк Хансен всё ещё набирает для участия в эксперименте добровольцев, владеющих Python и проживающих в Блумингтоне, штат Иллинойс.
Источник: habrahabr.ru
Все используемые на сайте статьи, файлы и логотипы компаний принадлежат их законным владельцам. Если вы являетесь правообладателем "Как мы читаем код" и не желаете, чтобы ваша информация находилась на нашем сайте, напишите нам и эта информация будет удалена.
Категория: Новости » Новости - Это интересно
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.