LINUX.ORG.RU

Форматирование кода. Tab || whitespace?


0

0

По мотивам http://sotakone.habrahabr.ru/blog/77155

* Никаких табов в исходниках, одни только пробелы.
* Никаких лишних пробелов в конце строки. Никогда. Ни при каких обстоятельствах.

Если второе это обычное правило хорошего тона, то второе есть хороший вопрос и давний холивор.
С некоторых пор я привык всегда во всех редакторах включаю подсветку пробелов и табов.
Последнее время, программирую на C и Python. Если на С и в некоторых самописных скриптах часто встречаются табы, то в больших проектах везде стоят пробелы.
Вопрос: Почему пробелы лучше табов? Чем?
В старом cpp@c.j.r было обсуждение Tabs vs WSs и пришли к выводу что у табов есть такие плюсы:
1) Размер таба можно менять в редакторе, что позволяет корректировать отображение кода(а точнее отступы) под себя/свой монитор.
2) 1 таб легче ввести нажав один раз нужную кнопку.
3) 1 таб легче удалить нажав один раз Backspace.

А у WS..

В общем, хотелось бы услышать мнение ЛОР'овцев.


Форматирование кода. Tab || whitespace?

Был уже не так давно горячий спор по этой теме.

Моё мнение вкратце - я предпочитаю логическую разметку, а не визуальную. Поэтому - только табуляция.

KRoN73 ★★★★★ ()

Форматирование кода. Tab || whitespace?

>2) 1 таб легче ввести нажав один раз нужную кнопку. 3) 1 таб легче удалить нажав один раз Backspace.

даже IDLE умеет заменять табы пробелами и удалять их за один бекспейс.

stave ★★★★★ ()

Форматирование кода. Tab || whitespace?

В больших проектах исходные тексты форматируют разные люди, у которых не совпадает размер шага табуляции (2, 4, 6 или 8 символов).

Поддерживать такие исходники в CVS очень громоздко из-за избыточности изменений, вызванных простым переформатированием кода от каждого нового разработчика, который касается этого кода.

Поэтому приняли всеобщий стандарт: для групповой работы над проектами Tab'ы не использовать, а отступы делать пробелами.

iZEN ★★★★★ ()

Форматирование кода. Tab || whitespace?

Все 3 пункта работают с нормальным текстовым редактором типа kate или vim с табами. а вообще бывает довольно забавно - вот официальный кодстайл от qt4 и одно из популярных проектов на нем же:
http://qt.gitorious.org/qt/pages/QtCodingStyle
http://wiki.qutim.org/правила_кодирования

называется найдите 2 отличия...

Turbid ★★★★★ ()
Ответ на: Форматирование кода. Tab || whitespace? от iZEN

Re: Форматирование кода. Tab || whitespace?

>Поэтому приняли всеобщий стандарт: для групповой работы над проектами Tab'ы не использовать, а отступы делать пробелами.

Угу. И поэтому у разных людей будет разный размер отступа :)

KRoN73 ★★★★★ ()
Ответ на: Форматирование кода. Tab || whitespace? от iZEN

Форматирование кода. Tab || whitespace?

>В больших проектах исходные тексты форматируют разные люди, у которых не совпадает размер шага табуляции

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

stave ★★★★★ ()

Форматирование кода. Tab || whitespace?

В PEP8 всё написано.

Davidov ★★★★ ()

Форматирование кода. Tab || whitespace?

Когда пишу в Emacs - пробелы и только. Потому что будет одинаково выглядеть везде.

В студии - табы.

В Сквике - табы.

yoghurt ★★★★★ ()

Форматирование кода. Tab || whitespace?

любой нормальный редактор позволяет как табы заменять пробелами, так и наоборот

ananas ★★★★★ ()
Ответ на: Форматирование кода. Tab || whitespace? от iZEN

Форматирование кода. Tab || whitespace?

Поэтому приняли всеобщий стандарт: для групповой работы над проектами Tab'ы не использовать, а отступы делать пробелами.

Не сочтите за неуважение, но хотелось бы узнать источник ну или какие-нить пруф-линки.
Ибо уж как-то оно бредово. При всех плюсах tab'ов для написания кода, выбрать пробелы...

tia ()
Ответ на: Форматирование кода. Tab || whitespace? от mannaz

Форматирование кода. Tab || whitespace?

Процитирую пользователя с хабра:

