Исследования по оптимальной ширине кода?

Если вы включите "Выбор правильного поля" в своей IDE по выбору, вполне вероятно, что он по умолчанию будет равен 80 символам. Я склонен менять его до 120 без каких-либо причин, кроме того, что это был стандарт в компании, с которой я был с несколькими годами назад, и ни одна другая компания не сказала мне делать это по-другому.

Мой вопрос: есть ли какие-либо исследования, которые на самом деле показывают 80 символов, чтобы быть оптимальной максимальной шириной для чтения кода, или это значение просто "так, как оно всегда было", и никто не знает, почему именно так? И, если ширина строки кода будет частью вашего стандарта кодирования?

Ответ 1

Собственно, вещь с 80 колонками долго предшествует DOS. Это происходит от карточных ударов, которые были 80-колоночными устройствами.

И чтобы ответить на вопрос OP, одно "исследование" продолжается уже около 600 лет - печатная книга. Они эволюционировали на протяжении столетий, имея в виду, прежде всего, читабельность, к позиции, в которой мы сейчас находимся, где средняя длина строки для текста составляет около 60 символов. Поэтому для удобочитаемости перейдите к более узким полям.

Ответ 2

Помилуй программистов, которые должны впоследствии поддерживать ваше ПО и придерживаться лимита в 80 символов.

Причины предпочитать 80:

  • Считывается с большим шрифтом на ноутбуках

  • Оставляет пространство для размещения двух версий бок о бок для сравнения

  • Удаляет пространство для просмотра в среде IDE

  • Печать без произвольного разбиения строк (также распространяется на электронную почту, веб-страницы,...)

  • Ограничивает сложность в одной строке

  • Ограничивает отступ, который, в свою очередь, ограничивает сложность методов/функций

Да, он должен быть частью стандарта кодирования.

Ответ 3

У меня нет исследований, но я расскажу о своем опыте.

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

Например, когда я работал в Emacs на XWindows, он работал хорошо, чтобы иметь 2 окна Emacs бок о бок. Это ограничило их до 80 символов, так что это была моя максимальная длина линии.

В какой-то момент я работал в Visual Studio на экране 1920x1200. Я бы сохранил его максимально, при этом все окна инструментов состыковались с одной стороны. Достаточно места для двух окон редактора бок о бок около 100 символов.

Я также обнаружил, что самые длинные строки поступают из вызовов методов с длинными списками параметров. Это иногда запах кода: возможно, метод должен быть реорганизован.

Если вы и ваши со-программисты имеют экраны с высоким разрешением и резким зрением, обязательно используйте небольшой шрифт и длинные строки. И наоборот, вам могут понадобиться короткие строки.

Ответ 4

Обычно я использую 120-150, если компания не описывает иначе. Однако это зависит и от типа кода:

  • Я (почти) никогда не использую несколько операторов в одной строке
  • Я использую только длинные строки ( > 12), только если линии, похожие на похожие, могут быть выровнены и не сломаны.
  • Я всегда использую достаточно пробелов/скобок и т.д.
  • Я предпочитаю более длинные имена переменных над более короткими именами

До нескольких лет назад я ограничился 100, но теперь широкоэкранные экраны обычно используются, а мониторы 120 с высоким разрешением можно даже увидеть на ноутбуках (которые я едва использую).

Сравнение экрана с книгой не очень хорошо, потому что книга имеет больше вертикального пространства, а экран имеет больше горизонтального пространства. Я всегда стараюсь сохранить функцию max. один видимый экран длинный.

Ответ 5

Возможно, 80 символов также являются хорошим моментом, чтобы избежать этих плохих геттерных цепей:

object.getFoo().getBar().getFooBar().get ...

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

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

Ответ 6

Параметр правого поля предназначен для отображения ширины страницы, если вы собираетесь распечатать код, а предыдущая публикация указала, что она установлена ​​на 80, потому что это то, что длина строки исторически была до GUI на всем пути назад к перфокартам.

Недавно я видел рекомендацию в каком-то блоге (не помню, какой блог), чтобы увеличить размер шрифта IDE, чтобы улучшить качество кода, логика которого заключается в том, что если меньше кода подходит на экране, вы будете писать более короткие линии и функции подключения.

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

Ответ 7

Я отчетливо помню, как я читал где-то (я думаю, что это было в Agile Documentation), что для оптимальной читаемости ширина документа должна быть около двух алфавитов, или 60-70 символов. Я думаю, что ширина линии старых терминалов частично исходила из этого старого типографского правила.

Ответ 8

Насколько я знаю, символ 80 используется в качестве стандарта кодирования для обеспечения совместимости с редакторами командной строки (ширина терминала по умолчанию обычно составляет 80 символов). С современными IDE и большими разрешениями экрана 80 символов, вероятно, не "оптимальны", но для многих разработчиков требуется постоянная читаемость в терминале. По этой причине маловероятно, что ширина 80 символов будет заменена как фактический стандарт для ширины кода в ближайшее время. И чтобы ответить на ваш последний вопрос, да, ширина кода, а также любые другие характеристики, которые повлияют на читаемость кода, должны быть рассмотрены в ваших стандартах кодирования.

Ответ 9

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

Тем не менее, помните, что мы все еще люди, и мы строим инструменты для решения наших собственных ограничений. Я предлагаю вам игнорировать всю дискуссию о ограничении символов и просто писать материал, который имеет смысл независимо от их длины, и использовать IDE или текстовый редактор, который может помочь вам правильно отслеживать строки. Используя тот же аргумент для отступов в дискуссиях tabs vs space, а также о том, насколько широкими должны быть отступы, я предлагаю вам использовать маркер отступа (чаще всего вкладку) и просто настроить людей для их собственных IDE или текстовых редакторов для их отображения поскольку они находят их наиболее удобными.

Придерживание фиксированного количества символов в строке всегда будет хуже для всех, кроме целевой аудитории. Тем не менее, если вы никогда не будете делиться кодом, когда-либо; то на самом деле нет оснований даже для этого обсуждения. Если вы хотите поделиться этим кодом, вы должны, вероятно, позволить людям самим решать, что они хотят, вместо того, чтобы заставлять их (или кого-то elses) идеалы на них.

Ответ 10

Невзирая на аппаратные ограничения и любые различия в том, как мы читаем код по сравнению с естественным языком, я вижу три основных причины ограничения строк примерно на 80 символов.

  • Человеческие глазные яблоки круглые, не очень узкие и широкие, а большая часть их разрешения находится в середине. При чтении в течение нескольких часов, гораздо удобнее прочесывать глаза короткими дугами, используя одну полосу прокрутки по мере необходимости. Я не знаю формального исследования, характерного для разборчивости кода, но из моих собственных наблюдений с монитором в 2 футах от него, с текстом размером 10pt моноширинный шрифт, 100 символов занимают около 1/3 моего горизонтального поля видения или около 60 градусов (вне 30 градусов или около того, где разрешение всех наших глаз составляет).
  • Большинство людей используют большой монитор на работе, чтобы они могли видеть несколько вещей, не щелкая назад и вперед, а не так, чтобы они могли видеть одну вещь действительно большую.
  • Более короткие строки содержат меньше сложностей, которые, как мы надеемся, вынуждают разработчика разлагаться, превращают свой код в более удобоваримые единицы.