Какие методы обучения человека могут применяться для улучшения компоновки кода?

Можно ли использовать результаты исследований, сделанных для обучения человека, чтобы определить, как может быть разработан код для улучшения понимания?

Кодовые макеты войн почти всегда заканчиваются защитой согласованности и преобладающим стилем, но могут ли быть способы выкладки кода, который будет доказуемо лучше других?

Ответ 1

Могут ли быть способы выкладки кода, который будет лучше, чем другие?

Да. Эта проблема широко изучалась в 1980-х годах. Вы можете прочитать все об этом:-)
Хорошая университетская библиотека должна "Человеческие факторы и типография для более читаемых программ" Рональда М. Беккера и Аарона Маркуса, опубликованного Эддисоном-Уэсли в 1990 году.

Ответ 2

Что такое макет кода?

С одной стороны, эти злые вещи называются условностями кодирования, которые помещают всех в корсет. Я ненавижу их, и я считаю, что мы отстаем от графика, чтобы устранить их. Мы можем разобрать код, и я не понимаю, почему наши IDE по-прежнему отображают код на основе самого текстового формата, в котором он хранится. Что так сложно, что каждый пользователь настроил свои предварительные настройки компоновки, а среда IDE отображает весь исходный код? Большинство IDE предлагают какой-то вариант автоформата, но вы часто не можете настроить, как он работает.

Однако гораздо более интересный подход заключается в том, подходит ли наша текущая точка зрения на исходный код для обучения вообще. Такие проекты, как Code Bubbles, новаторствуют в новом направлении. И тогда, конечно, у нас есть основанные на модели подходы, которые часто становятся более доступными с точки зрения ученика.

Я боюсь, что нет определенного ответа на этот вопрос. На самом деле, если вы можете написать подробный ответ на него, не забудьте претендовать на него PhD;)

Ответ 3

Я думаю, что это сводится к личным предпочтениям. Я предпочитаю иметь очень мало сокращений в моих кодах, я думаю, что это лучший способ для меня понять, что происходит внутри моих кодов, не задумываясь о том, какой порядок работы работает, может быть, моя память плохая.

Возможно, было бы неплохо использовать такие исследования, говорят о том, что класс учеников учится делать коды одинаково, но каждый раз разрабатывает свой собственный способ кодирования. Уже есть "доказуемо лучшие способы", которые изложены в лучших рекомендациях для каждого языка.

Интересный вопрос.

Ответ 4

Самая большая проблема для меня с пониманием кода - это не макет кода (однако код должен быть отформатирован последовательно), но после выполнения заказа. В сложном исходном коде OO трудно увидеть полный код, участвующий в выполнении.

Я думаю, что функции IDE могут многое помочь в понимании кода. Для меня (как разработчика Java) очень полезны инструменты, такие как представление иерархии вызовов в Eclipse и Mylyn.

Интересный (новый) способ понимания кода показан в Code Bubbles Project.

В будущем я ожидаю дополнительных шагов в этих направлениях.

Ответ 5

Я думаю, что обучение программированию, возможно, дало мне некоторые навыки в этой области, потому что, чтобы получить идеи для студентов, вы должны держать вещи маленькими, простыми и вводить только одну концепцию за раз.

Однако, как сказал один из моих коллег своим ученикам:

Обучение - это моя работа.
Обучение - ваше.

Как это относится к программированию, я считаю, что программист обязан написать код, чтобы обучать других тому, что он или она пытается выполнить, но нет кода, который будет понятен читателям, которые не прилагаем усилия.