Основное достоинство табов — можно выставить такой размер отступа, какой мне нравится. Я люблю 4, а кто-то любит 8 — нахера мне потом эту лестницу разбирать?

tia ()
Ответ на: Форматирование кода. Tab || whitespace? от tia

Форматирование кода. Tab || whitespace?

4, 8 - это важно вообще? Я считаю, что в подобных вопросах для любого программиста не должно составлять проблемы писать код в соответствии с общепринятыми в команде правилами. В противном случае человек этот п**дор и занимается какой-то ерундой.

mannaz ()

Форматирование кода. Tab || whitespace?

Так будет всегда.
Но поскольку сам иногда останавливаюсь и начинаю переделывать форматирование во всём документе, хотелось бы знать, есть ли какие-то приспособы для изменения форматирования уже существующего кода?
Знаю, что в eclipse есть что-то подобное.

markevichus ★★★ ()

Форматирование кода. Tab || whitespace?

Разве автоматическое переформатирование кода кто-то отменил? Сейчас табы у одного, через 5 минут взял код другой человек и у него пробелы стали. Тоже самое и со скобками и т.п. Это встроено в редакторы. Проблемы нет вообще.

anonymous ()

Форматирование кода. Tab || whitespace?

sotakone, пройдите в палату №6

xydo ★★ ()
Ответ на: Форматирование кода. Tab || whitespace? от ananas

Re: Форматирование кода. Tab || whitespace?

>вот только если в коде помесь табов с пробелами - может получиться сплошная порнография

Ничего подобного. Программам переформатировщикам кода безразлично пробелы или табы, это одинаковое пустое пространство. Они сделают как их попросите, на любой вкус: сделать отступы из 7 пробелов или из 3 табов и фигурные скобки расставить на новой строке или в конце существующей. И много всего другого.

anonymous ()
Ответ на: Re: Форматирование кода. Tab || whitespace? от anonymous

Форматирование кода. Tab || whitespace?

форматировщикам - таки пофиг. а попытайся подобное less-ом глянуть - много ругани обеспечено

ananas ★★★★★ ()
Ответ на: Форматирование кода. Tab || whitespace? от markevichus

Форматирование кода. Tab || whitespace?

хотелось бы знать, есть ли какие-то приспособы для изменения форматирования уже существующего кода?

gedit + самописный скрипт на баше

Пользуюсь, когда использую куски чужого кода с форматированием пробелами.

Eddy_Em ☆☆☆☆☆ ()
Ответ на: Форматирование кода. Tab || whitespace? от markevichus

Форматирование кода. Tab || whitespace?

в эклипс, нетбинс(alt+shift+F) есть автоформатирование под выбранный coding style.

впрочем уверен, что в emacs, vim тоже есть :)

qnikst ★★★★★ ()

Форматирование кода. Tab || whitespace?

форматировать только пробелами, причём неразрывными =))))

yyk ★★★★★ ()
Ответ на: Форматирование кода. Tab || whitespace? от yyk

Форматирование кода. Tab || whitespace?

>форматировать только пробелами, причём неразрывными =))))

Срочно вырабатываю рефлекс отпускать после пробел 4го символа. Разумеется в слепую. Настройки для клавиатуры носить с собой на бумажке.

roller ★★★ ()
Ответ на: Форматирование кода. Tab || whitespace? от yyk

Re: Форматирование кода. Tab || whitespace?

>форматировать только пробелами, причём неразрывными =))))

Может быть неожиданный эффект :)
http://www.linux.org.ru/jump-message.jsp?msgid=4159538&cid=4162771
и
http://www.linux.org.ru/jump-message.jsp?msgid=4159538&cid=4199361

KRoN73 ★★★★★ ()
Ответ на: Форматирование кода. Tab || whitespace? от roller

Re: Форматирование кода. Tab || whitespace?

>Срочно вырабатываю рефлекс отпускать после пробел 4го символа

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

KRoN73 ★★★★★ ()
Ответ на: Форматирование кода. Tab || whitespace? от KRoN73

Форматирование кода. Tab || whitespace?

>Моё мнение вкратце - я предпочитаю логическую разметку, а не визуальную. Поэтому - только табуляция.

Поддерживаю. Хотя, конечно, если писать на хаскеле...

runtime ★★★★ ()

Форматирование кода. Tab || whitespace?

>> Никаких лишних пробелов в конце строки. Никогда. Ни при каких обстоятельствах.

суровые будни -:))))))

