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

Свою первую программу я написал на C. Как вы могли догадаться, это была простая Hello, World! программа. Я не буду говорить об удивительных, захватывающих, оргазмических ощущениях, которые дает вам ваша первая программа. Мы все прошли через это. Я собираюсь рассказать вам, почему я так люблю эти фигурные скобки, даже несмотря на то, что сегодня они не являются обязательными в некоторых случаях. Например, если ваши циклы или условные операторы содержат только один оператор внутри, вы можете вообще обойтись без фигурных скобок. А некоторые языки программирования, такие как Python, имеют другое значение для фигурных скобок, и они не означают то же самое, что и в таких языках, как C, Java или PHP.

Начнем с простого примера:

if(var == 1) {
 return true;
}

Вы могли бы подумать, что это так просто, как условие if! На самом деле вы можете написать то же самое:

if(var == 1)
 return true;

Он имеет точно такое же значение. Тогда есть тернарные операторы:

var == 1 : true ? false;

Это выглядит сексуально, вы не находите? Чем больше коротких кодов вы используете, тем умнее вы. Это понятие. Рассмотрим первый и последний примеры выше. Фрагмент кода из трех строк является устаревшим, скучным и обычным. Но странно выглядящий троичный код в одну строку необычен и выглядит сексуально. Но это тоже старая школа. Когда они оба олдскульные, почему один встречается так часто, как другой? Я могу придумать пару причин — это легко читать и понимать.

Видите ли, это всегда вопрос удобства!

Чаще всего вам нужно расширить фрагменты, подобные этим, чтобы добавить больше операторов в блок if или блок else. Именно так работает программирование. В случае первого примера ваш новый код будет выглядеть примерно так:

if(var == 1) {
 x = 2*y;
 return true;
}

Это имеет смысл, и его также было легко изменить. Как бы вы изменили второй пример? Вы бы сказали так:

if(var == 1)
 x = 2*y;
 return true;

Теперь, если это код C/C++, Java, C#, JavaScript или PHP, вам удалось ввести ошибку. Потому что это то же самое, что написать:

if(var == 1) {
 x = 2*y;
}
return true;

Но это не то, что вы хотели. Таким образом, единственный способ исправить это:

if(var == 1) {
 x = 2*y;
 return true;
}

Теперь нет никакой разницы между этим и самым первым примером. Я даже не буду здесь говорить о троичном коде по очевидным причинам.

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

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

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

Если вы разбираетесь в JavaScript и в восторге от классного нового способа определения функций в соответствии с ES2015, вот пост, в котором говорится о чем-то очень похожем.