Стандарты кодирования для кода, размещенного на drupal.org, предлагают использовать два пробела для отступа кода; другие сайты предлагают использовать вкладки для отступа кода.
Каков правильный отступ для всего и в любой ситуации? Пожалуйста, объясните ответ, который вы даете.
coding-style
indentation
kiamlaluno
источник
источник
Ответы:
пространства
В зависимости от вашей среды вкладка может содержать разное количество столбцов, но пробел всегда равен одному столбцу.
С точки зрения того, сколько пробелов (или табуляций) составляет отступ, более важно быть согласованным во всем коде, чем использовать какое-либо конкретное значение табуляции.
источник
Вкладки
Теперь, конечно, последовательность важнее, чем любая другая, и хорошая IDE делает различия незначительными. Тем не менее, смысл этой темы в том, чтобы быть священной войной, поэтому:
Я предпочитаю вкладки:
источник
Используйте вкладки, чтобы сделать отступ в начале строки, по одной вкладке на уровень отступа, и пусть каждый выбирает, какой ширины они хотят.
Используйте пробелы, если вы располагаете символы внутри строки, чтобы они всегда выстраивались в линию независимо от размера вкладки.
И найти и ударить всех ранних авторов программного обеспечения, которые позволили этой глупости стать проблемой в первую очередь.
(Серьезно, почему это вообще обсуждается? Далее вы скажете мне, что вы также хотите использовать несколько символов для переноса строк!)
источник
Вкладки
Пробелы следует использовать там, где вкладки совершенно бесполезны.
Даже для выравнивания параметров и комментариев вкладки по-прежнему работают лучше .
источник
Все аргументы для вкладок велики в теории. Но...
Да, с помощью вкладок вы можете выбрать уровень отступа. И да, вы можете использовать комбинацию вкладок и пробелов для выравнивания вещей. И в идеальном мире это было бы
В действительности, вы не можете видеть разницу между пробелами и вкладками, они всегда кажутся запутанными при перемещении кода, и просмотр кода в другой программе, в которой для вкладок установлено 8 столбцов, является неприятностью.
Я использовал вкладки. Затем я начал работать в команде и делиться кодом. Я быстро стал сторонником пробелов. Так что, хотя я могу сочувствовать утопии вкладок, я не могу себе представить, не используя пробелы.
источник
public:
в объявлениях классов C ++, чтобы они выглядели красивее (особенно для вложенных классов).Некоторые соответствующие мнения, которые могут представлять интерес:
источник
Вкладки для победы.
источник
Я абсолютно. ненавидеть. 4. пробелы.
Почему? Главным образом потому, что мне надоело перемещаться по коду с клавиатуры и постоянно нажимать,
left
left
left
left
чтобы пройти через один отступ. Это было рождено в ранних версиях Notepad ++ и даже обычного блокнота Windows, где не было такого понятия, как кнопка форматирования. У меня было очень много проблем, когда люди использовали только 3, когда я использовал 4 везде, среди прочего.Другая причина заключается в том, что символ табуляции существует специально для отступа и только позднее был принят для навигации. Почему мы делаем,
space
space
space
space
когда простоеtab
будет работать? Почему IDE должны иметь дело с 2-5 разнесенным кодом и правильно форматировать, если бы работала простая вкладка и опция предпочтения?К сожалению, я меньшинство.
источник
w
иb
(илиe
иge
), чтобы пропустить пробелы и токены: PМне лично нравится использовать вкладки во всем, так как каждый разработчик может контролировать количество отступов на вкладку. Таким образом, вы получаете гибкость в отображении.
Это, как говорится, я обычно имитирую любой стиль кодирования в файле для начала (так как я трачу много времени на выполнение работ по обслуживанию).
источник
Я не думаю, что существует такая вещь, как правильное отступление (по крайней мере, без малой войны).
Лично мне нравятся четыре пробела. Они позволяют мне читать код намного быстрее и выглядят одинаково в любом редакторе - даже в Vi.
источник
softtabstop
опцияretab
иretab!
команды и.Пробелы, потому что когда вы выравниваете комментарии справа от кода, или списков параметров функций, или сложных многострочных выражений, или чего-то подобного, вы хотите , чтобы ваша прекрасная работа показалась подходящей для всех . Если вы используете вкладки и позволяете людям по-разному устанавливать свои вкладки, они нарушат выравнивание для всех, кроме самых простых случаев отступа кода.
Кроме того, совершенно очевидно, что все в мире должны использовать vim, что упрощает отступы, отступы и навигацию по «табуляциям» даже в файлах с пробелами.
источник
Вкладки являются естественным и ортодоксальным выбором, так как они по определению используются для отступов.
К сожалению, вкладки реализованы неравномерно, поэтому единственное реальное решение - это 4 пробела.
источник
Вам, очевидно, нужен комбинированный подход.
Если вы делитесь кодом с другими разработчиками, вам нужно стандартизировать, и, поскольку это невозможно (koff koff), вам нужно заставить всех делать четыре пробела.
Тогда вам нужен редактор, который достаточно умен, чтобы не быть глупым, чтобы знать, что он должен обрабатывать строку с четырьмя пробелами в начале, как с отступом. Любой современный IDE или редактор программистов может автоматически передавать код с пробелами вместо вкладок.
источник
Почему никто не может реализовать это:
Все счастливы, так как все они видят свой «собственный» формат.
Это так сложно?
источник
indent
программы.Пробелы или табуляции - что на самом деле говорит Этвуд - это выбрать одну вещь и быть последовательным в своем проекте Единственный святой Грааль форматирования кода - убедиться, что он соответствует, чтобы психопат, который поддерживает ваш код после вас, не чувствовал себя вынужденным навсегда исправить ситуацию.
Тем не менее, если вы работаете в Python или любом другом языке, где пробел является реальной конструкцией программирования, я не могу представить себе использование вкладок.
источник
Я парень с 4 пробелами, вкладки просто не последовательны.
источник
Очевидно, вкладки портят что-то в Delphi, поэтому я не использую вкладки в Delphi.
Однако я делаю все остальное с помощью Emacs и всегда использую вкладки, потому что мои вкладки идут именно туда, куда я хочу, чтобы они шли.
источник
Ответ заключается в том, что не может быть единого правильного символа отступа для каждой ситуации. Форматирование с использованием символов негибко и может вызвать конфликт, когда в команде используются разные стили.
Единственный способ безошибочно и гибко форматировать код с использованием различных стилей форматирования - это делать это виртуально, то есть без символов отступа. Единственный известный мне редактор кода, который поддерживает это, - это тот, который используется в приведенном ниже примере:
Для демонстрации виртуального форматирования , ниже скриншот из XSLT редактора * , который использует этот метод вдавливания (есть также короткое видео здесь ). Каждый символ в XSLT выделен желтым цветом, для наглядности, чтобы четко видеть только символы табуляции или пробела в контенте. Отступ кода обрабатывается системой визуализации редактора, регулирующей левое поле (которое имеет белый фон).
Единственные начальные пробельные символы предшествуют строкам Книги , поскольку это буквальное текстовое содержимое, а не код, эти пробельные символы должны быть сохранены.
С помощью виртуального форматирования вы выбираете ширину отступа в соответствии с окружением и стилем отступа, не затрагивая символы в исходном файле. Вы можете даже установить ширину отступа в 0, если вам нужно плоское представление кода, как показано ниже:
Чтобы противопоставить это форматированию пробелов, тот же XSLT, открытый в редакторе без виртуального форматирования, преобразуется автоформатером этого редактора в следующее:
Большие пустые желтые блоки на скриншоте выше ясно показывают символы пробела, добавленные форматером обычного редактора. К сожалению, теперь их невозможно отличить от реального контента, поэтому XSLT придется изменить, чтобы исправить эту проблему.
Резюме
XSLT, возможно, является крайним случаем, но этот принцип применим ко многим языкам программирования: символы должны использоваться для содержимого, а для форматирования следует искать альтернативный метод.
** Раскрытие: редактор XSLT с виртуальным форматированием был разработан моей собственной компанией *
источник
До сих пор не упоминалось: существуют языки (Python, Haskell), где отступы имеют значение. Но 1 символ считается как 1 символ, будь то пробел или табуляция, поэтому отступ, видимый компилятором, может отличаться от того, который вы видите на экране, если используете вкладки.
Поэтому в таких языках, как Haskell, пробелы обязательны. В Makefiles TABS является обязательным. Во всем остальном это вопрос личного вкуса, и в настоящее время это не так уж и много - у каждого достойного редактора есть команда «(ведущие) табуляции к пробелам» и «(ведущие) пробелов к табуляциям».
источник
Раньше я использовал пробелы, но в последнее время я использую вкладки исключительно потому, что это было то, что было установлено в Eclipse, когда я наконец заметил. Все остальные разработчики в моей команде используют Eclipse, поэтому имело смысл стандартизировать вкладки, когда мы поняли, что мы уже использовали их целую вечность, и не было причин беспокоиться о переходе на пробелы. Я был удивлен тем, насколько это было не проблема.
Установка отображаемого размера вкладки в 3 или 5 символов в вашей среде IDE значительно упрощает различие между фрагментами кода, которые имеют отступы (почти всегда 4 в настоящее время), и разделами, которые имеют отступ табуляции.
источник
Много аргументов уже было дано, но никто не упомянул, куда мы можем пойти в будущем .
Вкладки ни пробелы!
В идеале код должен рассматриваться как данные, а не храниться в каком-либо конкретном текстовом формате. Любой разработчик может применить свой предпочтительный вид. Кроме того, это представление не должно ограничиваться только текстом , оно может включать таблицы, палитры цветов и математические формулы.
Эта идея не слишком надуманна. Именно редактор языкового программирования JetBrain Meta Programming System (MPS) впервые заставил меня осознать, что это решает всю дискуссию, одновременно добавляя множество дополнительных возможностей. (Да, это возможно с помощью плагинов редактора, но работа с текстом напрямую добавляет столько ненужных сложностей, в отличие от подхода, который использует MPS.)
В отличие от табуляции и пробелов, есть несколько недостатков, которые можно упомянуть, работая непосредственно с абстрактными синтаксическими деревьями . Все, что нужно, - это чтобы технология превратилась в коммерчески жизнеспособный продукт. Первые признаки этого появляются. Созданный на основе MPS, коммерческого редактора ActionScript, был создан Realaxy .
Мне бы очень хотелось, чтобы один из крупных игроков запрыгнул на концепцию этой технологии и увидел, что получится!
источник
Ни лучше, ни хуже. Единственная важная вещь, чтобы быть последовательным.
Если вы одна команда, выбирайте то, что вам нравится. Подумайте, какое поведение по умолчанию у вашего любимого редактора, но выберите то, что вам нравится.
Если вы в команде, делайте то, что делает команда. Период.
В своих различных работах я использовал два пробела, четыре пробела, восемь пробелов, табуляции, пробелы и табуляции, я думаю, что, возможно, я также использовал один пробел. Я говорю своему редактору, что делать, тогда я больше не думаю об этом, редактор прорабатывает детали.
Единственное, что нужно, это убедиться, что вы выбрали умный редактор. Emacs или vi? Теперь это священная война , я готов бороться :-)
источник