Это очень субъективная тема, но вы можете взять некоторые подсказки из 1000-летней типографической истории.
Исследования проводились на пустом месте в типографии, но в меньшей степени на коде. Но вы можете предположить, что многие из основных выводов в области разборчивости и понимания применимы и к коду. Это исследование, Чтение текста в Интернете: сравнение четырех макетов белого пространства , показывает, что правильный вертикальный интервал с большими полями увеличивает понимание, но замедляет скорость. Для кода можно смело предположить, что понимание важнее скорости. Таким образом, вы можете объективно сказать, что больше места для кода лучше. Но когда вы попадаете в специфику размера вкладки и позиционирования фигурной скобки, она становится очень субъективной. В коде поля - это отступы, абзацы - это функции и блоки кода, а точки - это разрывы строк, скобки, скобки и т. Д.
Когда вы начинаете спрашивать программистов, какой формат пробела является более читабельным, ответы приходят по всему спектру. Лучшее, что вы можете сделать, - это искать общности, которые кажутся универсальными.
Например:
- ставить пробелы до и после блоков кода, например функций и классов
- ставить пробелы до и после логической группировки кода внутри блоков
- длинные блоки кода без вертикальных пробелов труднее читать
- длинные блоки кода без отступов труднее читать
- длинные строки кода без горизонтальных пробелов труднее читать
Я думаю, что большинство программистов согласятся с этими утверждениями.
Пример (псевдокод):
thisismore(difficult<toread)because,itsall-smushed{together}
this-is-less ( difficult < to-read ) because, it's-not-all - smushed { together }
Чтобы коснуться последних четырех пунктов:
Имя переменной:
Это так же субъективно, как и пробел, но опять же вы можете обратиться к типографии за подсказками. Типография имеет шрифты с засечками, заглавные буквы, начинающиеся предложения, точки, заканчивающиеся предложениями, и пробел после точек. Все эти вещи позволяют вашим глазам переходить между словами и предложениями. С переменными важна ясность, поэтому они часто состоят из нескольких слов. Чтобы ваши глаза могли легко их прочитать, что-то должно предупредить их о начале нового слова.
Это труднее читать (для большинства людей):
Чем эти:
- мое длинное переменное имя
- myLongVariableName
- my_long_variable_name
- MY_LONG_VARIABLE_NAME
Теперь, какой из них лучший или самый читаемый , субъективен и всегда может быть. Но важно то, что что-то разделяет слова.
Горизонтальный отступ:
Код, который не имеет отступов, труднее читать, чем код, который есть. Слишком маленький отступ, и ваши глаза с трудом различают блоки. Слишком большой, и вы теряете пространство и не добавляете ясности. Где-то между четырьмя и восемью кажется правильным, основываясь на одиннадцати-миллиардных строках кода, написанных с использованием этих размеров.
Горизонтальное выравнивание:
Опять типография на помощь. Списки вещей, выровненные по столбцам, легче читать. Для данных элемента списка, которые длиннее одного или двух слов или цифр (например, предложений), используются маркированные списки. Для текстовых данных используются выровненные по левому краю столбцы. Для числовых данных используются выровненные по правому краю столбцы. Вы можете применить эти принципы к коду. Маркированные списки можно рассматривать как кодовые блоки, все выровненные по одному и тому же уровню отступа. Переменные являются текстовыми данными, поэтому выравнивание по левому краю будет легче читать. Если бы назначенные вами значения были числовыми, выравнивание по правому краю было бы наилучшим.
Это труднее читать (для большинства людей):
var oneVariable = 10023, a = 370,
p = 4,
answerToLife = 42,
openThePodBayDoorHal = false;
Чем это:
var oneVariable = 10023,
a = 370,
p = 4,
answerToLife = 42,
openThePodBayDoorHal = false;
И это, вероятно, проще всего:
var oneVariable = 10023,
a = 370,
p = 4,
answerToLife = 42,
openThePodBayDoorHal = false;
Вертикальный интервал:
Представьте себе весь этот пост без пробелов между абзацами. Почти каждый может согласиться с тем, что будет сложнее читать и понимать. Теперь многие могут утверждать, что больше места между разделами будет еще лучше. В типографии разделы обозначаются заголовками, которые имеют больший размер шрифта и больше вертикального пространства (как вы видите в HTML с H1 и т. Д.). В коде у нас есть один размер шрифта, поэтому мы должны работать с пробелами и любой брекет-концепцией, которую использует язык (если есть). Как и горизонтальный интервал, больше лучше, чем меньше. Сведения о том, что именно это означает, субъективны, но в большинстве языков программисты соглашаются с тем языком, который использует большинство людей. Если вы определяете свой собственный язык (или стандарт кодирования), вы можете установить соглашение.
Самое важное, независимо от стандарта, это то, что он используется последовательно во всем вашем коде . Это намного важнее, чем специфика стандарта. Постоянно отформатированный код намного проще, независимо от стандарта.
Поиск типографских исследований читабельности для получения дополнительной информации.