Каковы причины различных форм фигурных скобок?

Я читаю стандарты кодирования Zend Framework , где они заявляют, что фигурные скобки после определения классов должны быть на следующей строке, «одной истинной форме фигурной скобки».

class MyClass { function.... } 

У меня обычно есть фигурные скобки на одной линии:

 class OtherClass { function ... } 

В чем причина размещения скобки на следующей строке? Или использовать любой другой стиль, если на то пошло?

Личные предпочтения – это действительно настоящая «причина».

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

Кроме того, наличие брекетов с одинаковым уровнем отступов облегчает поиск глаза.

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

Часто приводятся причины:

  • легче совместить открывающие и закрывающие скобки (для первого примера)
  • не тратьте другую линию (чтобы вы могли поместить больше строк кода на экран – второй пример)

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

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

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

Хорошими ресурсами по этому вопросу являются следующие статьи в Википедии:

Стиль отступов

Стиль программирования

Соглашения об именах

Пользовательские предпочтения. Это действительно не имеет значения. Когда я развивался в PHP, я использовал второй вариант, но теперь, используя C #, я использую первый.

Есть несколько тем по этой очень субъективной теме …

Некоторые люди увлечены этим, лично я выбрал «читаемый» вариант выравнивания фигурных скобок (я не плачу за недвижимость, используемую моим кодом на экране … поэтому компактность меня не интересует), но когда я вношу свой вклад в проект, используя другой стиль, я просто использую тот, который касается моего вклада.
То же самое для размера вкладки, жесткого против мягкого и т. Д.

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

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

То же самое касается вкладок и пробелов.

Имеет ли значение, какой стиль фигурной скобки вы используете? Нет. Имеет ли значение, что все, работающие над одним и тем же проектом или исходным файлом, используют один и тот же стиль фигурной скобки? Нет; не только это не имеет значения, но полезно, если стили скобок отличаются от одного кодера к другому, даже в том же файле.

«Почему именно этот кусок кода делает это?»

«Я не знаю, это в почерке Кевина. Пойдем спросить его».