Информация об изменениях

Сообщение Re[20]: Тот чувак, который юзает таб в 8 пробелов от 18.07.2016 1:23

Изменено 18.07.2016 1:29 Artem Korneev

Здравствуйте, ·, Вы писали:

·> пробелы запрещены для отступов законодательно, высшая мера наказания и кода с пробелами не существует.


Если клавишу пробела заблокировать или удалить, то проблем, разумеется, не будет.
В проектах, где в соглашениях по оформлению кода требуется таб, я регулярно видел попадающиеся пробелы. Но это ещё что.. слегка портит внешний вид кода, но не фатально. Из фатального я один раз видел критический баг, появившийся из-за таба. К обсуждаемой теме оно, конечно, не относится, но баг был очень интересным. Сначала один разработчик отформатировал код табами:

SomeClass.SomeMethod(
    Argument1,
    Argument2,
    Argument3,
    Argument4,
    Argument5,
    Argument6,
);


Потом этот код отрефакторили, убрали большую часть аргументов и переформатировали, переписав в одну строчку, но при этом разделителем остался таб:
Re[20]: Тот чувак, который юзает таб в 8 пробелов
Здравствуйте, ·, Вы писали:

·> пробелы запрещены для отступов законодательно, высшая мера наказания и кода с пробелами не существует.


Если клавишу пробела заблокировать или удалить, то проблем, разумеется, не будет.
В проектах, где в соглашениях по оформлению кода требуется таб, я регулярно видел попадающиеся пробелы. Но это ещё что.. слегка портит внешний вид кода, но не фатально. Из фатального я один раз видел критический баг, появившийся из-за таба. К обсуждаемой теме оно, конечно, не относится, но баг был очень интересным. Сначала один разработчик отформатировал код табами:

SomeClass.SomeMethod(
    Argument1,
    Argument2,
    Argument3,
    Argument4,
    Argument5,
    Argument6,
);


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

SomeClass.SomeMethod(Argument1, Argument2);


Но при этом разделителем остался таб, т.е. фактически там было:

SomeClass.SomeMethod(Argument1,\tArgument2);


А ещё через пару недель один разработчик решил поменять параметры местами и сделал это через поиск и замену. И, разумеется, он поменял строку "Argument1, Argument2" на "Argument2, Argument1", но в одном месте, где между аргументами попался таб, аргументы так и остались в том же порядке.