Opened 22 months ago
Last modified 22 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 , 22 months ago
follow-up: 3 comment:2 by , 22 months ago
Вспомнил совсем курьезный случай, где такой подход был доведен до совершенства. Прислал мне как-то san одну библиотеку, где все интерфейсные функции были сделаны как-то так:
int function(...) { int result = internal_func(...); if (result == 0) { return 0; } else { return result; } }
Согласись, такое машинально не напишешь, тут подумать автору пришлось! :)
comment:3 by , 22 months ago
Replying to alx:
Согласись, такое машинально не напишешь, тут подумать автору пришлось! :)
Соглашусь
Я не про машинально имел ввиду, когда писал, что просто так привык. А про то, что когда только начинал писать код, когда начинал обучаться, то думал так "Ага, значит можно возвращать значение функции через return", и не подумал даже о том, что можно ведь сразу писать в return условие, ведь условие равно false или true))
Хорошо. Да, конечно, буду стараться писать лаконичнее. Просто привык изначально так писать, и не всегда додумываюсь о каких-то. Спасибо)