Skip to content

Посты

С фигурными скобками или без?

14 октября 2019 г. • 2 мин чтения

С фигурными скобками или без?

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

В C++, C#, Java и Javascript однострочный оператор без фигурных скобок является допустимым синтаксисом. Некоторые используют эту возможность, а другие — нет.

Например

if(ifTrue) 
  MowTheLawn();

for(var index; index > 10; index++)
  ChopWood();

foreach(var dollar in money)
  BuyLollipop();

while(untilTheEnd)
  Read();

Аргументы против однострочных фигурных скобок

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

Аргументы за однострочными фигурными скобками

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

В статье, написанной Джоном Абрамсом под названием Single-line ‘if’ statements, Джон объясняет, как дефект в реализации TLS компании Apple был введён в результате использования однострочного оператора if без фигурных скобок. Джон также говорит, что хотя опускание фигурных скобок в однострочных операторах более лаконично, предотвращение дефектов важнее, чем лаконичность.

Джон предлагает компромисс — разрешить однострочные операторы, если они действительно находятся на одной строке:

if(ifTrue) MowTheLawn();

Я согласен с мнением Джона: опускание фигурных скобок в однострочных операторах не стоит того преимущества, которое оно предоставляет. Это заставляет инженера-программиста рассматривать два варианта допустимого синтаксиса. Это может показаться не таким уж плохим, но это утомительно принимать это решение каждый раз, когда вы встречаете оператор if. Следующий эффект заключается в том, что инженер экономит несколько нажатий клавиш и перекладывает бремя на будущих читателей для разбора их кода.

Для инженеров-программистов C# компания Microsoft заняла позицию в своих соглашениях по кодированию, которые требуют использования фигурных скобок.

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

Автор: Chuck Conway — инженер AI с почти 30-летним опытом разработки программного обеспечения. Он создает практические системы AI — конвейеры контента, агенты инфраструктуры и инструменты, которые решают реальные проблемы — и делится тем, что он узнает на этом пути. Свяжитесь с ним в социальных сетях: X (@chuckconway) или посетите его на YouTube и на SubStack.

↑ Вернуться в начало

Вам также может понравиться