Правила программирования на Си и Си++

       

Используйте "предикатную" форму при разбиении длинных выражений


"Предикатом" в английском языке называется вторая половина предложения —

глагол и дополнение, над которым глагол выполняет действие. Порядок слов в английском предложении, конечно, фиксированный: глагол всегда идет первым.

Многие компьютерные языки имитируют структуру английского языка (языки Си и Си++ попадают в эту категорию). Паскаль, например, даже повторяет пунктуацию английского предложения: с точкой с запятой, отделяющей независимые операторы, и точкой на конце. Вызов функции является хорошим примером предикатной формы: глагол является именем функции, а прямые дополнения (вещи, на которые действует глагол) являются аргументами.

Вы также можете посмотреть на операторы типа глагола, потому что они выполняют некоторое действие над операндами ("объектами"). Это разумно, поэтому используйте ту же самую схему, что и в английском предложении, если вам нужно разбить длинное выражение на несколько строк. Помещайте сначала глагол (оператор):

if( its_thursday_and_the_moon_is_in_scorpio()

  ||its_friday_afternoon_and_close_to_quitting_time()

  ||i_just_cant_bear_to_look_at_this_computer_for_another_minute()

  )

{

   go_home();

}

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

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

if( its_thursday_and_the_moon_is_in_scorpio()

  ||its_friday_afternoon_and_close_to_quitting_time()

  ||i_just_cant_bear_to_look_at_this_computer_for_another_minute())

  go_home();



Содержание раздела