О вреде табуляции в середине строки

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

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

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

int n;
double d;

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

Так вот, неужели кому-то действительно трудно понять, что это - полная хуйня не лучший способ написания кода?! Давайте разберем этот пример подробнее. Пусть размер табуляции - 4 символа, позиции табов обозначим точками. Итак:

. . .
int n;
double d;

Очевидно, что для того, чтобы выровнять этот код, кодеру пришлось после слова "int" нажать кнопочку Tab два раза, а после слова "double" - один. Недоумок!

Что теперь произойдет, если на этот код посмотрит другой кодер, у которого размер табуляции - 2 позиции (ну, например, из-за низкого разрешения монитора)? А вот что:

. . . . .
int n;
double d;

Код "пополз". Ну, теперь всем понятно, в чем дело?!!!! При разных размерах табуляции код, отформатированный с помощью табов в середине строки, ползет и становится очень плохо читаемым.

А как надо было сделать? Смотрим сюда:

int n;
double d;

В чем разница? В том, что здесь после слова int кодер не два раза нажал на таб, а пять раз нажал на пробел. А после слова double он нажал на пробел два раза. Такой код будет выглядеть одинаково при любой установленной ширине табуляции.

Вывод - НЕЛЬЗЯ нажимать кнопку Tab в середине строки. Однако, можно и НУЖНО нажимать кнопку Tab в начале строки, о чем речь пойдет дальше.

UPD 25.06.06: А лично я всегда пишу так:

int n;
double d;

Да-да, выравнивать середины строк - идея от лукавого. Ну, скажем, возникнет необходимость поменять тип переменной d с double на float..

От лукавого, говорю :)

UPD 5.07.06: Да, все вышеказанное верно лишь для моноширинных шрифтов. Если кодер грезит об использовании пропорциональных шрифтов, то ему будет полезно ознакомиться с вот этой методикой.

0 коммент. | добавить комментарий :: О вреде табуляции в середине строки

Отправить комментарий