Я считаю это правило излишним. Драконовские стандарты не делают хороших программистов, они лишь уменьшают вероятность того, что слизняк создаст беспорядок.
Примеры, которые вы приводите, верны, но у них есть лучшие решения, чем принудительные скобки:
Когда вы не заключаете в одну строку, а затем кто-то комментирует это, у вас проблемы.
Две практики решают эту проблему лучше, выберите одну:
1) Закомментируйте if
, while
и т. Д. Перед однострочником с однострочником. То есть лечения
if(foo)
bar();
как и любой другой многострочный оператор (например, назначение с несколькими строками или вызов функции с несколькими строками):
//if(foo)
// bar();
2) Префикс //
с ;
:
if(foo)
;// bar();
Если вы не поддерживаете одну строку, а отступы не отображаются на чужой машине ... у вас проблемы.
Нет, вы не; код работает так же, но его сложнее читать. Исправьте свой отступ. Выберите вкладки или пробелы и придерживайтесь их. Не смешивайте табуляции и пробелы для отступов. Многие текстовые редакторы автоматически исправят это для вас.
Напишите немного кода на Python. Это исправит, по крайней мере, некоторые вредные привычки отступов.
Кроме того, такие структуры, как } else {
, для меня выглядят как нетакерская версия истребителя TIE.
есть ли веские причины, по которым этот стандарт был бы ошибочным или неразумным? Об этом было какое-то обсуждение, но никто не может предложить мне лучший контраргумент, чем «это ужасно».
Избыточные скобки (и скобки) являются визуальным беспорядком. Визуальный беспорядок делает код труднее для чтения. Чем сложнее код для чтения, тем легче скрывать ошибки.
int x = 0;
while(x < 10);
{
printf("Count: %d\n", ++x);
}
Форсировка скобок не помогает найти ошибку в приведенном выше коде.
P.S. Я являюсь подписчиком школы «каждое правило должно говорить, почему», или, как сказал Далай-лама: «Знай правила, чтобы ты мог их нарушить».