Opened 21 months ago

Last modified 21 months ago

#1081 new улучшение

Предлагаю писать лаконичнее

Reported by: alx Owned by: Denis_N
Priority: trivial Component: БД изделий АДС
Keywords: Cc:

Description

Не первый раз уже встречаю конструкцию типа

  if (expression)
  then
     return true;
  else
     return false
  endif

По форме - правильно, а по сути - изысканное издевательство над читателем. :)

Ну почему нельзя написать просто:

  return (expression);

?

А в фрагменте по ссылке еще и четыре вызова preg_match() напрашиваются на замену одним:

function serialPregMatch($serial) {
  return preg_match('/^([A-Z]?\d{5}|Р\d{6}|[А-Я]\d{4})$/u', $serial);
}

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

Change History (3)

comment:1 by Denis_N, 21 months ago

Хорошо. Да, конечно, буду стараться писать лаконичнее. Просто привык изначально так писать, и не всегда додумываюсь о каких-то. Спасибо)

comment:2 by alx, 21 months ago

Вспомнил совсем курьезный случай, где такой подход был доведен до совершенства. Прислал мне как-то san одну библиотеку, где все интерфейсные функции были сделаны как-то так:

int function(...)
{
    int result = internal_func(...);
    if (result == 0) {
        return 0;
    } else {
        return result;
    }
}

Согласись, такое машинально не напишешь, тут подумать автору пришлось! :)

in reply to:  2 comment:3 by Denis_N, 21 months ago

Replying to alx:

Согласись, такое машинально не напишешь, тут подумать автору пришлось! :)

Соглашусь

Я не про машинально имел ввиду, когда писал, что просто так привык. А про то, что когда только начинал писать код, когда начинал обучаться, то думал так "Ага, значит можно возвращать значение функции через return", и не подумал даже о том, что можно ведь сразу писать в return условие, ведь условие равно false или true))

Note: See TracTickets for help on using tickets.