kto_tama ★★★★★ ()

Форматирование кода. Tab || whitespace?

Только пробелы.

Размер таба можно менять в редакторе, что позволяет корректировать отображение кода(а точнее отступы) под себя/свой монитор.

Тот, кто это говорит, явно никогда не правил чужой код. Чуть не так настроил, как твой сосед, и форматирование превращается в говно.

1 таб легче ввести нажав один раз нужную кнопку.

Настрой редактор. Даже вижуалстудия умеет заменять табы на пробелы при вводе.

1 таб легче удалить нажав один раз Backspace.

В результате чего попытка удалить несколько пробелов в начале строки выливается в удалённый конец предыдущей и горизонтальный скроллинг.

Miguel ★★★★★ ()
Ответ на: Форматирование кода. Tab || whitespace? от Miguel

Re: Форматирование кода. Tab || whitespace?

>Отступ - не член, чтобы беспокоиться о размерах.

Возвращаю в контекст: «разные люди, у которых не совпадает размер шага табуляции (2, 4, 6 или 8 символов).»

KRoN73 ★★★★★ ()

Форматирование кода. Tab || whitespace?

>то в больших проектах везде стоят пробелы.

Кстати, ядро Linux - это большой проект или маленький? :)

KRoN73 ★★★★★ ()

Форматирование кода. Tab || whitespace?

у меня табы везде. и кто только придумал эти пробелы ума не приложу

VladimirMalyk ★★★★★ ()
Ответ на: Форматирование кода. Tab || whitespace? от Miguel

Форматирование кода. Tab || whitespace?

> Чуть не так настроил, как твой сосед, и форматирование превращается в говно.
Это как? У вас в IDE шрифт не моноширный? плюс мне удобно отступ в 2 симлова, соседу в 5. чем как не табом это делать?

Настрой редактор. Даже вижуалстудия умеет заменять табы на пробелы при вводе.

Нахрена?

В результате чего попытка удалить несколько пробелов в начале строки выливается в удалённый конец предыдущей и горизонтальный скроллинг.

Так нефиг эти пробелы в начале строки дражать - для этого достаточно делать отступы табуляцией

VladimirMalyk ★★★★★ ()

Форматирование кода. Tab || whitespace?

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

Если сильно хочется универсальной логической вёрстки, чтобы у меня было 4 символа таб, у кого то 3, у кого то 8 - надо смешанную вёрстку (табами уровень, пробелами подгонять, если нужно вертикальное выравнивание). Это делать муторно, без специальной подстветки табов практически нереально.

Legioner ★★★★★ ()
Ответ на: Форматирование кода. Tab || whitespace? от Miguel

Форматирование кода. Tab || whitespace?

Тот, кто это говорит, явно никогда не правил чужой код. Чуть не так настроил, как твой сосед, и форматирование превращается в говно.

<tab>void foo(int bar,
<tab>_________char *foobar)
<tab>{
<tab><tab>int i = bar +
<tab><tab>________1;
<tab>}

и никаких проблем. Но писать такое, имхо, неудобно и error-prone, если можно так выразиться.

Legioner ★★★★★ ()
Ответ на: Форматирование кода. Tab || whitespace? от Legioner

Форматирование кода. Tab || whitespace?

Во первых, есть modeline… написать modeline — и у читающего код не будет никаких проблем.

А писать такое — это не в любом редакторе настраивается?

anarquista ★★★★★ ()
Ответ на: Форматирование кода. Tab || whitespace? от anarquista

Re: Форматирование кода. Tab || whitespace?

>Во первых, есть modeline… написать modeline — и у читающего код не будет никаких проблем.

Что за моделайн?

anonymous ()

Форматирование кода. Tab || whitespace?

В нормальной IDE по нажатию табуляции вставляется 4 пробела, это первое.
Второе: автоформат кода перед коммитом.
Пользуйтесь полноценными IDE, а не поделками, годными лишь редактировать property-файлы.

JFreeM ★★★☆ ()

Форматирование кода. Tab || whitespace?

>плюс мне удобно отступ в 2 симлова, соседу в 5. чем как не табом это делать?
увольнять соседа или тебя, очевидно же. Код команды должен быть единообразным и о том, каким именно следует договориваться на старте проекта и в дальнейшем соблюдать. Разводить десткий сад с спорами о том, сколько кому удобно отступов ни один собственник за его деньги делать вам не даст.

JFreeM ★★★☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.