Всем привет. Возможно, будет оффтоп (: Уверен, многие тут знают про подход "early return", когда вместо кучи вложенных условий, ты делаешь flat-список условий и в каждом делаешь return (таким образом, каждое верхнее условие перекрывает все последующие). Это удобный хак, увеличивающий читаемость кода (в большинстве случаев).
Так вот, у меня возникла ситуация, когда я не уверен, какой из вариантов выбрать. Первый вариант выглядит примерно так:
if (cond) {
if (cond) {
...
} else {
...
}
} else {
if (cond) {
...
if (cond) {
...
}
}
}
$em->flush();
return $response;
Этот вариант хреново читается, тут много условий.
Но, в flat варианте тоже есть недостаток: мне в каждом блоке условия нужно сделать не только return, но и предварительно flush, чтобы записать лог запроса в БД. В варианте выше flush нужно делать только в конце.
И вот я не знаю, какой вариант правильнее? Может есть еще какие-то варианты, как не убивать читаемость кучей вложенных кондишенов или повторяющимися флашами в каждом блоке?